Hallo Th69,
Den Tipp habe ich probiert, aber das Ergebnis bleibt zunächst mal dasselbe:
Delphi-Quelltext
1: 2: 3: 4: 5:
| for I:= 1 to 9 do begin MyPageControl.RemoveControl(MyTabSheets[I]); MyTabSheets[I].Parent:= nil; end; |
Egal ob ich in der Schleife den einen, den anderen oder beide Befehle stehen habe, bleiben im TPageControl die leeren Seiten übrig. Erst wenn ich in der Schleife als dritte Zeile
Delphi-Quelltext
hinzufüge, verschwinden diese Leichen in TPageControl. So ist mein Problem zwar technisch gelöst, aber verstanden hätte ich diesen Effekt schon gern. Ist das eine bekannte Eigenart von TPageControl?
Das mit dem Rauslöschen mittendrin im Array ist mit bewusst. Die nachfolgenden Elemente des Array schiebe ich darum nach dem Löschen mittendrin um einen Index nach vorn, und setze zum Schluss die Länge des Array um Eins herunter. Ein bisschen umständlich, aber das Array brauche ich, um später auf die eingefügten Komponenten in den verschiedenen TTabSheet gezielt zugreifen zu können. In meinem Fall enthält jedes TTabSheet ein TDirectoryListBox für viele spezielle Einzelverzeichnisse, die an einer Stelle übersichtlich einstellbar sein sollen:
Delphi-Quelltext
1: 2:
| DirectoryListBox:= TDirectoryListBox.Create(Self); MyTabSheet[I].InsertControl(DirectoryListBox); |
Auf diese kann ich dann mit
Delphi-Quelltext
1:
| MyTabSheets[I].DirectoryListBox.Directory |
gezielt zugreifen. Würde das auch in deinem angegebenen Beispiel ohne Array irgendwie gehen? Dann könnte ich mir die Array-Verwaltung sparen.
Dank + Gruß, Uwe