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

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