PDA

Ver la Versión Completa : Abrir un MDIForm desde otro


gabrio
02-10-2007, 00:22:21
Buenas tarde amigos, mirad, tengo un problemilla:

Tengo una aplicación MDI y necesito que ésta, ejecute una ventana que tambien es MDI y tiene sus propias hijas.

Sabe alguien como puedo lograrlo?

Hasta ahora he intentado:

Form1 : MDIForm
Form2 : MDIForm
Form3 : MDIChild de Form2

En el Form1 :
Form2 := TForm2.Create(Application);

Perfecto, me abrio el form2 que es MDI, ahora, desde el form 2:
Form3:= TForm3.Create(Application);

Error, me abre Form3 que es MDIChild en el form1 y yo lo quiero en el Form2.

Gracias

pborges36
02-10-2007, 00:39:03
Hola. por lo poco que entiendo el argumento del create debe ser
el antecesor del objeto que se esta creando. Proba algo asi:

desde el form2

form3:=Tform3.Create(self);

asi es como yo lo uso

o bien


form3:=Tform3.Create(form2);

esto se me acaba de ocurrir.

Suerte.

dec
02-10-2007, 01:13:13
Hola,

Gabrio, primero que nada, voy a remitirte a la guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) de estos foros. En segundo lugar, me gustaría decir (por enésima vez) que cuando hablemos de errores en los foros es menester exponer de qué error estamos hablando. No vale "me da error", porque eso no dice nada de nada.

Dicho lo cual, no es bien duplicar hilos en los foros, aunque, como no estoy seguro de que sea un duplicado exactamente, no voy a cerrar este. Lo que sí voy a hacer es remitirte a la respuesta que te di en "Aplicación Multi-MDI (http://www.clubdelphi.com/foros/showthread.php?t=48570)", puesto que creo que, si sirve, también servirá para lo que planteas ahora... porque si no es lo mismo le falta poco.

PD. La respuesta (para quienes no quieran visitar el hilo en cuestión) es, básicamente, que, si no me equivoco, una aplicación no puede contener sino un formulario "MDIForm", de modo que lo que quieres hacer habrá que hacerlo de otro modo... con otras técnicas, pero, mientras una aplicación MDI no permita más de un formulario "MDIForm" (que alguien me corrija) no podrás hacer lo que quieres.

gabrio
02-10-2007, 15:46:17
Buenos días dec. Antes que nada, te pido una disculpa porque cuando escribí la palabra 'Error', no me refería a un error en específico, sino que delphi está haciendo lo que debe hacer pero no me sirve (que es abrirme la ventana hija en el MDI principal).

El hecho de haber repetido el hilo, fué porque quería escribir mi pregunta de forma más clara y ya no pude modificar la anterior.

Aunque por lo visto, volví a confundir a la comunidad.

Como quiera, es bueno saber que estas al pendiente de cada uno de nosotros como usuarios, te felicito.

Seguiré esperando alguna respuesta de alguien que se haya topado con el mismo problema que yo.

Gracias Dec y por supuesto, gracias pborges36

gabrio
02-10-2007, 15:47:54
Buenos días dec. Antes que nada, te pido una disculpa porque cuando escribí la palabra 'Error', no me refería a un error en específico, sino que delphi está haciendo lo que debe hacer y a mi no me sirve (que es abrirme la ventana hija en el MDI principal y no en el MDI secundario). En fin. El hecho de haber repetido el hilo, fué porque quería escribir mi pregunta de forma más clara y ya no pude modificar la anterior.

Aunque por lo visto, volví a confundir a la comunidad.

Como quiera, es bueno saber que estas al pendiente de cada uno de nosotros como usuarios, te felicito.

Seguiré esperando alguna respuesta de alguien que se haya topado con el mismo problema que yo.

Gracias Dec
pborges36