@marabu: ja das ist ja das Problem. Wenn man das macht, treten merkwürdige Effekte auf. Neue Daten werden dann in die falschen Spalten eingetragen.
Die einzige Möglichkeit das "sauber" zu machen, ist die Items zu clearen, die Spalten zu löschen und dann alles neu einzutragen. So machts auch MS, wie ich rausgefunden hab (Taskmanager). Ist auch nicht weiter schwer, allerdings wollte ich daraus eine neue ListView-Komponente machen, damit man nicht bei jeder ListView den Zusatz-Code (und das ist schon ne Menge) hinzufügen muss.
Neue Komponente TListViewHide....von TListView abgeleitet....noch nie gemacht, hab auch keine Ahnung wie.
Deswegen waren meine Versuche in den letzten Stunden auch etwas vergeblich. Ich will dem TListColumn (meine Ableitung: "TListColumnHide") eine neue Property namens "Visible" geben. Dazu muss ja aber mein TListViewHide auch die abgeleiteten Columns benutzen (auch abgeleitet zu: "TListColumn
sHide", welche dann die TListColumnHide's benutzen soll), aber ich scheitere immer an den Zugriffsbeschränkungen, z.B.:
In ComCtrls steht ja:
Delphi-Quellcode:
constructor TCustomListView.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{...}
FListColumns := TListColumns.Create(Self);
{...}
end;
Das müsste ich ersetzen mit FListColumns := TListColumns
Hide.Create(Self);
Was natürlich in der TListViewHide.Create nicht funktioniert, da FListColumns ja private ist.
Ich weiß wirklich nicht, wie ich da rangehen soll..
Kann mich jemand in die richtige Richtung schieben? Oder treten?