Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-11-2008
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
¿¿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.
Responder Con Cita
  #2  
Antiguo 02-11-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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);
Despues con MDI (o el nombre que elijas) accedes a todos los miembros de padre.

Saludos.
Responder Con Cita
  #3  
Antiguo 02-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 02-11-2008
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Poder: 18
NEG1414 Va por buen camino
Muchas Gracias por contestarme
Responder Con Cita
  #5  
Antiguo 02-11-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #6  
Antiguo 02-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 02-11-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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:
Cita:
Empezado por NEG1414 Ver Mensaje
Ya que el programa a diferencia de una llamada de tipo Modal
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.
Responder Con Cita
  #8  
Antiguo 02-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 14:10:08.


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
Copyright 1996-2007 Club Delphi