Fechar forms MDI Filhos

Delphi

21/04/2005

Olá... estou tendo alguns problemas com formulários filhos... acontece q qdo clico no botão fechar da barra de título, ele minimiza o formulário dentro do pai.
Alguém sabe como resolver isso?

VLW!


Sérgio Gobbo

Sérgio Gobbo

Curtidas 0

Melhor post

Mysys

Mysys

21/04/2005

coloca isso no OnClose do Form

Action := caFree;
Seu_Form := nil;


GOSTEI 1

Mais Respostas

Edilcimar

Edilcimar

21/04/2005

a borland aconselha a utilizar o release


GOSTEI 0
Marco Salles

Marco Salles

21/04/2005

a borland aconselha a utilizar o release


Em Qual Lugar No evento OnClose ou Imediatamente apos ao comando que fez a Chamada ao Formulário Filho :?: :?: :?:


GOSTEI 0
Edilcimar

Edilcimar

21/04/2005

no onclose


GOSTEI 0
Marco Salles

Marco Salles

21/04/2005

no onclose


Tive uma experiencia com o Release No OnClose Do Form :cry: :cry: :cry:

Citação de [color=darkred:8ad4bc9601][b:8ad4bc9601]Dart[/b:8ad4bc9601][/color:8ad4bc9601] em http://forum.clubedelphi.net/viewtopic.php?t=61646&highlight=

Eu defino no Objecto Inspector Os MDIChild e MDIFORM dos Forms Mas quando eu abro 2(Dois) form q esta como MDICHILD em Maximized, e Preciso fechar um deles (uso o comando Release) o q ficou ele volta ao Normal.


Usando

Actin:=Cafree,
Form:=Nil;


:arrow: :arrow: Este problema sumiu

[b:8ad4bc9601]Fica aqui um registro de uma situação estranha Do Release [/b:8ad4bc9601]


GOSTEI 0
Edilcimar

Edilcimar

21/04/2005

Eu nunca tive este tipo de problema


GOSTEI 0
Mysys

Mysys

21/04/2005

uso nill abro varias telas ou a mesma tela varias vezes e numca tive problemas

tem sertas coisas que vai da boa vontade de cada um

ja me falarao ate que eu nao deveria usar form MDIChild porque a microsoft ja abandonou esse tipo de coisa

problema da microsoft nao tenho nada a ver com isso


GOSTEI 0
Marco Salles

Marco Salles

21/04/2005

Eu nunca tive este tipo de problema


Certamente não Teve , porque não faz muito sentido criar Formulários Filhos e apresenta-los ocupando toda a tela, como foi feito Pelo [color=darkred:176a2921a7][b:176a2921a7]Darf[/b:176a2921a7][/color:176a2921a7] no Tópico
http://forum.clubedelphi.net/viewtopic.php?t=61646&highlight=

Cada caso é um caso.. Eu tb não Tive nenhum Problema .

Eu ate , para tirar minha cisma , Recriei o exemplo dele e
pude Constatar o Problema...

[b:176a2921a7]Nen devo Chamar isto de Bug, pq Penso que não faz muito sentido Criar Form Filhos e Apresenta-los em Formato Tela Cheia[/b:176a2921a7]


GOSTEI 0
Edilcimar

Edilcimar

21/04/2005

tirado do help do delphi, como havia escrito anteriormente

[b:f96f25d19d]
To destroy a form, call its Release method. Release waits for all the form’s event handlers and the event handlers of the form’s components to finish executing before destroying the form.
[/b:f96f25d19d]


GOSTEI 0
Mysys

Mysys

21/04/2005

é verdade
a ideia do MDIChild é agilizar varias telas ao mesmo tempo
realmente concordo nao é bug


GOSTEI 0
Kapak

Kapak

21/04/2005

Acredito que não precisa destruir o MDIChild p/ fazê-lo sumir.
No onClose:
FormStyle := fsNormal;
Action := caHide;

E p/ mostrar:
FormChild.FormStyle := fsMDIChild;
FormChild.Show;


GOSTEI 0
Sérgio Gobbo

Sérgio Gobbo

21/04/2005

Vlw ae gente... deu certo... mas alguém poderia me explicar a função do:
Action:=caFree;
Form:=nil;

pq tipoh... colocando apenas o Action:=caFree; ele jah funciona, pq?

Ah... e se alguem souber tb como fazer pra qdo abri o pai, os filhos naum abrirem juntos, por favor, posta ae...

Vlw e disculpa abusá cas perguntas


GOSTEI 0
Andremuller

Andremuller

21/04/2005

Para acabar com a discussão vão nas unit Forms e vejam o que faz o caFree.

case CloseAction of
      caNone: ModalResult := 0;
      caFree: Release;
    end;


Dá no mesmo, hehe.

Eu pessoalmente prefiro usar o caFree porque um objeto de auto destruir não acho muito interessante. Se for para fazer isso que seja encapsulado.


GOSTEI 0
POSTAR