Eine kurze Frage, ich habe ein PageControl und erzeuge zur Laufzeit TabSheets.
Allerdings ignoriere ich den lokalen Pointer später da das Objekt z.B. über PageControl.Pages angesprochen werden kann.
Soweit, so gut. Wer ruft dann aber die Free Methode auf um den Speicher wieder leerzuräumen?
Geht das PageControl selbst durch alle Pages und ruft .Free auf? (So würde ich es machen.)
Oder muß ich mich um die heimlich hinzugefügten TabSheets selber kümmern? Danke!
Der Code soll eigentlich nur das Verhalten wie z.B. im Firefox Browser simulieren, man hat einen Tab mit der Funktion "Neuer Tab" und wenn man draufklickt wird ein neues Tab erzeugt und aktiv gesetzt. Gibt es hier geschicktere Lösungen? Danke!
Delphi-Quellcode:
procedure TForm_Main.PageControl1Change(Sender: TObject);
var mySheet:TTabSheet;
begin
// darf ich das free ignorieren? Habe die Variable immer noch im Tabindex des Pagecontrol...
if PageControl1.ActivePage.Name='TabSheetNew' then
begin
mySheet:=TTabSheet.Create(PageControl1);
mySheet.PageControl:=PageControl1;
mySheet.Caption:='Hallo';
PageControl1.ActivePage.PageIndex:=PageControl1.PageCount-1;
PageControl1.ActivePageIndex:=mySheet.PageIndex;
end;
end;