Ich hätte da noch einen Vorschlag für das Design deiner Funktion:
Das macht man so nicht:
Delphi-Quellcode:
function TuWas1 : TStrings;
begin
end;
Besser:
Delphi-Quellcode:
procedure TuWas2( StrLst : TStrings );
begin
end;
Grund:
Hier kann es knallen ... und könnte nur mit einem try...except abgefangen werden
Delphi-Quellcode:
procedure TestVonTuWas1;
var
sl : TStrings;
begin
sl := TuWas;
// sl kann jetzt initialisiert sein, muss aber nicht
sl.Free;
// <- hier kann es zu einer AV kommen
end;
Hier habe ich das Erzeugen und Zerstören selber in der Hand
Delphi-Quellcode:
procedure TestVonTuWas2;
var
sl : TStrings;
begin
sl := TStringList.Create;
try
TuWas2( sl );
finally
sl.Free;
end;
end;
Zu den IDs und der Stringlist ... das geht so naja
Der richtige Weg führt über entsprechende Daten-Klassen die in einer ObjectList gespeichert werden.
Den ListView-Inhalt lässt man einfach virtuell von der ObjectList füllen.
Stichworte dazu
TListView.OwnerData TListView.OnData
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)