Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Form dentro Panel MDI aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=93047)

_CALI 28-04-2018 03:32:14

Form dentro Panel MDI aplicacion
 
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:

Código Delphi [-]
 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:


Código Delphi [-]
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.
Cita:

Empezado por _CALI (Mensaje 525940)
...
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:

Código Delphi [-]
procedure TFormHijo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;
...

Trata de este modo:
Código Delphi [-]
...
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

Cita:

Empezado por ecfisa (Mensaje 525941)
Hola.

Trata de este modo:
Código Delphi [-]
...
procedure TFormHijo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  WinApi.Windows.SetParent(Handle, 0); 
  Action := caFree;
end;

Saludos :)

Excelente, Muchas Gracias ^\||/


La franja horaria es GMT +2. Ahora son las 05:24:46.

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