![]() |
Delphi-Version: XE5
Dynamisch erzeugtes Frame auf TabSheet erst nach Aktualisierung sichtbar
Hallo,
ich stehe gerade vor einem Problem und weiß nicht so recht weiter: Ich habe ein PageControl auf welchem dynamisch mehrere TabSheets erzeugt werden
Delphi-Quellcode:
Danach möchte ich auf jedem TabSheet ein Frame erzeugen:
for i := 0 to 6 do
begin FTabSheetList[i] := TTabSheet.Create(PageControl1); FTabSheetList[i].PageControl := PageControl1; end;
Delphi-Quellcode:
Wenn ich nun das Projekt starte und das Formular mit dem PageControl öffne sehe ich das dynamisch erzeugte Frame innerhalb des TabSheets nicht. Klicke ich dann auf ein anderes Tab und wieder zurück ist es auf einmal da.
if PageControl1.Pages[0].Visible then
begin Fxyz := TFrame.Create(self); Fxyz.Name := 'xyz'; Fxyz.Parent := FTabSheetList[0]; Fxyz.Align := alClient; end; Was ich schon probiert habe: Fxyz.Show; Fxyz.visible; PageControl1.ActivePage := PageControl1.Pages[0]; Es spielt auch keine Rolle, wo ich die Frames dynamisch erzeuge (ob Konstructor des Formulars oder später). Hat hier vllt jemand eine Idee? Ich habe dann testweise z.B. versucht nacheinander "PageControl1.ActivePage" verschiedene Seiten zuzuweisen. Hier hat er dann z.B. die "visible"-Eigenschaft der ersten Seite auf "false" gesetzt, wenn ich "PageControl1.ActivePage := PageControl1.Pages[3];" gesetzt habe. Das versteht ich auch irgendwie nicht :S Ich hoffe mir kann jemand helfen. Grüße Headbucket |
AW: Dynamisch erzeugtes Frame auf TabSheet erst nach Aktualisierung sichtbar
Ein Redraw des heets sollte eigentlich ausreichend sein.
|
AW: Dynamisch erzeugtes Frame auf TabSheet erst nach Aktualisierung sichtbar
Ein Refresh und ein Repaint des PageControls bzw. des einzelnen TabSheets bringt leider auch keine Besserung.
|
AW: Dynamisch erzeugtes Frame auf TabSheet erst nach Aktualisierung sichtbar
Hm. Es liegt auf jeden Fall daran, dass ich die TabSheets vorher alle auf visible setze:
Delphi-Quellcode:
Lass ich diese zwei Zeilen weg dann zeigt er mir die erzeugten Frames korrekt an.
for i := 0 to PageControl1.PageCount - 1 do
PageControl1.Pages[i].Visible := true; Führ ich obrigen Code nach der dynamischen Erzeugung aus klappt es wieder nicht... . Es ist aber wichtig, dass ich die Sichtbarkeit setze, da sie sonst total zufällig gesetzt werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz