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