Frühlingsrolle hat folgendes geschrieben : |
| Sobald neue Dateien aufgenommen werden, lassen sich die älteren Einträge nicht mehr ausführen. |
Das ist kein Wunder, schließlich funktioniert es beim aktuellen Item nur rein zufällig.
Der OpenDialog setzt das Arbeitsverzeichnis auf das dort ausgewählte. Da dort auch die ausgewählte Datei liegt, klappt es. Denn du ignorierst den Dateipfad ja einfach und gibst nur einen Dateinamen an ShellExecute. Dass es dort dann funktioniert, ist auch insofern Glück, als die Standardaktion zufällig (ok, steht in der Doku, aber das kann sich auch ändern) open ist. Warum gibst du das alles nicht an?
Jedenfalls hast du das typische Problem, dass du die Daten versuchst in einer visuellen Komponente zu speichern...
Speichere die Datei (sprich den kompletten Pfad z.B.) im Hintergrund und pack eine Referenz zu den Items in die ListView, dafür gab es glaube ich Item.Data oder sowas. Dann kannst du darüber wieder auf die dahinterliegenden Daten zugreifen.
Mit einer TStringList sollte es notfalls auch gehen, wie hast du das denn versucht?