Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Programmpfad ermitteln (https://www.delphipraxis.net/56921-programmpfad-ermitteln.html)

robinWie 13. Nov 2005 13:48


Programmpfad ermitteln
 
Hallo,

wenn ich in einer Anwendung ein Shelltreeview, FileListbox usw. habe und ich eine Datei aus dem Ordner laden will in der sich das Programm befindet, erscheint immer die Meldung "Datei nicht gefunden". Also wird der Pfad vom z.B. Shelltreeview verwendet.

Meine Frage: Gibt es eine Funktion oder eine Procedure die den Pfad ausgibt wo sich das Programm befindet?

Danke im Voraus
Robin :cheers:

ichbins 13. Nov 2005 13:49

Re: Programmpfad ermitteln
 
Delphi-Quellcode:
extractfilepath(paramstr(0));
oder

Delphi-Quellcode:
extractfilepath(application.exename);

Dj_Base 13. Nov 2005 14:53

Re: Programmpfad ermitteln
 
Hi!

Oder du rufst im OnCreate deiner MainForm einfach:
Delphi-Quellcode:
var Dir: string;
begin
  Dir := GetCurrentDir;
end;
auf.

Das funktioniert auch! :-D

Also dann, Gruß & Tschüss...
Dj_Base

EDIT: von Dj_Base: "immer" entfernt ;)

Flocke 13. Nov 2005 15:02

Re: Programmpfad ermitteln
 
Zitat:

Zitat von Dj_Base
Das funktioniert auch immer! :-D

Diese Aussage ist falsch!

Wenn ich eine Startmenü-Verknüpfung auf dein Programm anlege und dort ein anderes Arbeitsverzeichnis eintrage, dann bekommst du das (und nicht das Programmverzeichnis).

Helmi 13. Nov 2005 15:31

Re: Programmpfad ermitteln
 
Hallo,

wenn ich den Pfad meiner Anwendung brauche mach ich das im OnCreate so:

Delphi-Quellcode:
  //Ordner auslesen
  drive := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));

  //Variablen beschreiben
  drive_FileUpdateIni  := drive + 'FileUpdate.ini';
  drive_FileListXML    := drive + 'FileList.xml';
die Variable "drive" beinhaltet also den Pfad der Anwendung mit einem Backslash am Ende.

Neutral General 13. Nov 2005 15:37

Re: Programmpfad ermitteln
 
Ich glaube die Methode ist ehh etwas übertrieben -.-

Helmi 13. Nov 2005 15:41

Re: Programmpfad ermitteln
 
inwiefern übertrieben?

Neutral General 13. Nov 2005 15:47

Re: Programmpfad ermitteln
 
Warum nicht einfach nur

Delphi-Quellcode:
ExtractFilePath(Application.ExeName);
Ich weiß nicht wofür der andere Kram da noch hinsollte.. Vielleicht auch weil ich keine Ahnung hab was der Rest bewirkt aber mit dem Code oben hat man den Pfad doch...

himitsu 13. Nov 2005 15:50

Re: Programmpfad ermitteln
 
Zitat:

Zitat von Helmi
Delphi-Quellcode:
  //Ordner auslesen
  drive := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));

  //Variablen beschreiben
  drive_FileUpdateIni  := drive + 'FileUpdate.ini';
  drive_FileListXML    := drive + 'FileList.xml';


IncludeTrailingPathDelimiter ist unnötig, da ExtractFilePath direkt auf einen Pfad angewendet wird, der auf jeden Fall alle nötigen Backslashs enthält ;)

Und das mit dem drive, welches gleich beim Programmstart überall mit ingebaut wird ... wozu willst du denn unbendingt Arbeitsspeicher verschwenden? (OK, wann man das für nur eine einzige Variable/Datei macht ist es besser so, aber sonst ...)

[add]
Ja ExtractFilePath(ParamStr(0)) ist ausreichend ^^

Dj_Base 13. Nov 2005 15:52

Re: Programmpfad ermitteln
 
Zitat:

Zitat von Flocke
Diese Aussage ist falsch!

Wenn ich eine Startmenü-Verknüpfung auf dein Programm anlege und dort ein anderes Arbeitsverzeichnis eintrage, dann bekommst du das (und nicht das Programmverzeichnis).

Jawohl!

Da hast du Recht!
Deswegen, ist das "immer" jetzt auch weg...
:stupid:

mfg,
Dj_Base


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:39 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz