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

 



Responder a