Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Initial Dir bei mehreren Dialogen (https://www.delphipraxis.net/108229-initial-dir-bei-mehreren-dialogen.html)

DeddyH 9. Feb 2008 11:03

Re: Initial Dir bei mehreren Dialogen
 
1) Das scheint ein Verhalten von Windows zu sein, kann ich aber nicht belegen
2) Zur Laufzeit setzen, mehr fällt mir nicht ein

gnui 9. Feb 2008 12:01

Re: Initial Dir bei mehreren Dialogen
 
also damit klappt es immernoch nicht. ich habe 2 button für 2 dialoge und immernoch das problem von oben.

gnui 9. Feb 2008 12:05

Re: Initial Dir bei mehreren Dialogen
 
ah alles klar klappt doch, das + '\bilder' war falsch da der \ so doppelt war, also nur + 'bilder'

vielen dank :-D

DeddyH 9. Feb 2008 12:31

Re: Initial Dir bei mehreren Dialogen
 
Tipp für' s nächste Mal:
Delphi-Quellcode:
openpicturedialog1.InitialDir := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + 'bilder';
So brauchst Du Dir keine Gedanken machen, ob da noch ein Backslash dranhängt, denn der ist immer da ;)

himitsu 9. Feb 2008 16:47

Re: Initial Dir bei mehreren Dialogen
 
Das ist ein normales Verhalten von Windows:

siehe lpstrInitialDir
http://msdn2.microsoft.com/en-us/library/ms646839(VS.85).aspx

Wenn nichts angegeben ist, dann wird das aktuelle Verzeichis verwendet.

jetzt das Problem/die Ursache:
allerdings hat Windows da ein globales aktuelles Verzeichnis, welches für alle Programme gilt.
tja und nun nimmt der Dialog nicht zuerst das aktuelle verzeichnis des Programmes, sondern das globale.

und hier noch ein Problem:
gesetzt wird allerdings auch das lokale aktuelle Verzeichnis:
Delphi-Quellcode:
Memo1.Lines.Add(GetCurrentDir);
OpenDialog1.Execute;
Memo1.Lines.Add(GetCurrentDir);
also für alle die gern mit relativen Pfaden (relativ zum aktuellem Verzeichnis) arbeiten ... hier gibt's nette Nebenwirkungen :zwinker:


Lösung(en):
- .InitialDir setzen
- und/oder ein Verzeichnis per .FileName mitgeben

- und beim verwenden von relativen Pfaden aufpassen


@DaddyH:
Delphi-Referenz durchsuchenExtractFilePath enthält immer den Backslash ;) (wenn mindestens einer im String ist ... ansonsten ist der ResultString eh leer)
Delphi-Referenz durchsuchenExtractFileDir enthält keinen

DeddyH 9. Feb 2008 18:01

Re: Initial Dir bei mehreren Dialogen
 
Zitat:

Zitat von himitsu
ExtractFilePath enthält immer den Backslash Wink (wenn mindestens einer im String ist ... ansonsten ist der ResultString eh leer)
ExtractFileDir enthält keinen

Und damit man sich das nicht merken muss, habe ich den Tipp gegeben ;)

Garfield 17. Feb 2008 16:57

Re: Initial Dir bei mehreren Dialogen
 
Zitat:

Zitat von DeddyH
1) Das scheint ein Verhalten von Windows zu sein, kann ich aber nicht belegen

Unter XP: HKCU\Software\Microsoft\Windows\CurrentVersion\Exp lorer\ComDlg32\OpenSaveMRU

Im Unterverzeichnis \* stehen alle Dateien und dann gibt es weitere Unterverzeichnisse für einzelne Dateierweiterungen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 Uhr.
Seite 2 von 2     12   

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