Alessandro Fernandes escreveu: > >Paulo, eu faço assim: > >01) Na implementation do form defini uma variável do tipo do >formulário: > >implementation > >{$R *.dfm} > >{ TForm2 } > >var > > FForm: TForm2; > >Por estar em Implementation ela fica protegida de acesso externo. > >
:-\ Na implementation de qual form? O principal ou o que sera chamado? >02) Crio no form um método de classe ChamaForm com a seguinte >implementação: > >class procedure TForm2.ChamaForm; > >begin > > if FForm = nil then > > FForm := TForm2.Create(nil); > > FForm.Show; > >end; > > :-\ Aonde eu declaro este metodo de classe? Ele pode ser declarado como um metodo normal? >03) No Create do form faço FForm receber NIL e Destroy também. No >OnClose uso CAFree. > > Nao entendi! No create eu ja aponto ele pro nil edou um Destroy? Vai dar 'access violation', nao? =-O >04) No local de chamada do form simplesmente faço: > >procedure TForm1.Button1Click(Sender: TObject); > >begin > > TForm2.ChamaForm; > >end; > >Assim se o formulário não existir ele é criado se já existir apenas >é exibido. > >Acho que isso resolve. > >Me diga se não ajudar. > Desculpa se faco tantas perguntas, mas ha muito tempo tenho enfrentado problemas com abertura de forms de maneira correta. Ja testei varias maneiras e quando parece que vai da tudo certo aparece uma excessao. Ainda estou usando: Para chamar o form: * if form2 = nil then form2 := Tform2 .Create(nil); form2 .Show;* E no evento OnClose do form2: *form2 := nil;* Mas de vez em quando aparece um problema de 'access violation' em algum form. Obrigado pela atencao!!! :-) -- Paulo Daniel Dorensbach http://geocities.yahoo.com.br/dorensbach Usuario GNU/Linux 363631 - http://counter.li.org NBR para a Internet já! Porque meu navegador não é penico. http://www.w3.org/2003/03/Translations/byLanguage?language=pt-br "De cada um conforme sua capacidade a cada um conforme sua necessidade." Karl Marx By Mozilla Thunderbird www.mozilla.org.br -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html