Hallo,
ich habe zwar Deinen Quellcode nur sehr kurz überflogen, aber mir ist gleich Deine With-Anweisung ins Auge gestochen.
Du verwendest ListView1.Items.Add somit vor allen anderen Anweisungen in Deinem With-Block (z.B.: ListView1.Items.Add.SubItems.Add ...)
Wieso erzeugst Du kein eigenes TListItem und fügst es der ListView mit AddItem hinzu? Das würde ich persönlich sehr viel übersichtlicher finden und eröffnet Dir obendrein noch die Möglichkeit verschiedene TListItem-Klassen von TListItem abzuleiten, die dann bei einem Durchlauf des ListView-Inhalts auch unterschieden werden können.
Delphi-Quellcode:
with ListView1.Items.Add do <- Könnte hier der Fehler sein?
begin
Caption := IntToStr(ListView1.Items.Count);
SubItems.Add(FileInfo.Location);
SubItems.Add(FileInfo.Name);
(...)
end;
(...)
Ein alter Code-Snippet aus einem meiner ersten Projekte:
Delphi-Quellcode:
With ListView_DBKeysValues.Items Do
begin
Add;
LIndex := Count-1;
Item[LIndex].Caption := Bezeichner;
Item[LIndex].SubItems.Add(Wert);
end;