FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Declaro como FormMDI el formulario1.
Una vez que pulso un boton de este formulario1 (por ejemplo) llamo a una función principal de la DLL, la cuál crea el formulario2 que es el MDIChild. Pero al realizar el create de este formulario2 (MDIChild) me sale el mensaje de error. Este es el código de la función de la DLL: function editar(FormPadre: TForm) :integer; var Form2 : TForm2; begin Application.Handle := FormPadre.Handle; try Form2 := TForm2.Create(FormPadre); Form2.FormStyle := fsMDIChild; Form2.Show; Result := 0; except on e: exception do begin ShowMessage('Error: ' + e.Message); Form2.Free; end; end; end; Alguna sugerencia? |
#2
|
|||
|
|||
No se si el problema es una limitación de delphi.
Se puede tener un formulario padre (MDI) en una aplicacion, llamado form1 p.e., y llamar a una DLL que cree un formulario que se encuentra en dicha DLL, y que este formulario sea hijo (ChildMDI) del form1? Porque no se si esto se puede hacer. |
#3
|
||||
|
||||
He visto algunos detalles que paso a comentarte.
el Handle del forrm padre no debes asignarlo al Handle de Application, son cosas distintas. Form2 está declarada dentro de la función, eso significa que al salir, pierdes la referencia a esa ventana. Form2 debe estar declarada en un sitio Global. Tampoco hace falta hacer el Show de la ventana, ya que al crearse una de ellas, en un entorno MDI, siempre se muestran por defecto.
Si esto no soluciona tu problema, igual será la forma de cargar la Dll saludos y espero que te ayude |
|
|
|