Bueno:
1) Use Sleep(1) para dar tiempo a que se creen los controles, no me convence demasiado pero funciona, por otro lado se me habia ocurrido enviar
un SendMessage y esperar a que me conteste, pero no se que mensaje enviar a un TFrame, creo que esa sería la opcion.
2) El segundo problema era solo un error de código, cambie la manera de crear un array de Frame1.
Tab:=TSuiTabSheet.Create(Self);
Tab.PageControl:=Form1.suiPageControl1;
Tab.Tag:=Integer(TFrame1);
Tab.Caption:=RemotoName;
Form1.CreateFrame( Tab as TSuiTabsheet );
Tab.Show;
Sleep(1);
Aqui se crea el TabSheet
Llamo directo al metodo CreateFrameProcedure TForm1.CreateFrame(forTabsheet: TSuiTabSheet);
Var
Frame: TFrame;
begin
Frame := TFrame1.Create(Self);
with Frame do
begin
Parent := Self;
Visible := True;
frame.Parent := forTabsheet;
frame.Align := alClient;
Name := 'FFrames' + IntToStr(pIndex);
inc(pIndex);
end;
pIndex es global
Comentarios:
El usar Sendmessage y posTmessage no obtuve cambio niguno, por lo menos perceptible.Los dos funcionaban igual aunque son distintos métodos.
El error de código era porque desde el evento show se llamaba a createFrame y era que entonces al cambiar de pestaña se colocaba una frame nueva.
Un saludo para todos y haber si podemos encontrar una solución mejor para el pto 1.
Ciao
