Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TSaveDialog Pfad vor execute raus finden (https://www.delphipraxis.net/188205-tsavedialog-pfad-vor-execute-raus-finden.html)

Friday 9. Feb 2016 15:47

TSaveDialog Pfad vor execute raus finden
 
Hallo,

ich will bei einem SaveDialog erst prüfen ob bereits eine Datei mit dem Namen existiert den ich vorschlage. Wenn ja möchte ich ein "_2" bzw. "_3" etc. vorschlagen. Um das zu prüfen muss ich aber den Pfad des SaveDialog wissen. Den gebe ich nicht manuell vor, sondern wird von SaveDialog "gemerkt". Wie kann ich den Pfad also herausfinden bevor ich SaveDialog.Execute ausführe?

InitialDir ist es nicht, das wäre ja eine manuelle vorgabe. Mit FileName kommt auch nichts zurück, das bringt erst nach Execute ein Ergebnis.

HolgerX 9. Feb 2016 16:03

AW: TSaveDialog Pfad vor execute raus finden
 
Hmm..

Also zunächst weiß dein SaveDialog den FileName nicht, außer Du gibst ihn vor.
Erst nach dem Execute steht der durch den User eingegebene Name in FileName und solange Du den Dialog nicht Freest bleibt er auch dort und wird beim nächsten Aufruf angezeigt/verwendet..

Bernhard Geyer 9. Feb 2016 16:07

AW: TSaveDialog Pfad vor execute raus finden
 
Hier dürfte ohne Vorgabe der Aktuelle Anwendungspfad verwendet werden.
Dies kann man mit GetCurrentDirectory abfragen

nahpets 9. Feb 2016 16:56

AW: TSaveDialog Pfad vor execute raus finden
 
Soweit ich das mitbekommen habe, nutzt TSaveDialog den Dialog aus Comdlg32.dll und diese speichert die "Vorgaben" in der Registry unter

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\ComDlg32\OpenSaveMRU
(unter XP, neuer Windows keine Ahnung)

Hier müsste man eigentlich den Pfad finden, in dem der Dialog geöffnet wird, wenn man keine programmatischen Vorgaben macht.

Sprich: der Dialog geht immer in dem Verzeichnis auf, in dem man ihn zuletzt verlassen hat.
Die Information bleibt auch über das Programmende hinaus bestehen und steht damit beim nächsten Programmstart wieder zur Verfügung und dementsprechend öffnet sich der Dialog in dem hier vermerkten Verzeichnis.

Mehr Infos zum Themas suchen: OpenSaveMRU

himitsu 9. Feb 2016 21:18

AW: TSaveDialog Pfad vor execute raus finden
 
Zitat:

wenn man keine programmtischen Vorgaben macht.
Selbst den InitialDir ignoriert Windows inzwischen einfach, wenn der Dialog schon irgendwann (auch in früheren Programminstanzen) schonmal offen war. :wall:

Und das Schöne, wenn der Dialog einen "ungültigen" Start-Pfad hat, dann geht der ganz einfach nicht auf.


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