Ver Mensaje Individual
  #9  
Antiguo 01-09-2007
paubar paubar is offline
Registrado
 
Registrado: ago 2007
Posts: 8
Reputación: 0
paubar Va por buen camino
Wink Mas codigo

Procedure TForm1.CreateFrame(forTabsheet: TSuiTabSheet);
begin
If GetFrame( forTabsheet ) = nil Then
PostMessage( handle, UM_CREATEFRAME, WPARAM(forTabsheet), 0 );
end;

procedure TForm1.DestroyFrame(forTabsheet: TSuiTabsheet);
begin
getFrame( forTabsheet ).Free;
end;

function TForm1.GetFrame(forTabSheet: TSuiTabsheet): TFrame;
begin
If not Assigned( forTabsheet ) Then
forTabsheet := Suipagecontrol1.activepage;
Result := nil;
If Assigned( forTabsheet ) and
(forTabSheet.ControlCount > 0) and
(forTabSheet.Controls[0] Is TFrame)
Then
result := TFrame(forTabSheet.Controls[0]);
end;

Type
TFrameclass = class of TFrame1;

procedure TForm1.UMCreateFrame(var msg: TUmCreateFrame);
Var
frame: TFrame;
begin
If msg.tabsheet.Tag <> 0 Then Begin
frame := TFrameclass(msg.tabsheet.Tag).Create(self);
frame.Parent := msg.tabsheet;
frame.Align := alClient;
End;
end;
Este es todo el codigo.
Haber si podemos llegar a una solución.
De todas maneras lo que pasa es que no se da tiempo a que windows cree los componentes.
A lo mejor solo se trata de buscar el componentes con FindComponents y haber si es distinto de nil.
Pero lo interesante es encontrar la mejor manera de hacerlo.
Responder Con Cita