FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿¿Se puede Hacer??
Buenas:
Tengo dos formularios uno Padre (fsMDIForm) y un formulario Hijo (fsMDIChild) al que llamo de la manera: TFormHijo *FHijo = new TFormHijo(this); //Muestro Form FHijo->Show(); En el formulario Hijo realizo una serie de operaciones segun el resultado de las cuales al salir Close() debo ejecutar alguna funcion en el Formulario Padre... Ya que el programa a diferencia de una llamada de tipo Modal TFormHijo *FHijo; Fhijo = new TFormHijo(this); //Muestro Form Modal switch (FHijo->ShowModal()) { case mrOk:LLamarFuncion() break; case mrCancel:break; } Una vez cerrado el formulario secundario no continua la ejecucion del programa en la linea siguiente a la llamada Mi pregunta es la siguiente puedo acceder a una funcion del Formulario Padre desde el Formulario Hijo . Gracias. |
#2
|
||||
|
||||
Si, puedes obtener un puntero al formulario padre MDI. Para ello el hijo debe tener incluida la definicion.h del padre.
La forma de obtener ese puntero a la clase Padre desde la clase Hijo es: Código:
ClasePadre* MDI = static_cast <ClasePadre*> (Owner); Saludos. |
#3
|
||||
|
||||
también puedes application.MainForm en el formulario hijo.
Supongo que el MainForm será tu MDIForm Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
|||
|
|||
Muchas Gracias por contestarme
|
#5
|
||||
|
||||
El problema de usar MainForm "a secas" es que es un TForm y no el MDI que buscamos, por eso temenos que hacer un "casting" como el que describo...
Saludos. |
#6
|
||||
|
||||
Perdón, no me había dado cuenta de un detalle importante. Una ventana mdiChild no puede mostrarse con ShowModal. Obtendrás un error en pantalla más o menos como "Can not make modal a visible window" o algo así.
Si quieres mostrar una ventana como modal, tienes que poner FormStyle a algo distinto a mdiChild (y obviamente distinto de FormMDI, ya que sólo puede haber una en la aplicación). Si necesitas que una ventana se comporte como mdichild y a la vez mostrarla con ShowModal, aunque se puede hacer, es lioso, yo te aconsejaría usar un frame con todo lo que debe llevar dentro y ese frame, lo pones en 2 ventanas nuevas, una para usarla como mdichild y otra como modal. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Tienes razón, Lepe, con tu comentario de MDIChild y ShowModal. Pero creo que la intención de NEG1414 es no mostrarlo como Modal, al menos así lo entiendo de su comentario:
Creo que hizo ese comentario para que entendiésemos que a la salida quiere que MDIForm haga "algo", y por eso quiere acceder a alguna función desde el MDIChild... Saludos. Última edición por escafandra fecha: 02-11-2008 a las 20:34:14. |
#8
|
||||
|
||||
Creo que tienes razón una vez más escafandra, creo leí demasiado rápido .
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Se puede hacer en cxGrid....? | paladincubano | Varios | 3 | 19-02-2008 16:13:36 |
Qué NO se puede hacer con Delphi. | Caral | Debates | 31 | 06-03-2007 18:59:48 |
Se puede hacer un multi FTP? | JuanErasmo | Internet | 4 | 08-11-2006 16:38:09 |
duda si se puede hacer | alachaise | MySQL | 2 | 14-04-2005 14:23:20 |
se puede hacer | armando | Conexión con bases de datos | 6 | 20-05-2004 05:12:26 |
|