TListView mit mehreren Spaltentiteln ?
-
Hallo,
ich möchte gern in einer größeren ListView hin und wieder zwei Spalten durch einen "Übertitel" zusammenfassen, gibt es da 'ne elegante Möglichkeit ?
Oder muss ich eine Reihe Panels darüberlegen und deren Position und Breite bei jeder Größenänderung anpassen ?
-
Hallo
TListView hat für so einen Übeetitel keine Funktion. Deine Idee mit den Panels ist eine vernünftige Lösung.
bis bald
akari
-
Hallo akari,
Danke Dir,
Hast Du zufällig gerade das Ereignis aufm Schirm, das mir jedwede Größenänderung der TListView anzeigt, sodass ich das Neuzeichnen der Panels daran hängen kann ??
-
Hallo
Einen direkten Event gibt es nicht. Du kannst aber die OnDraw-Events dafür einsetzen, indem du bei jedem Draw vergleichst ob die aktuelle Spalte immer noch gleichbreit wie beim letzten Event war (Member-Array des Forms zum Zwischenspeichern der alten Spaltenbreiten). Wenn die aktuelle Breite anders ist als die alte, ist die Größe verändert worden.
Je nachdem ob dein ListView dem User erlaubt die Spalten zu vertauschen must du eventuell auch auf OnColumnDragged reagieren.
bis bald
akari
-
NeNe, Spalten vertauschen wird nicht erlaubt.
aber-- welches dieser vielen DrawEvents nehme ich denn nun??
Ich will ja nicht bei jedem SubItem zeichnen die Überschriften anpassen.
-
Hallo
Da du ja das generische Zeichenverhalten nicht verändern willst, sollte OnCustomDrawItem der richtige Event sein.
Du must eben bei jedem Event erstmal prüfen, ob überhaupt die Breite geändert wurde. Deshalb mein schon genannter Vergleich mit den alten, manuell zwischengespeicherten Breiten. Damit verhinderst du unnötige weitere Operationen.bis bald
akari