Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.169 Beiträge
 
Delphi 12 Athens
 
#3

AW: TForm in TabSheet laden

  Alt 28. Nov 2012, 11:16
Da die Owner gesetzt wurden, müssten beim Schließen der Form eigentlich alle erstellten Controls automatisch wieder freigegeben werden.

Nur bei der Funktion von Button3Click bin ich noch etwas skeptisch. (sieht eigenartig aus)

Delphi-Quellcode:
procedure TDemo_Form.CallForm(aForm: TFormClass);
var
  //newTabClass: TFormClass; // warum doppelt?
  TabSheet: TcxTabSheet;
begin
  if Assigned(aForm) then // hier wäre wohl eine Assertion passender, oder kommt nil so oft vor?
  begin
    TabSheet := TcxTabSheet.Create(PC);
    TabSheet.PageControl := PC;
    PCForm := aForm.Create(TabSheet); // ich würde hier nicht die Demo_Form als Owner nehmen
    PCForm.BorderStyle := bsNone;
    PCForm.Parent := TabSheet;
    PCForm.Align := alClient;
    PCForm.Show;
    tabSheet.Caption := PCForm.Caption;
    tabSheet.Name := PCForm.Name; // Name muß man nicht unbedingt setzen, außer man pfuscht mit FindControl rum
    PC.ActivePage := TabSheet; // statt zu irgendeinen Index kann man auch direkt zum Gewollten hinblättern
    Panel2.Caption := TabSheet.Name;
  end;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat