para controlar a criação de varios forms eu uso assim:

 if Application.FindComponent( 'FrmMeuForm' ) = nil then
  Application.CreateForm(TFrmMeuForm,FrmMeuForm);
 FrmMeuForm.Show;


=================
>De:"moacirponti" <[EMAIL PROTECTED]>
>Para:delphi-br@yahoogrupos.com.br
>Assunto:[delphi-br] Re: Abrir MDIForm já criado
>
>
>
>  Entendi. Fiz o que disse e funcionou bem. O
>estranho é que após a 
>criação de um form MDIChild e seu fechamento
>(Action:= caFree) - para 
>que não fique aparecendo na tela, o objeto não
>fica mais nulo (ou 
>seja form é <> nil). 
>  Uma coisa que aconteceu é que agora posso
>criar muitos forms iguais 
>que ficam todos sob o MDIForm. Como controlar
>para que não seja 
>criado mais de um form igual?
>
>--- Em delphi-br@yahoogrupos.com.br, "Marcelo
>Silva" <[EMAIL PROTECTED]> 
>escreveu
>> Quando vc cria uma aplicação MDI esta deve ser
>composta de um 
>formulario fsMDIForm (como formulario principal)
>e os outros que vao 
>abrir dentro dele devem(nao necessariamente) ser
>fsMDIChild.
>> 
>> Na criação dos MDIChilds só devem ir o
>comando: 
>> Application.CreateForm(TfmForm, fmForm);
>> Não sendo necessário o ".Show" pois os
>MDIChilds ficam sempre 
>visiveis...
>> 
>> Voce não pode fazer uma aplicação com mais de
>um Form fsMDIForm ou 
>seja, um é MDIForm e os outros devem ser
>fsMDIChild ou fsNormal ou 
>fsStayOnTop
>> 
>> Se form fsStayOnTop este nao deve ser
>levantado com .Show ou 
>ShowModal pois ele é sempre visivel
>> Já os outros fsNormal ou fsStayOnTop podem ser
>.Show 
>ou .ShowModal...
>> 
>> 
>> Marcelo Silva
>> Cel. 11 9693-4251
>> ICQ - 49224093
>> MSN [EMAIL PROTECTED]
>> 
>> 
>> ----- Original Message ----- 
>> From: moacirponti 
>> To: delphi-br@yahoogrupos.com.br 
>> Sent: Monday, April 18, 2005 2:18 PM
>> Subject: [delphi-br] Re: Abrir MDIForm já
>criado
>> 
>> 
>> 
>>    
>>    Você poderia descrever exatamente o que
>coloca em "// Aqui vc 
>faz 
>> outras coisas"?
>>    Tentei o BringToFront, bem como um
>Visible:= True antes do Show, 
>> mas continua dando Abstract Error quando chamo
>o "Show".
>> 
>>   Moacir.
>> 
>> 
>> --- Em delphi-br@yahoogrupos.com.br, "Marcelo
>Silva" <[EMAIL PROTECTED]> 
>> escreveu
>> > if (fmForm = nil) then begin
>> >   Application.CreateForm(TfmForm, fmForm);
>> >   // Aqui vc faz outras coisas
>> > end else fmForm.BringToFront;
>> > 
>> > 
>> > Formulários MDIChild não podem ficar Visible
>= false.
>> > 
>> > 
>> > Marcelo Silva
>> > Cel. 11 9693-4251
>> > ICQ - 49224093
>> > MSN [EMAIL PROTECTED]
>> >   ----- Original Message ----- 
>> >   From: moacirponti 
>> >   To: delphi-br@yahoogrupos.com.br 
>> >   Sent: Monday, April 18, 2005 1:38 PM
>> >   Subject: [delphi-br] Abrir MDIForm já
>criado
>> > 
>> > 
>> > 
>> >   Olá.
>> > 
>> >      Estou desenvolvendo uma aplicação com
>forms no estilo MDI. 
>> Todos 
>> >   os MDI deixo em Available Forms (e não em
>Auto-create). Quando 
>> tenho 
>> >   de abrir um form, geralmente faço assim:
>> >      
>> >     // Início do código 
>> >      try
>> >         fmForm.Show;
>> >      except
>> >         fmForm:=
>TfmForm.Create(Application);
>> >         try
>> >            fmForm.Show;
>> >         except
>> >            ShowMessage('Formulário não foi
>criado');
>> >            Abort;
>> >         end;
>> >      end;
>> >     // Fim do código 
>> > 
>> > 
>> >     Mas acho ruim porque toda vez ele gera
>um erro para depois 
>> criar o 
>> >   form. Tem alguma forma de saber se já foi
>criado e apenas exibi-
>> lo?   
>> >     Já tentei usar um (if fmForm <> nil),
>funciona bem da 
>primeira 
>> vez 
>> >   (ele percebe que é nil e cria o form), mas
>quando fecho e abro 
>o 
>> >   mesmo formulário, ele dá a mensagem:
>"Abstract Error" ou um 
>> Access 
>> >   Violation.
>> >     
>> >     Obrigado,
>> >     
>> >     Moacir.
>> > 
>> > 
>> > 
>> > 
>> > 
>> >   -- 
>> >   <<<<< FAVOR REMOVER ESTA PARTE AO
>RESPONDER ESTA MENSAGEM >>>>>
>> > 
>> >   Para ver as mensagens antigas, acesse:
>> >  
>http://br.groups.yahoo.com/group/delphi-br/messa
>ges
>> > 
>> >   Para falar com o moderador, envie um
>e-mail para:
>> >   [EMAIL PROTECTED] ou
>[EMAIL PROTECTED]
>> > 
>> > 
>> > 
>> >         Yahoo! Grupos, um serviço oferecido
>por: 
>> >               PUBLICIDADE
>> >                 
>> >        
>> > 
>> > 
>> >
>------------------------------------------------
>------------------
>--
>> ----------
>> >   Links do Yahoo! Grupos
>> > 
>> >     a.. Para visitar o site do seu grupo na
>web, acesse:
>> >    
>http://br.groups.yahoo.com/group/delphi-br/
>> >       
>> >     b.. Para sair deste grupo, envie um
>e-mail para:
>> >     [EMAIL PROTECTED]
>> >       
>> >     c.. O uso que você faz do Yahoo! Grupos
>está sujeito aos 
>Termos 
>> do Serviço do Yahoo!. 
>> > 
>> > 
>> > 
>> > 
>> >
>------------------------------------------------
>------------------
>--
>> ----------
>> > 
>> > 
>> >   No virus found in this incoming message.
>> >   Checked by AVG Anti-Virus.
>> >   Version: 7.0.308 / Virus Database:
>266.9.11 - Release Date: 
>> 14/04/2005
>> > 
>> >   ----------
>> > 
>> > No virus found in this outgoing message.
>> > Checked by AVG Anti-Virus.
>> > Version: 7.0.308 / Virus Database: 266.9.11
>- Release Date: 
>> 14/04/2005
>> > 
>> > 
>> > [As partes desta mensagem que não continham
>texto foram removidas]
>> 
>> 
>> 
>> 
>> 
>> -- 
>> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER
>ESTA MENSAGEM >>>>>
>> 
>> Para ver as mensagens antigas, acesse:
>>
>http://br.groups.yahoo.com/group/delphi-br/messa
>ges
>> 
>> Para falar com o moderador, envie um e-mail
>para:
>> [EMAIL PROTECTED] ou
>[EMAIL PROTECTED]
>> 
>> 
>> 
>> Yahoo! Grupos, um serviço oferecido por:
>> 
>>  São Paulo Rio de Janeiro Curitiba Porto
>Alegre Belo Horizonte 
>Brasília 
>> 
>> 
>> 
>> 
>> 
>> 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 Termos do 
>Serviço do Yahoo!. 
>> 
>> 
>> 
>> 
>> 
>> No virus found in this incoming message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.308 / Virus Database: 266.9.11 -
>Release Date: 
>14/04/2005
>>   ----------
>> 
>> No virus found in this outgoing message.
>> Checked by AVG Anti-Virus.
>> Version: 7.0.308 / Virus Database: 266.9.11 -
>Release Date: 
>14/04/2005
>> 
>> 
>> [As partes desta mensagem que não continham
>texto foram removidas]
>
>
>
>
>
>-- 
><<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA
>MENSAGEM >>>>>
>
>Para ver as mensagens antigas, acesse:
>
>http://br.groups.yahoo.com/group/delphi-br/messa
>ges
>
>Para falar com o moderador, envie um e-mail
>para:
> [EMAIL PROTECTED] ou
>[EMAIL PROTECTED]
> 
>Links do Yahoo! Grupos
>
>    http://br.groups.yahoo.com/group/delphi-br/
>
>
>    http://br.yahoo.com/info/utos.html





____________________________________________________________________



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