Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   insertar un frame en el MDI Padre (https://www.clubdelphi.com/foros/showthread.php?t=81886)

_CALI 29-12-2012 23:28:37

insertar un frame en el MDI Padre
 
hola , quisiera saber como insertar un Frame en el Area Cliente del MDI Padre

Código Delphi [-]
type
  TGround = class(TFrame)
    Button1: TButton;
  //  cxPageControl1: TcxPageControl;
  //  cxTabSheet1: TcxTabSheet;
  //  cxTabSheet2: TcxTabSheet;
   private
    { Private declarations }
     procedure WMCreate(var Msg: TWMCreate); message WM_CREATE;
 
implemetation
 
 
procedure TGround.WMCreate(var Msg: TWMCreate);
begin
 inherited;
 Windows.SetParent(Handle, Application.MainForm.ClientHandle);
end;


Con este código funciona bien , el frame se inserta en el area cliente del form padre, pero cuando
coloco un PageControl con dos pestañas me sale error, el frame se inserta bien cuando este contiene botones, cuadros de texto, etc, pero cuando agrego un PageControl con dos pestañas me sale error..alguna idea?

Gracias

_CALI 29-12-2012 23:48:55

Código Delphi [-]
const WM_LOADED = WM_USER + 200;
type
  TGround = class(TFrame)
    Button1: TButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
  private
    { Private declarations }
     procedure WMCreate(var Msg: TWMCreate); message WM_CREATE;
     procedure WMLoaded(var Msg: TMessage); message WM_LOADED;
  public
    { Public declarations }
  end;
implementation
{$R *.dfm}
procedure TGround.WMCreate(var Msg: TWMCreate);
begin
  inherited;
  PostMessage(Handle, WM_LOADED, 0,0);
end;

procedure TGround.WMLoaded(var Msg: TMessage);
begin
   Windows.SetParent(Handle, Application.MainForm.ClientHandle);
end;
end.

bueno asi no me da error, supongo que al llamar a la funcion setParent, este todavia no reconoce al pagecontrol o algo asi, enviando un mensaje al final de la cola puedo recien insertar el Frame correctamente, pero , una solicion mas "elagante" please
gracias!!


La franja horaria es GMT +2. Ahora son las 14:09:59.

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