Ver Mensaje Individual
  #2  
Antiguo 05-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Reputación: 22
keyboy Va por buen camino
Algo sencillo e inmediato pudiera ser:

Código Delphi [-]
(PageControl1.ActivePage.Controls[0] as TFImagen).funcion(...)

suponiendo que el formulario es el primer control que insertas en la ficha.

Algo más elaborado, pero más prolijo, podría ser crear un derivado de TTabSheet que se encargue de crear el formulario y exponerlo como una propiedad pública:

Código Delphi [-]
type
  TMyTabSheet = class(TTabSheet)
  private
    FForm: TFImagen;

  public
    property Form: TFImagen read FForm;
    constructor Create(AOwner: TComponent); override;
  end;

{ TMyTabSheet }

constructor TMyTabSheet.Create(AOwner: TComponent);
begin
  inherited;

  FForm := TFImagen.Create(Self) ;
  FForm.Parent := Self;
  FForm.Align := alClient;
  FForm.BorderStyle := bsNone;
  Caption := FForm.Name;
end;

Crearía las fichas así:

Código Delphi [-]
var
  tabSheet: TMyTabSheet;

begin
  //Crear un nuevo tab sheet
  tabSheet := TMyTabSheet.Create(PageControl1) ;
  tabSheet.PageControl := PageControl1;

  //Mostrar el nuevo form
  tabSheet.Form.Visible := true;

  //activate the sheet
  PageControl1.ActivePage := tabSheet;
end;

Ahora puedes referirte al formulario y sus métodos y propiedades usando la propiedad Form del TabSheet, por ejemplo:

Código Delphi [-]
(PageControl1.ActivePage as TMyTabSheet).funcion(...)

Bye
Responder Con Cita