Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   MDI Form (https://www.clubdelphi.com/foros/showthread.php?t=9702)

JorgeBec 29-04-2004 18:55:58

MDI Form
 
Sigo con mis novatadas!, una pregunta estoy haciendo un proyecto MDI, y quiero que una forma que es child no aparezca solo hasta que la invoque, y otra pregunta porque al darle ShohModal a una forma me dice que no puede hacerla visible???


agradecere sus respuestas...

roman 29-04-2004 19:57:39

Que yo sepa los formularios mdiChild no pueden ser modales, y de hecho no están pensados para eso.

En cuanto a la otra parte, lo usual con formularios mdiChild es quitarlos del "auto-create" y crearlos tú mismo cuando sea necesario. Los formularios mdiChild siempre son visibles y por ello, si ya están creados en "auto-create" no hay forma de evitar que se presenten.

// Saludos

JorgeBec 29-04-2004 20:18:08

gracias por la respuesta, lo que pregunte ya lo soluciones, pero ahora tengo otra pregunta, la forma MDIChild no la puedo cerrar, solo se minimiza, que debo configurar para poder cerrarla???

roman 29-04-2004 20:24:47

Por lo mismo, no puedes ocultarla y tendrás que destruirla. En su evento OnClose pon Action := caFree;

// Saludos

JorgeBec 29-04-2004 23:37:22

Funcionó Roman, mil gracias...

delphi.com.ar 30-04-2004 00:41:36

Un poco tarde, pero te cuento algo: Cuando tengo un formulario que tiene que verse como MDIChild y a su vez, cuando es llamado de otro lado tiene que verse como modal, lo que hago es tenerlo guardado como fsNormal, entonces cuando necesito que sea modal lo creo y hago un ShowModal, pero cuando necesito que sea MDIChild, lo creo y le asigno al FormStyle el valor fsMDIChild, entonces se muestra automáticamente como MDIChild...

Saludos!

elbilla 11-11-2004 17:42:14

He visto varios hilos de este tipo pero me estoy volviendo loco con los Mdi Child...
Tengo un Form principal Mdi Form, y varios Mdi Child.
Los Mdi Child los abro así:
Código:

 
If FORM <> nil then
  FreeAndNil(FORM);
FORM:= FORM.CREATE (SELF);
FORM.show;

Luego en el OnClose lo cierro con el Action:=caFree, pero si lo vuelvo a abrir me da un error...He probado a cerrarlo con el FreAndnil(FORM) pero al volverlo abrir m vuelve a dar error...
EL caso es q al abrirlo de la manera q pongo, lo puedo abrir y cerrar poniendo el FreandNil en el OnCLose las veces q quiera sin q pase nada, pero si pongo el FreeandNil en un boton entonces me da error. Lo hace una vez y la siguiente vez q entro ya me da error...
Un saludo..
Gracias

roman 11-11-2004 17:47:56

No entiendo bien esta forma que usas para crear los formularios pero te puedo decir dos cosas:

La línea

FORM:= FORM.CREATE (SELF);

no es correcta. Cuando construyes un formulario debes usar el identificador de clase y no la variable en sí. Esto es, si FORM es de tipo TMiForm, lo correcto es:

FORM:= TMiForm.CREATE (SELF);

La otra cosa es que para liberar un formulario desde algún evento o método del mismo formulario (como el OnClick de un botón) debes usar el método Release en lugar de Free, que es el que ejecuta FreeAndNil.

// Saludos

elbilla 11-11-2004 17:56:46

Perdona, los creo como dices....Form:= Tform.create(self)

Voy a probar lo del Release a ver si ese es el fallo......(Espero q si)....

Un saludo

Nada, con el Release lo cierra también, pero al volver a acceder a dicho Form, me da un error de memoria...No sé pq puede ser...


La franja horaria es GMT +2. Ahora son las 23:19:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi