Valeu Silvio, esqueci das mensagens do Windows, porém, ainda tem uma 
pequena falha ai. Não é especificamente a janela do ShowMessage da 
aplicação que o PostMessage vai fechar, é o que está ativo no momento. 
Por exemplo, se aparecer outra ShowMessage de outro aplicativo ou uma 
message do Windows o ShowMessage da aplicação dele vai continuar. Só 
funciona com quem esta ativo, com quem está o foco. Mas...funciona, é um 
detalhe pequeno.... Prefiro usar a function do Rubem pois vou ter o 
controle dele no meu programa.
Como citei, faça dois programas, num coloca-se um showmessage (sem 
timer) e executa primeiro, no outro faz este procedimento que vc passou, 
qdo executar ele
clique no showmessage do outro programa, vai ver que fecha apenas o do 
outro programa que não tem nada a ver com a história :D e o outro 
permanece lá boiando. Prefiro a function do Rubem pois podemos ter a 
autoridade dele e fechar quando quiser.
Isso não é critica hein! é só um comentário, vc é uma ótima pessoa e é 
um grande programador, alias, vc deu apenas uma sugestão.

blz

Silvio Clecio escreveu:
>  
>
>
> Do "DicasDelphi.chm".
>
> -------
> .
> .
> .
> var
> Form1: TForm1;
>
> implementation
>
> {$R *.dfm}
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> Timer1.Enabled := False;
> end;
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> Timer1.Enabled := True;
> ShowMessage('Tchau!');
> end;
>
> procedure TForm1.Timer1Timer(Sender: TObject);
> begin
> PostMessage(FindWindow('TMessageForm', nil), WM_CLOSE, 0, 0);
> Timer1.Enabled := False;
> end;
> -------
> -- 
> Silvio Clecio
>
> __.
> .
>
> 

Responder a