Allerdings klappt das nur wenn das Programm läuft - wenn ich eine Datei auf das Desktop-Icon ziehe wird zwar das Programm gestartet, aber eben nicht der Verzeichnispfad an die Listbox übergeben. Was muss ich denn machen damit das funktioniert ?
Wenn du eine oder mehrere Dateien auf das Desktop-Symbol oder direkt auf die EXE-Datei ziehst werden die Dateien als Parameter übergeben. Diese kannst du mit ParamStr auslesen.
Delphi-Quellcode:
ParamStr(0) --> ergibt immer Pfad + Name der EXE
ParamStr(1) --> ergibt den ersten Parameter
ParamStr(2) --> usw.
Wenn bereits eine Instanz deines Programms läuft wird eine neue Instanz gestartet. Wenn du die Dateien aber in der bereits gestrateten Instanz erlangen möchtest, musst du z. B. einen
Mutex definieren der die Parameter der neuen Instanz an die laufende übergibt und danach die neue Instanz schließt. Siehe
https://www.swissdelphicenter.ch/de/showcode.php?id=42 und
https://wikiwebpedia.com/mutex-object-delphi