00 Stimmen

Delphi/Lazarus: Unterschied zwischen ParamStr(0) und Application.ExeName

Frage von Compi | 05.02.2016 um 20:18

Ich habe hier kürzlich eine Frage gestellt, wie man den Programmordner oder Pfad der eigenen Anwendung beziehungsweise den Namen oder die EXE-Datei der eigenen Anwendung ermitteln kann.

Beides konnte man sowohl mit Application.ExeName als auch mit Paramstr(0) lösen.

So weit ich es verstanden habe, sind also ParamStr(0) und Application.ExeName identisch. Wo ist dann aber der Unterschied? Und wieso braucht man zwei solcher Funktionen, wenn sie gleich sind?

Und welche der beiden Funktionen sollte man am besten verwenden? Gibt es Vorteile oder Nachteile?

AntwortenPositivNegativ
Avatar
0Beste Antwort0 Stimmen

Beide Funktionen sind tatsächlich identisch. Application.ExeName ruft sogar intern ParamStr(0) auf (zumindest bei Windows und Linux Programmen, Lazarus unter Darwin macht etwas mehr).

Für Application.ExeName musst du die Unit Forms hinzufügen, für ParamStr(0) nur die System-Unit. Solltest du also ein Programm ohne Form verwenden, solltest du lieber ParamStr(0) verwenden anstatt nur dafür Forms einzubinden.

Wenn du Forms eh eingebunden hast, ist es für Windows oder Linux prinzipiell egal. Jedoch sparst du dir auch in diesem Fall natürlich einen Funktionsaufruf, wenn du ParamStr(0) nimmst. Unter Mac OS X würde ich dann eher zu Application.ExeName tendieren, wenn Du den zusätzlichen Code brauchst.

Ich würde also im Zweifel ParamStr(0) empfehlen.
05.02.2016 um 21:38

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.