Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Wie TOpenDialog immer im gleichen Verzeichnis öffnen (https://www.delphipraxis.net/156506-wie-topendialog-immer-im-gleichen-verzeichnis-oeffnen.html)

iphi 4. Dez 2010 15:44

Delphi-Version: 6

Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Hallo,

mein OpenDialog verhält sich nicht so wie ich will:

Ich möchte, dass der immer im gleichen Verzeichnis öffnet.
Dazu habe ich die Property InitialDir entsprechend gesetzt.
Beim ersten Programmstart funktioniert das auch. Wenn der Nutzer aber mit dem Dialog eine Datei in einem anderen Verzeichnis öffnet, so merkt sich der OpenDialog das offenbar und öffnet beim nächsten mal wieder in diesem Nutzerverzeichnis statt in dem von mir gewünschten Verzeichnis und das obwohl ich vor dem neuen Aufruf InitialDir wieder auf mein Wunschverzeichnis setze.

Wie kann ich sicherstellen, dass der OpenDialog immer im selben Verzeichnis öffnet?

Danke und Gruß,
Thomas

mkinzler 4. Dez 2010 15:45

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Das initialDir beim Programmstart/Erzeugen des Fensters setzen

iphi 4. Dez 2010 18:36

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Zitat:

Das initialDir beim Programmstart/Erzeugen des Fensters setzen
Das hilft leider auch nichts. In Windows7 überlebt das vom Nutzer gewählte Verzeichnis sogar einen Programmneustart. Wo wird das gespeichert und wie stelle ich das ab?

mkinzler 4. Dez 2010 18:38

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Wenn du es explizit beim Start Setzt, sollte das gespeicherte überschrieben werden.

iphi 4. Dez 2010 18:48

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Du meinst im OnCreate Event der Hauptform?
Das habe ich gemacht, aber das hilft nichts.
Es wird immer das beim letzten mal geöffnete Verzeichnis geöffnet.
Wird das irgendwo in der Registry abgelegt?

P.S.
Noch schlimmer: Wenn ich auf derselben Form zwei verschiedene OpenDialoge habe, kommen die beide im selben Verzeichnis, nämlich dem von letzten aufgerufenen Dialog hoch. Und das ist eine Wi7 Spezialität. Unter XP verhalten sich die beiden Dialoge immerhin unabhängig voneinander. ???

Hier wird behauptet, dass die TOpenDialog-Komponente von Delphi falsch programmiert wäre:
http://www.scalabium.com/faq/dct0156.htm
Und siehe da, mit der dort gezeigten WinAPI Lösung funktioniert alles wie es soll!

:-)

sx2008 4. Dez 2010 21:37

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Der Pfad des Property Filename hat Vorrang vor InitalDir.
Also muss man FileName = '' setzen, damit InitalDir verwendet wird.

himitsu 5. Dez 2010 00:53

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Nicht direkt.

Wenn in .FileName ein Pfad enthalten ist, dann wird dieser genutzt.
Ist .FileName leer oder enthält nur einen Dateinamen (ohne Pfadangaben), dann wird als Pfad .InitialDir verwendet.
Ist .InitialDir auch noch leer, dann wird was Anderes genutzt ... meistens werden es dann wohl die "Eigenen Dateien" sein.

PS: Enthält .FileName z.B. einen ungültigen Dateinamem/Pfad, dann öffnet sich der Dialog erst garnicht und das ohne Fehlermeldung.
(dieses liegt aber an Windows und ist zur Abwechslung mal kein Delphi-Fehler :stupid: )

skh 5. Dez 2010 09:48

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Antwort zu Himitsu...

Saarländischer Adventskranz

Luckie 5. Dez 2010 11:02

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Zitat:

Zitat von himitsu (Beitrag 1066262)
Ist .InitialDir auch noch leer, dann wird was Anderes genutzt ... meistens werden es dann wohl die "Eigenen Dateien" sein.

Ich hätte jetzt auf das Arbeitsverzeichnis getippt.

himitsu 5. Dez 2010 11:27

AW: Wie TOpenDialog immer im gleichen Verzeichnis öffnen
 
Man soll doch nicht in seinem Arbeitsverzeichnis speichern. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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