PDA

Ver la Versión Completa : Form dentro Panel MDI aplicacion


_CALI
28-04-2018, 03:32:14
Buenas Noches,

tengo una aplicacion MDI

en el area cliente del formulario principal tengo un panel

muestro un formulario hijo dentro del panel con la siguiente instruccion:


FormHijo := TFormHijo.Create(Application);
winapi.Windows.SetParent(FormHijo.Handle, panel1.Handle);


todo bien, pero cuando cierro el formulario hijo me aparece un error:


Access Violation at Address 73c603e4 in module user32.dll
Read of Address 00000047


el evento Onclose del formulario hijo tengo:



procedure TFormHijo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;



como pordria solucionarlo, debo recurrir a setParent de la API, porque el metodo de delphi no me permite crear formularios dentro de
paneles en aplicaciones MDI

Gracias Nuevamente!!

ecfisa
28-04-2018, 07:38:36
Hola.

...
todo bien, pero cuando cierro el formulario hijo me aparece un error:

Access Violation at Address 73c603e4 in module user32.dll
Read of Address 00000047

el evento Onclose del formulario hijo tengo:


procedure TFormHijo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

...

Trata de este modo:

...
procedure TFormHijo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WinApi.Windows.SetParent(Handle, 0);
Action := caFree;
end;


Saludos :)

_CALI
28-04-2018, 13:46:40
Hola.

Trata de este modo:

...
procedure TFormHijo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
WinApi.Windows.SetParent(Handle, 0);
Action := caFree;
end;


Saludos :)

Excelente, Muchas Gracias ^\||/