Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Formas a las cuales se asigna el parent un TabSheet (https://www.clubdelphi.com/foros/showthread.php?t=86903)

ASAPLTDA 21-10-2014 06:15:30

Formas a las cuales se asigna el parent un TabSheet
 
Buenas Tardes Foristas
Estoy creando formas a las cuales le asigno como parent un Tabsheet.
Pero los botones de Cerrar , maximizar quedan inhabilitados, eso es lo normal o que procimiento debo ejecutar para que l forma se puedan cerrar usando los boton X(cerrar) de la forma
Gracias por sus comentarios
Adjunto Codigo
Código Delphi [-]
  procedure CREAR_FORMA_X_NOMBRE(P_FormName, P_TabSheetName:String);
  var
    fc: TFormClass;
    f : TForm;
    W_ModalResult :Integer;
    W_S :string;
  begin
    fc            := TFormClass(FindClass(P_FormName));
    f             := fc.Create(Application);
    W_FormName    := P_TabSheetName; // f.Name ;
    F.Name        := P_TabSheetName;
    F.Caption     := P_FormName;
    F.Hint        := P_FormName;
    f.FormStyle   := fsNormal;
    f.action      := FormClose;
    f.BorderStyle := bsSizeable ;       //bsnone
    F.WindowState := wsMaximized;
    F.Parent      := TabSheet;
    f.Show;
  END;

ElKurgan 21-10-2014 07:58:43

¿Y no te has planteado realizar lo mismo con "Frames" en lugar de "Forms".

Aquí hay un artículo de ejemplo de como implementar algo parecido

Saludos

ecfisa 21-10-2014 08:41:18

Hola ASAPLTDA.

Por otro lado, si deseas continuar usando forms como en tu código, creo que sería mejor hacer algo como:
Código Delphi [-]
...
procedure TForm1.FormTabSheetClose(Sender: TObject; var Action: TCloseAction);
begin
  ShowMessage(Format('%s se cerrará', [TForm(Sender).Name]));
  Action:= caFree;
end;

procedure CreateFormInTabSheet(const FormName: string; FormClose: TCloseEvent;
  TabSheet: TTabSheet);
begin
  with TForm.Create(TabSheet) do
  begin
    Name:= FormName;
    Caption:= Name;
    Hint:= Name;
    FormStyle:= fsNormal;
    BorderStyle:= bsSizeable;
    WindowState:= wsMaximized;
    OnClose:= FormClose;
    Parent:= TabSheet;
    Show;
  end;
end;

// Ej., crear un form en cada TabSheet
procedure TForm1.btnCreateClick(Sender: TObject);
var
  i: Integer;
begin
  with PageControl1 do
    for i:= 0 to PageCount-1 do
      CreateFormInTabSheet(Format('Form_TabSheet%d',[i+1]),
        FormTabSheetClose, Pages[i]);
end;

Saludos :)


La franja horaria es GMT +2. Ahora son las 10:38:01.

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