Acho que ninguém descobriu. Então vamos lá. quando eu disse que ao "debugar" vocês achariam a solução, eu não menti! Veremos o porque...
Em uma Form, coloque um simples comando: Close; em um evento do tipo OnShow ou OnCreate. No mesmo Form, evento OnClose coloque um: ShowMessage(''); Agora rode, "debugue", faça o que quiser, e note que o ShowMessage(''); não será executado. O motivo: É super simples, você disparou uma "Trigger" (Comando interno do DELPHI, nada de SQL), que tentou chamar a função WM_CLOSE da WINAPI. a WM_CLOSE da um comando de Terminate do Form para o Windows. Mas qual Form ela deverá terminar, sendo que nenhum Form foi criado ainda? Veja que OnShow e OnCreate ainda não tem a janela em aspecto Físico. Solução: Usar no evento OnShow o comando: PostMessage(Self.Handle, WM_CLOSE, 0, 0); A diferença que a Mensagem será disparada com a Janela pronta, e automaticamente mandará uma ação WM_CLOSE para o Handle da Janela. Repetindo WM_CLOSE = CLOSE do Delphi, mas é comando WINAPI. Dependendo da velocidade do Processador, poderá ser visto um Flicker na Tela, que realmente comprava que ela foi criada. Finalmente: É lógico que esse é o meio errado de se fazer, pois seria melhor você testar tudo antes do OnShow, pois é estranho você criar e destruir a janela. Bem é isso, para aqueles que dizem que não ajudo! --- Em delphi-br@yahoogrupos.com.br, Matheus Nabao <matheus_...@...> escreveu > > > Julio, > Nada contra ninguém aqui. Mas olha só, tem coisas que acho que nós mesmos > devemos solucionar. (Como nesse caso). > Não adianta simplesmente você saber a solução e pronto. Você tem que entender > o que está acontecendo na execução, nos eventos etc. Eu já disse que no > primeiro e-mail, que no próprio exemplo está a solução. É só "debugar"! > Eu não quero ser o chato ou sádico da turma, apenas quero ajudar o cara a > pensar no problema, eu aprendi muito com isso e todos conseguiremos. Senão > conseguir, depois eu postarei a solução, mas acredito que ele conseguirá > achar facilmente se debugar. > Mais uma pista... é um mero detalhe que até no help ele encontraria a solução. > To: delphi-br@yahoogrupos.com.br > From: jcsguio...@... > Date: Wed, 25 Nov 2009 12:06:32 -0300 > Subject: Re: [delphi-br] Destruir Form > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Matheus, > > > > não é mais fácil e amigável você enviar a solução? > > Acho que já somos todos crescidinhos não?! > > > > Abraço, > > Júlio César Santiago Guiótti > > > > 2009/11/25 Matheus Nabao <matheus_...@...> > > > > > > > > Não não não e não. > > > > > > > > > > > > O try não é o problema, presta atenção no seu primeiro e-mail. "Debuga" que > > > você vai encontrar a resposta fácil fácil. > > > > > > > > > > > > > > > To: delphi-br@yahoogrupos.com.br > > > From: dionata...@... > > > Date: Wed, 25 Nov 2009 11:38:20 +0000 > > > Subject: RE: [delphi-br] Destruir Form > > > > > > > > > > > > > > > > > > > > > sim por causa do try... > > > > > > mas se eu colocar uma variavel de controle tipo erro :='S' e depois testar > > > > > > if Erro= 'S' then close fora do try também nao fecha... > > > > > > > To: delphi-br@yahoogrupos.com.br > > > > From: matheus_...@... > > > > Date: Tue, 24 Nov 2009 17:51:33 +0000 > > > > Subject: RE: [delphi-br] Destruir Form > > > > > > > > > > > > Já vi o erro! > > > > > > > > Se você prestar atenção verá também o erro assim como eu. > > > > > > > > Olhe o exemplo que você postou que você verá por quê o Form não fecha. > > > > > > > > > > > > > > > > To: delphi-br@yahoogrupos.com.br > > > > From: dionata...@... > > > > Date: Tue, 24 Nov 2009 12:23:15 +0000 > > > > Subject: [delphi-br] Destruir Form > > > > > > > > > > > > > > > > > > > > > > > > Pessoal uma pergunta bem simples... > > > > > > > > no onshow do meu form tenho varios procedures dentro do try except; > > > > > > > > Exemplo > > > > > > > > try > > > > procedure1 > > > > preocedure2 > > > > except > > > > Showmessage('Não foi possivel abrir a aplicação!'); > > > > Close; > > > > end; > > > > > > > > so que quando dou um close ele nao esta fechando o form, esta anbrindo > > > igual.. > > > > > > > > no onclose do form tenho > > > > > > > > Action :=cafree; > > > > form :=nil; > > > > > > > > Como posso resolver isso?Valeu > > > > > > > > > > > > > > > > > > > > > > > > __________________________________________________________ > > > > Agora a pressa é amiga da perfeição. Chegou o Windows 7. Conheça! > > > > http://www.microsoft.com/brasil/windows7/default.html?WT.mc_id=1539 > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > ------------------------------------ > > > > > > > > -- > > > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > > > > > > > > > > > > > __________________________________________________________ > > > Converse e compartilhe fotos ao mesmo tempo. Saiba como no novo Site de > > > Windows Live. > > > http://www.windowslive.com.br/?ocid=WindowsLive09_MSN_Hotmail_Tagline_out09 > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > > __________________________________________________________ > > > Agora a pressa é amiga da perfeição. Chegou o Windows 7. Conheça! > > > http://www.microsoft.com/brasil/windows7/default.html?WT.mc_id=1539 > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > ------------------------------------ > > > > > > -- > > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > > > _________________________________________________________________ > Converse e compartilhe fotos ao mesmo tempo. Saiba como no novo Site de > Windows Live. > http://www.windowslive.com.br/?ocid=WindowsLive09_MSN_Hotmail_Tagline_out09 > > [As partes desta mensagem que não continham texto foram removidas] >