Autor Beitrag
GuaAck
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 378
Erhaltene Danke: 32

Windows 8.1
Delphi 10.4 Comm. Edition
BeitragVerfasst: Sa 23.04.11 23:07 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Sa 23.04.11 23:58 
FileCtrl.SelectDirectory

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 24.04.11 10:30 
user profile iconGuaAck hat folgendes geschrieben Zum zitierten Posting springen:
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?

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 24.04.11 11:44 
Wenn der Name vorgegeben ist, dann braucht er doch nur den Ordner auswählen lassen.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: 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

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 24.04.11 12:14 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
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.
Einloggen, um Attachments anzusehen!
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: 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.

user profile iconGuaAck hat folgendes geschrieben Zum zitierten Posting springen:
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

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 24.04.11 13:12 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
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:
ausblenden 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);
Einloggen, um Attachments anzusehen!
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 24.04.11 13:38 
komischerweise zickt er in D7 rum!
Auszug aus der D7 Hilfe.
ausblenden 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

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  TSelectDirExtOpt = (sdNewFolder, sdShowEdit, sdShowShares, sdNewUI, sdShowFiles,
    sdValidateDir);
  TSelectDirExtOpts = set of TSelectDirExtOpt;

function SelectDirectory(const Caption: stringconst 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.

Für diesen Beitrag haben gedankt: KleinesPferd