AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TSaveDialog Pfad vor execute raus finden
Thema durchsuchen
Ansicht
Themen-Optionen

TSaveDialog Pfad vor execute raus finden

Ein Thema von Friday · begonnen am 9. Feb 2016 · letzter Beitrag vom 9. Feb 2016
Antwort Antwort
Friday

Registriert seit: 6. Mai 2008
104 Beiträge
 
Delphi 11 Alexandria
 
#1

TSaveDialog Pfad vor execute raus finden

  Alt 9. Feb 2016, 16:47
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.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#2

AW: TSaveDialog Pfad vor execute raus finden

  Alt 9. Feb 2016, 17:03
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..
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TSaveDialog Pfad vor execute raus finden

  Alt 9. Feb 2016, 17:07
Hier dürfte ohne Vorgabe der Aktuelle Anwendungspfad verwendet werden.
Dies kann man mit GetCurrentDirectory abfragen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: TSaveDialog Pfad vor execute raus finden

  Alt 9. Feb 2016, 17:56
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

Geändert von nahpets (10. Feb 2016 um 14:21 Uhr) Grund: Schreibfehler :-(
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: TSaveDialog Pfad vor execute raus finden

  Alt 9. Feb 2016, 22:18
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.

Und das Schöne, wenn der Dialog einen "ungültigen" Start-Pfad hat, dann geht der ganz einfach nicht auf.
$2B or not $2B
  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 22:30 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