Registriert seit: 9. Apr 2006
1.682 Beiträge
Delphi 5 Professional
|
Design mit (fast) gleichen Tabsheets vereinfachen
25. Okt 2023, 17:01
Hallo ihr.
Ich hoffe, mir kann jemand bei diesem Design-Problem helfen.
Erstmal zu den Fakten.
Gegeben ist ein PageControl, auf dem sich aktuell 7 TabSheets befinden. Jedes der TabSheets sieht ungefähr so aus wie im angehangenen Bild. Die Komponenten auf diesen TabSheets - Panel, GroupBoxen und Splitter - sind identisch. Der einzige Unterschied zwischen den TabSheets sind die in den GroupBoxen plazierten ListViews. Einige haben nur eine Spalte, andere haben zwei oder vier. Die Spaltenbreiten und deren Titel sind ebenfalls unterschiedlich. Außerdem gibt es bei den ListViews verschiedene Alignments aufgrund der Splitter: die links positionierten ListViews haben alLeft, die beiden rechts positionierten haben alClient, um den Rest des Platzes auszufüllen.
Nun zur Problemstellung.
Ein weiteres TabSheet hinzuzufügen, ist ziemlich aufwendig, weil alle Komponenten kopiert werden müssen. Das muss zwar nicht einzeln erfolgen, weil direkt auf dem TabSheet zwei Panel und ein Splitter liegen und somit nur diese "Container" kopiert werden müssen. Aber benannt werden müssen die Kopien trotzdem noch.
Nun dachte ich, man könnte das mit Frames vereinfachen. Leider funktioniert das nicht so, wie ich mir das vorstelle. Ich kann die bei meinen Tests mit Frames aufgetretenen Probleme gern genauer ausführen, aber da der Text eh schon recht lang ist, belasse ich es vorerst dabei. Aber ich weiß noch nicht so recht zu beurteilen, ob Frames überhaupt der richtige oder geeignete Weg sind.
Wie würdet ihr das angehen? ListViews, bzw. generell Komponenten, zur Laufzeit erzeugen will ich wegen des Aufwands aufgrund der unterschiedlichen Eigenschaften (Anzahl+Breite+Titel der Spalten, Alignment etc.) vermeiden.
Grüße
Dalai
|