FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
En mi aplicacion MDI quiero crear una ventana hija desde otra ventana hija
Uso delphi7 y tengo una aplicacion MDI (casi terminada) y necesito abrir una ventana hija desde otra ventana hija. Aguien sabe como o si hay algun truco que haga que parezca que asi es. Os explico el caso concreto:
El caso es que en una ventana hija muestro un grid con datos de los contactos de una agenda, y quiero que al hacer doble clic sobre una celda del grid quiero que me abra otra ventana MDI con la infomacion del contacto. La solucion cutre es poner un panel sobre la ventana del grid y hacerlo visible, pero prefiero no hacer no eso porque queda un poco cutre, ademas asi solo podria abrir una ficha de contaco y lo bueno seria poder tener varias fichas a la vista. Un saludo y gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5 |
#2
|
||||
|
||||
Si es abrir otra ventana que este contenida por el MDI, simplemente tienes que crear otra ventana del tipo MDIChild.
Si quieres que esta otra ventana, este contenida dentro de tu child, mira este hilo: http://www.clubdelphi.com/foros/showthread.php?t=449
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
El probela es que ya lo he intentado pero me sale un error. Lo que hago es esto:
Código:
procedure TFAgenda.AadirDireccion1Click(Sender: TObject); begin //crear la ventana de añadir direcciones FAltaDireccion.Create(Self); end; Como se hace? gracias
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5 |
#5
|
||||
|
||||
¿¿Seguro que FAltaDireccion es la clase y no es una variable??
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#6
|
||||
|
||||
ya me funciono con:
UAltaDirecciones.FAltaDirecciones.Create(Self); Gracias
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5 |
#7
|
||||
|
||||
Para mi que no lo ha entendido
Si tienes declarado algo así:
No puedes crear la ventana con:
porque la primera vez que se ejecute ese código, Form1 apunta a nil, y estarás atravesando un puntero nulo al intentar acceder al método Create. En algunos casos, puedes hacer esto: En este caso no se utiliza la variable Form1 para nada, pero como ves, se usa un try ... finally, para destruir el objeto al final. Lo normal es crearlo así:
XXX será el que se encargue de liberar esa ventana, si despues más abajo haces una llamada a Form1.Free, o bien freeandnil(Form1), entonces puedes sustituir XXX por nil (es decir, nadie se encarga de liberar la ventana. Imagina que Form2, es la ventana de contactos, y al hacer doble clic, se abre el Form1 con la información detallada, Si quieres que al cerrar la ventana de contactos, se cierre automaticamente la ventana de información detallada, puedes poner
Si una ventana va a estar creada durante toda la vida de la aplicación, puedes usar:
Por tanto, tienes 3 métodos para crear ventanas, cualquier otro método que uses, tarde o temprano, como ya te han dicho, fallará. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
||||
|
||||
Por cierto, ¿por qué crees que todas las clases de delphi empiezan con la letra T , Tform1, TStringList, etc..
Para recordar que es un Tipo de datos, y eliminar fallos en la creación de objetos. Moraleja: Sigue un Estandar para nombrar componentes, tipos y variables. Aqui tienes un hilo sobre esto Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#9
|
||||
|
||||
Gracias por la informacion, a ver si reviso la forma de crear las ventanas pues lo hago a imagen de un ejemplo que sqaque de un manual donde explicaba como se hacen las aplicaciones MDI.
Gracias por la informacion.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5 |
|
|
|