Pessoal, Tenho o seguinte código, dentro de um menu no form principal do meu projeto:
if not Assigned(fForm1) then fForm1 := TfForm1.Create(Application); fForm1.ShowModal; e no OnClose do Form1, eu tenho: Action := caFree; Form1 := nil; Se eu clicar no menu uma vez após a outra, dá Access Violation, por que na segunda vez nao entra no IF do Assigned, ou seja, trata como se o Form1 ainda estivesse na memória. Agora, o engraçado é que se eu colocar o mesmo código do menu em um outro formulário, sem ser o principal, funciona. Eu só mudei o "Application" para "Self". Ficou assim: if not Assigned(fForm1) then fForm1 := TfForm1.Create(Self); fForm1.ShowModal; Alguém poderia dizer: ora bolas, coloque o "Self" no código do menu também. Já tentei, só que não funcionou. O que eu quero é que, sempre que fechar esse form, ele seja automaticamente destruído. Uso Delphi 2007 e os forms são SDI. Alguem teria alguma idéia? Obrigado, Leandro