Autor Beitrag
catweasel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: Do 23.12.04 17:50 
Hi,

mal ne allgemeine Frage....

Immer wenn hier im Forum, oder in online tuts, den aktuellen Anwendungspfad herausbekommen moechte, verwendet er/sie die ExtractFilePath(ParamStr(0)) Methoden.
Ich persoenlich verwende lieber:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
pfad : string;

getdir(0,pfad);


Ist ja nur ein Methodenaufruf. (Bei dem anderen Weg werden ja zwei Methoden ParamStr und Extractfilepath aufgerufen...

Ist da Geschmack das einzige Kriterium, oder gibt es gute Argumente fuer die erste Variante......
(Ich frag mich warum die getdir(); Funktion soooo unpopulaer zu sein scheint... :nixweiss: )

Danke fuer ein paar Kommentare.. :-)

Catweasel

_________________
Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 23.12.04 17:53 
Hallo!

Delphi-Hilfe:

GetDir
Returns the current directory for a specified drive.


Und das aktuelle Verzeichnis muss nicht immer das Verzeichnis sein, in dem die Anwendung liegt!

MfG
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Stefan S.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 184


D5
BeitragVerfasst: Do 23.12.04 17:53 
Ähm... Ist doch eigentlich egal, solange es funktioniert, oder? Als ich gefragt hab, wie man den Anwendungspfad herausbekommt, wurde mir "ExtractFilePath(ParamStr(0))" empfohlen. Funktioniert. Wenn deine Methode auch funktioniert, dann is ja gut! ^^ Aber ich versteh nicht, worüber hier jetzt diskutiert werden soll...

EDIT:
Zitat:
Und das aktuelle Verzeichnis muss nicht immer das Verzeichnis sein, in dem die Anwendung liegt!


Da hast du's! ^^


Zuletzt bearbeitet von Stefan S. am Do 23.12.04 17:54, insgesamt 1-mal bearbeitet
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Do 23.12.04 17:53 
Vielleicht weil GetDir schon eine sehr veraltete Funktion ist. Meines Wissens stammt sie noch aus DOS-Zeiten und funktionierte auch schon unter Turbo Pascal (bin mir aber nicht sicher...)

AXMD
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 23.12.04 18:04 
DaSteve hat folgendes geschrieben:
Ähm... Ist doch eigentlich egal, solange es funktioniert, oder?

Eine tickende Zeitbombe geht auch irgendwann mal hoch, ist nur eine Frage der Zeit.
Der Benutzer braucht nur ein anderes Arbeitsverzeichnis in der Verknüpfung angeben und das war es dann gewesen. Genauso verhält es sich, wenn er mit dem OpenDialog oder SaveDialog eine Datei öffnet und dabei das Verzeichnis wechselt, dann isat das aktuelle Verzeichnis nämlich nicht mehr das Anwendungsverzeichnis.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 23.12.04 18:09 
Als DaSteve das schrieb, hatte er mein Posting wohl noch nicht gelesen. Hier sind drei Postings in der gleichen Minute reingeschneit ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Do 23.12.04 19:00 
extractfilepath(application.exename) is auch möglich... (mein favorit)
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: Do 23.12.04 20:29 
retnyg hat folgendes geschrieben:
extractfilepath(application.exename) is auch möglich... (mein favorit)


IMHO ruft "Application.ExeName" "ParamStr(0)" auf...

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Do 23.12.04 20:36 
retnyg hat folgendes geschrieben:
extractfilepath(application.exename) is auch möglich... (mein favorit)

Ich nehme eigentlich auch immer das, ohne jemals so tiefsinnig darüber philosophiert zu haben. ParamStr(0) ist historisch zwar tiefer verwurzelt, aber im Zuge der Objektisierung hab ich mir das wohl abgewöhnt. :nixweiss:

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 23.12.04 21:37 
Bei einem Konsolenprogramm ohne die Klasse TApplication geht es aber nur mit ParamStr(0);