![]() |
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... |
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 |
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???
|
Por lo mismo, no puedes ocultarla y tendrás que destruirla. En su evento OnClose pon Action := caFree;
// Saludos |
Funcionó Roman, mil gracias...
|
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! |
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:
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 |
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 |
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 09:43:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi