Positivo.
Ficou perfeito.
Abaixo o código:

   if Application.FindComponent('fmEmpresa') = nil then
      try
         fmEmpresa:= TfmEmpresa.Create(Application);
         fmEmpresa.WindowState:= wsMaximized;
      except
         ShowMessage('Não foi possível criar formulário');
         Abort;
      end
   else
      fmEmpresa.BringToFront;

Assim não preciso usar form:= nil para finalizar o fechamento e posso 
usar herança no método de fechamento.

Obrigado a todos pela ajuda,

Moacir.

--- Em delphi-br@yahoogrupos.com.br, "eduardo.sic" <[EMAIL PROTECTED]> 
escreveu
> 
> 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