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 > > __. > . > >