@Gremlin: Sagt mir, wenn ich mich irre, aber das dürfte auch nicht funktionieren. Das Problem ist ja, dass man (ob nun direkt einfügen, oder mit OnData) nach dem Löschen von Spalten nicht mehr auf die ID oder Index oder was auch immer der Spalte zugreifen kann, weil sie einfach nicht mehr der aktuellen Anordnung entspricht. Man kann sich das so vorstellen... Ich habe die Spalten "Name", "Nachname" und "Alter", füge mit Caption und SubItems die Daten "Max", "Muster" und "18" hinzu. Wenn ich dann mit .Free eine Spalte lösche und vielleicht noch die Spaltenanordnung, dann mache ich eine neue Zeile Caption="Max2", dann ändere ich die Spaltenanordnung, mache wieder eine neue Zeile Caption="Max3". Allerdings stehen nun Max2 und Max3 nicht in der selben Spalte, was sie aber tun, wenn man keine Spalten gelöscht hat. Ich behaupte jetzt einfach mal, dass es keinen anderen Weg gibt, als die ListView neu mit Daten (Spalten und Items) zu befüllen, damit alles stimmt.
Zitat von
Luckie:
Grundidee: Trenne die Daten von der Darstellung. Halte die Daten in einer entsprechenden Datenstruktur vor. Wird eine Spalte ausgeblendet, fülle den Listview neu aus der Datenstruktur, ebendso, wenn die Spalte wieder eingeblendet wird.
Genau das will ich machen. Die Daten sind sind schon in einer eigenen Datenstruktur. Ich weiß wie ichs machen müsste, aber ich will es direkt in die TListView kapseln als Komponente eben, die auch andere leicht verwenden können.