AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Standardpfad Variable ?

Ein Thema von Smokey · begonnen am 10. Nov 2003 · letzter Beitrag vom 10. Nov 2003
Antwort Antwort
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#1

Standardpfad Variable ?

  Alt 10. Nov 2003, 14:27
Hu, bin neu hier und hoffe ich hab das richtige forum erwischt.

Ich habe folgendes Problem :

Ich habe auf meiner Form Pictureboxen (TPicture), in die ich, aus immer dem selben Ordner, Bilder lade mit:

image_4.Picture.LoadFromFile('pic/' + edit_image4.Text); der Ordner "Pic" ist also ein Unterordner in meinem Programmfolder.

Problem ist nun, wenn ich über einen Öffnendialog eine Datei aus einem beliebigen anderen Ordner auswähle, funktioniert der obenstehende Aufruf nicht mehr, weil der Pfad der ausgewählten Datei als neuer Standardpfad genommen wird.

Meine Frage ist nun : in welcher Variable steht in Delphi der aktuelle Ordner ?

P.S: ich weiss, dass ich den Code in sofern ändern kann, dass ich über eine Variable mit ExtractFilePath(ParamStr(0)) den Ordner festlegen kann. Es geht mir aber interessehalber darum zu erfahren in welcher Variable der aktuelle Standardpfad in Delphi abgelegt wird
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
rebugger

Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
 
Delphi 7 Professional
 
#2

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 14:51
Was ist bei dir der "StandardPfad" ???
ExtractFilePath(ParamStr(0)) <= gibt dir das Verzeichnis zurück, in dem dein Programm liegt !
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 14:58
Hallo Smokey,

Willkommen bei Delphi Praxis! Wenn ich Dich richtig verstehe, interessiert Dich das Arbeitsverzeichnis und die Dinge "'drum herum". Nutze die Suche des Forums und probiere mal [df]Arbeitsverzeichnis[/df].

Zitat von rebugger:
ExtractFilePath(ParamStr(0)) <= gibt dir das Verzeichnis zurück, in dem dein Programm liegt !
Das stimmt nicht ganz: Es wird das Arbeitsverzeichnis zurückgegeben. Wann immer Du aus der Shell ein Programm "von einem anderen Ort aus" ausführst, verweist dieses Konstrukt nicht länger auf der Binary, das ausgeführt wird.
gruß, choose
  Mit Zitat antworten Zitat
XeRo

Registriert seit: 23. Okt 2003
Ort: Warth
461 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 15:12
Zitat von rebugger:
ExtractFilePath(ParamStr(0)) <= gibt dir das Verzeichnis zurück, in dem dein Programm liegt !
Aber auch:
image_4.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'pic/' + edit_image4.Text);
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 15:21
Zitat von XeRo:
Aber auch:
image_4.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'pic/' + edit_image4.Text);
Stimmt
Delphi-Quellcode:
function TApplication.GetExeName: string;
begin
  Result := ParamStr(0);
end;
gruß, choose
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 15:30
Zitat von choose:
Zitat von rebugger:
ExtractFilePath(ParamStr(0)) <= gibt dir das Verzeichnis zurück, in dem dein Programm liegt !
Das stimmt nicht ganz: Es wird das Arbeitsverzeichnis zurückgegeben.
Natürlich hat rebugger recht! Mit "ExtractFilePath(paramstr(0))" wird das Verzeichnis des Programms zurückgegeben. Egal von wo. Was du, @choose, mit "Arbeitsverzeichnis" meinst, erhält man bspw. mit
ShowMessage(GetCurrentDir); Das muss nicht zwangsläufig mit dem Ordner der Exe übereinstimmen. Und warum das so ist, hat Smokey ja selbst schon geschrieben:
Zitat:
Problem ist nun, wenn ich über einen Öffnendialog eine Datei aus einem beliebigen anderen Ordner auswähle, funktioniert der obenstehende Aufruf nicht mehr, weil der Pfad der ausgewählten Datei als neuer Standardpfad genommen wird.
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 15:40
Zitat von MathiasSimmack:
Natürlich hat rebugger recht! Mit "ExtractFilePath(paramstr(0))" wird das Verzeichnis des Programms zurückgegeben. Egal von wo.
Du hast Recht, Mathias. GetParamStr(0) wird auf GetModuleFileName gemappt und gibt folglich den "full path and filename for the executable file" zurück.

Entschuldige bitte, rebugger.
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 16:14
Jo danke schonmal!

ShowMessage(GetCurrentDir); war schonmal das, was ich haben wollte.
Kann man den Currentdir in Delphi auch irgendwie selber setzen/verändern?
Wenn nicht, auch net schlimm, hauptsache ich weiss schonmal wie ich drankomme.

Delphi ist noch etwas neu für mich
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 16:20
okidoki

Delphi-Quellcode:
SetCurrentDir(ExtractFilePath(paramstr(0)));
ChDir('..');
szDummy := GetCurrentDir;
damit sind alle meine fragen beantwortet... bin noch zu englischfixiert und auf suchwörter wie Arbeitsverzeichnis nicht gekommen
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Standardpfad Variable ?

  Alt 10. Nov 2003, 20:45
Moin Smokey,

aber denk dran:
Sich auf das Arbeitsverzeichnis zu verlassen, ist eine der "schönsten" Fehlerquellen, die man sich einhandeln kann.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.
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