Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Verzeichnisse (https://www.delphipraxis.net/216794-verzeichnisse.html)

oldmann 3. Mär 2025 17:17

Verzeichnisse
 
Hallo,
in meinem Verzeichnis, in dem auch die Exe-Datei liegt, gibt es noch mehrere Verzeichisse.
Unter anderem:
Ausgabe und
Rückgabe
Der Anwender kann Dateien in diesen Verzeichnissen speichern.
Ich möchte erreichen das der Anwender nicht selbst das richtige Verzeichnis öffnen muss, sondern das richrige Verzeichnis immer schon geöffnet ist wenn die Datei gespeichert werden soll.
Mit welchen Delphi Befehlen kann ich das richtige Verzeichnis schon vorher öffnen ?????
Gruß Oldmann

shebang 3. Mär 2025 17:25

AW: Verzeichnisse
 
Den kannst du im TFileOpenDialog mit der Eigenschaft DefaultFolder setzen:
Vcl.Dialogs.TCustomFileDialog.DefaultFolder

Delphi.Narium 3. Mär 2025 17:28

AW: Verzeichnisse
 
Wie öffnest Du denn das Verzeichnis? Explorer und Shellexecute. Oder im Dateidialog des Programmes?

Der TSaveDialog hat ein Attribut InitialDir, das ist das Verzeichnis, in dem der Dialog geöffnet werden soll, vorgibt.

Sowas in der Art?
Delphi-Quellcode:
  SaveDialog1.InitialDir := ExtractFilePath(Application.ExeName) + 'Ausgabe\';

oder
Delphi-Quellcode:
  SaveDialog1.InitialDir := '.\Ausgabe\';

himitsu 3. Mär 2025 17:52

AW: Verzeichnisse
 
Vor allem, da die Open-/SaveDialoge gern das Arbeitsverzeichnis ändern, sind relative Pfadangaben zu vermeiden.

Hmmm, beim Explorer kann man ein RootVerzeichnis angeben,
und dann stehen nur dieses Verzeichnis und Unterverzeichnisse zur Auswahl.
Ich hätte gedacht, dass man sowas auch beim Open-/SaveDialog machen kann, aber irgendwie finde ich nichts. :gruebel:



PS: InitialDir ... das kann vom System irgnoriert, wenn der Dialog schonmal geöffnet war. (letzte Auswahl)
Bei TFileSaveDialog/TFileOpenDialog kann man eine GUID angeben, welche man im Programm auch für ähnliche Dialoge (jeweils für gleiche, bzw. unterschiedliche Pfade) angeben sollte.

Man kann aber FileName vorher festlegen, inkl. Pfad.

Delphi.Narium 3. Mär 2025 18:04

AW: Verzeichnisse
 
Nagut, bei meinen Open- und Save-Dialogen [die aus der JVCL) setze ich immer den entsprechenden Schalter, dass sie das Verzeichnis nicht wechseln sollen. Von daher klappts immer problemlos mit den realtiven Pfaden.

Und wenn man InitialDir immer vor dem Execute setzt, dann schießt auch kein Windows dazwischen.

Und ja: Gibt man die zu speichernde Datei mit dem vollständigen Pfad an, dann öffnet sich der Dialog an der richtigen Stelle und nicht Irgendwo im Nirgendwo.

jaenicke 3. Mär 2025 20:17

AW: Verzeichnisse
 
Zitat:

Zitat von himitsu (Beitrag 1546758)
Hmmm, beim Explorer kann man ein RootVerzeichnis angeben,
und dann stehen nur dieses Verzeichnis und Unterverzeichnisse zur Auswahl.
Ich hätte gedacht, dass man sowas auch beim Open-/SaveDialog machen kann, aber irgendwie finde ich nichts. :gruebel:

Das geht nur bei dem Dialog zur Verzeichnisauswahl, aber nicht bei den Dateidialogen.

Man kann aber IFileDialog und TFileDialogEvents verwenden, um den Wechsel in andere Ordner zu verhindern.

oldmann 4. Mär 2025 09:46

AW: Verzeichnisse
 
Hallo zusammen,
erst mal danke für Eure Hilfen.
Ich möchte mal den Ansatz von "shebang" aufzeigen.
Vcl.Dialogs.TCustomFileDialog.DefaultFolder
Hier sagt das Programm:
Auf die Eigenschaft von DefaultFolder kann hier nicht zugegriffen werden.
Was muss ich mit DefaultFolder machen damit es akzeptiert wird.
Gruss Oldmann

shebang 4. Mär 2025 10:02

AW: Verzeichnisse
 
Du ziehst dir eine TFileOpenDialog-Komponente auf deine Form und setzt im Code dann:
Delphi-Quellcode:
FileOpenDialog.DefaultFolder := 'C:\dein\pfad\Ausgabe';
FileOpenDialog.Execute;

jaenicke 4. Mär 2025 10:28

AW: Verzeichnisse
 
DefaultFolder heißt es bei TFileOpenDialog und TFileSaveDialog, InitialDir bei TOpenDialog und TSaveDialog. Das sorgt dafür, dass der Ordner voreingestellt ist.

Wenn du möchtest, dass man auch nur in diesem Ordner (und ggf. dessen Unterordnern) bleiben darf, habe ich ja schon geschrieben, wie das geht.

peterbelow 4. Mär 2025 11:41

AW: Verzeichnisse
 
Zitat:

Zitat von oldmann (Beitrag 1546755)
Hallo,
in meinem Verzeichnis, in dem auch die Exe-Datei liegt, gibt es noch mehrere Verzeichisse.
Unter anderem:
Ausgabe und
Rückgabe
Der Anwender kann Dateien in diesen Verzeichnissen speichern.
Ich möchte erreichen das der Anwender nicht selbst das richtige Verzeichnis öffnen muss, sondern das richrige Verzeichnis immer schon geöffnet ist wenn die Datei gespeichert werden soll.
Mit welchen Delphi Befehlen kann ich das richtige Verzeichnis schon vorher öffnen ?????
Gruß Oldmann

Die eigentliche Frage wurde ja schon in anderen Posts beanwortet. Ich möchte nur darauf hinweisen, dass es keine gute Idee ist, eine Exe in einem Ordner abzulegen, auf den der "normale" Benutzer Schreibrechte hat; das erlaubt Malware, das Programm zu infizieren. Man sollte lieber das Programm in einem Ordner installieren, auf den nur ein Admin Schreibzugriff hat, und die Daten dann in einem Unterordner für das Programm in TPath.GetDocumentsPath oder System.IOUtils.TPath.GetHomePath ablegen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz