Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Dialog, um Verzeichnis zu wählen
GuaAck - Sa 23.04.11 23:07
Titel: Dialog, um Verzeichnis zu wählen
Hallo,
mein Programm soll eine Datei speichern. Der Name steht fest, aber der Benuztzer soll das Verzeichnis wählen können. Mit TOpenDialog muss man aber wohl zwingend eine Datei anwählen, oder habe ich einen Schalter übersehen?
Ich behelfe mich jetzt vorläufig so, dass man eine beliebige Datei anwählen muss, und nehme dann per extractfilepath das, was ich brauche. Ist aber keine schöne Lösung.
Grüße
Günther
bummi - Sa 23.04.11 23:58
FileCtrl.SelectDirectory
ALF - So 24.04.11 10:30
GuaAck hat folgendes geschrieben : |
mein Programm soll eine Datei speichern. Der Name steht fest, aber der Benuztzer soll das Verzeichnis wählen können. Mit TOpenDialog muss man aber wohl.... |
ähmm.. nimmt man da nicht TSaveDialog?
Delete - So 24.04.11 11:44
Wenn der Name vorgegeben ist, dann braucht er doch nur den Ordner auswählen lassen.
ALF - So 24.04.11 12:01
Jo richtig, als Standard einrichten den 'Arbeitsplatz', falls man das Lw wechseln möchte/muss. :wink:
[OT]Persöhnlich komm ich damit irgendwie nicht klar, fehlt immer was (Verzeichniss erstellen) :lol: [/OT]
Gruss Alf
jaenicke - So 24.04.11 12:14
ALF hat folgendes geschrieben : |
Jo richtig, als Standard einrichten den 'Arbeitsplatz', falls man das Lw wechseln möchte/muss. :wink: |
Wie meinst du das? :gruebel:
Im Anhang einmal ein Beispiel wie der Dialog direkt nach der Anzeige aussieht, wenn das Startverzeichnis c:\program files (x86)\cnpack ist...
Da kann man dann natürlich das Verzeichnis des eigenen Programms oder den Ordner Eigene Dateien stattdessen zuerst auswählen, je nach Anwendungszweck.
ALF - So 24.04.11 12:46
@jaenicke
So schön sieht er unter D7 WinXp nicht aus :wink:
(meinte ja nur mit 'Arbeitsplatz', so hab ich es immer bei mir eingerichtet)
und es fehlt halt neues Verzeichnis erstellen.
GuaAck hat folgendes geschrieben : |
aber der Benuztzer soll das Verzeichnis wählen können. |
Der nächste Wunsch ist, 'möchte aber noch ein Verzeichnis erstellen können' im Dialog, ist meistens so.
Gruss Alf
jaenicke - So 24.04.11 13:12
ALF hat folgendes geschrieben : |
Der nächste Wunsch ist, 'möchte aber noch ein Verzeichnis erstellen können' im Dialog, ist meistens so. |
Dann aktiviert man die Funktion eben auch noch, und? :nixweiss:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var Test: string; begin Test := 'C:\Program Files (x86)\CnPack'; if SelectDirectory('Zielverzeichnis wählen...', '', Test, [sdShowEdit, sdNewFolder, sdShowShares, sdNewUI]) then ShowMessage(Test); |
ALF - So 24.04.11 13:38
komischerweise zickt er in D7 rum!
Auszug aus der D7 Hilfe.
Quelltext
1: 2: 3: 4: 5: 6:
| function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean;
type TSelectDirOpt = (sdAllowCreate, sdPerformCreate, sdPrompt); TSelectDirOpts = set of TSelectDirOpt; |
Darum hab ich es nie verwendet! besser gesagt bin nie klar gekommen :cry:
Ist aber OT ;)
Gruss Alf
jaenicke - So 24.04.11 13:55
Naja, gut, Delphi 7 unterstützt dann die ganzen Optionen der API-Funktion noch nicht. Da bleibt dann nur die selbst zu nutzen. :lol:
// EDIT:
Aber da gibts ja auch was hier in der Library.
Und nebenbei aus XE:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| TSelectDirExtOpt = (sdNewFolder, sdShowEdit, sdShowShares, sdNewUI, sdShowFiles, sdValidateDir); TSelectDirExtOpts = set of TSelectDirExtOpt;
function SelectDirectory(const Caption: string; const Root: WideString; var Directory: string; Options: TSelectDirExtOpts = [sdNewUI]; Parent: TWinControl = nil): Boolean; overload; |
Die Optionen bieten also die Auswahl, ob ein neuer Ordner angelegt werden kann, das Editfeld zur manuellen Eingabe da ist, Netzwerkfreigaben angezeigt werden, die neue Oberfläche benutzt werden soll, auch Dateien zu sehen sein sollen und es gibt die Möglichkeit eine Eingabe im Editfeld über ein Callback zu validieren.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!