Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Nur einen Ordner auswählen (https://www.delphipraxis.net/12673-nur-einen-ordner-auswaehlen.html)

Die Muhkuh 2. Dez 2003 10:11


Nur einen Ordner auswählen
 
Moin.


Ich mach ne art "Installationsprogramm". Man muss einen Pfad eingeben wo man speichern will (is ja eigentlich klar :zwinker:). Aber per Savedialog kann man nicht den Order auswählen in dem man speichern will sondern nur eine Datei. D.H. wie kann ich den über so ein dialog (oder sonst wie) nur den Ordner auswählen?

samson 2. Dez 2003 10:17

Re: Nur einen Ordner auswählen
 
Hallo,

wenn Du den Save-Dialog benutzt, musst Du eben eine Datei angeben.

Ich schlage vor, das Du den Open-Dialog verwendest, in dem der Ordner seinen Zielordner auswählen kann. Wenn der Dialog geschlossen wird, weisst Du doch wo der Benutzer das Programm hininstalliert haben möchte.

Gruss


Samson

Die Muhkuh 2. Dez 2003 10:25

Re: Nur einen Ordner auswählen
 
Hi Samson,


hmm, dein Vorschlag geht irgendwie net. Der Pfad soll ja danach in einem Editfeld angeben sein.

himitsu 2. Dez 2003 10:51

Re: Nur einen Ordner auswählen
 
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,

mal ein Tipp: selber machen.

Zum Beispiel:
ein leeres Formular,
eine DriveComboBox,
eine DirectoryListBox,
zwei Button's (OK, Abbrechen)
und ShowModal

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

Tom 2. Dez 2003 10:57

Re: Nur einen Ordner auswählen
 
Sucht nach SelectDirectory.

samson 2. Dez 2003 10:57

Re: Nur einen Ordner auswählen
 
:wall: :wall: :wall:

Sorry.

Ich verwende selber die JediCode-Komponenten. Jedi-Dinger haben eine eigene Komponente für die Auswahl von Ordner.

Ich schlage vor, das Du Sie dir herunter läds. Guck mal von www.delphi-treff.de von dort aus kommst Du ganz gut dahin.

Jedi-Compos sollten in keiner Workbensch fehlen.

Gruss


Samson.

MathiasSimmack 2. Dez 2003 10:59

Re: Nur einen Ordner auswählen
 
Zitat:

Zitat von samson
Jedi-Compos sollten in keiner Workbensch fehlen.

Ui, in meiner fehlen sie aber auch ... :stupid:

Noch eine Möglichkeit: Hier im Forum suchenSHBrowseForFolder

Matze 2. Dez 2003 11:12

Re: Nur einen Ordner auswählen
 
ich schließe mich Tom an. Das ist das Einfachste:
Delphi-Quellcode:
uses FileCtrl;
...
procedure TForm1.Button1Click(Sender: TObject);
var Pfad: string;
begin
  SelectDirectory('Ordner auswählen','',Pfad);
end;
:xmas:

Tom 2. Dez 2003 11:14

Re: Nur einen Ordner auswählen
 
Zitat:

Zitat von Matze
ich schließe mich Tom an.

Ich nutze selber allerdings ein modifizierten Dialog aus der JVCL (Jedi). Ich habe das nur als Suchbegriff gedacht, mit dem man über alles andere stolpert.

himitsu 2. Dez 2003 11:21

Re: Nur einen Ordner auswählen
 
SelectDirectory funktioniert ja bestens.

Da ich aber noch mehr in meinen Form's zur Verzeichnissauswahl habe, kommt diese leider nicht für mich in betracht.

Kennt also jemand eine Komponente, wie die in SelectDirectory, zur Verzeichnissauswahl ?
Damit ich mal diese alten Dinger (DriveComboBox & DirectoryListBox) entsorgen kann.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

Matze 2. Dez 2003 11:27

Re: Nur einen Ordner auswählen
 
Das sagte doch Tom schon. ;)

himitsu 2. Dez 2003 11:35

Re: Nur einen Ordner auswählen
 
Da SelectDirectory (FileCtrl) schon bei Delphi dabei sind, "denke" ich es gibt diese Komponente eventuell auch einzeln - ohne das Formular drumherum.

Also nicht über die JEDI-VCL oder so.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

samson 2. Dez 2003 11:44

Re: Nur einen Ordner auswählen
 
Hallo Himitsu,

Vielleicht hast Du recht, vielleicht aber auch nicht. Bis jetzt kannte ich noch fast keinen Fall, den ich nicht ohne andere Komponenten lösen konnte.

Aber was spricht gegen die Jedi??? Jedi sind kostenlos und haben viele schöne Komponenten dabei. Ausserdem bevor ich das Rad neu entwickle, benutze ich diese lieber.

Klar, unter anderem Aspekt könnte man sagen, das wenn man es selber macht lernt man das Interne. Richtig. Ich persönlich bin schon fast aus diesem Stadium und benutze nun auch das einfache.

Gruss


Samson

himitsu 2. Dez 2003 11:53

Re: Nur einen Ordner auswählen
 
So, ich nehme jetzt die FileCtrl auseinander.

Hab zwei schon Version entdeckt:
Delphi-Quellcode:
SelectDirectory(Pfad, [], 0);
SelectDirectory('Ordner auswählen', '', Pfad);

{Definition}
function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;
function SelectDirectory(const Caption: string; const Root: WideString; var Directory: string): Boolean; overload;
Die erste Version verwendet die Folgenden Komponenten:
Delphi-Quellcode:
DirList:     TDirectoryListBox;
DirEdit:     TEdit;
DriveList:   TDriveComboBox;
DirLabel:    TPathLabel;
OKButton:    TButton;
CancelButton: TButton;
HelpButton:  TButton;
NetButton:   TButton;
FileList:    TFileListBox;
Die Zweite zerlege ich noch.

Tom 2. Dez 2003 12:06

Re: Nur einen Ordner auswählen
 
Wenn Du Dir selber etwas basteln möchtest, was vernünftig aussieht:

- ShellShock-Komponenten
- TShell*-Komponenten aus der Palette Beispiele (ab D6)

sollten Dir helfen.

himitsu 2. Dez 2003 12:16

Re: Nur einen Ordner auswählen
 
:x Mist,

bin am Ende meiner Suche:

Delphi-Quellcode:
function SHBrowseForFolder; external 'shell32.dll' name 'SHBrowseForFolderA';
function SHBrowseForFolderA; external 'shell32.dll' name 'SHBrowseForFolderA';
function SHBrowseForFolderW; external 'shell32.dll' name 'SHBrowseForFolderW';
Diese Komponente gibt es bestimmt irgendwo, bloß für mich ist hier Schluß.

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

MathiasSimmack 2. Dez 2003 14:07

Re: Nur einen Ordner auswählen
 
Was suchst du? SHBrowseForFolder ist ein Dialog vom System (= von Windows). Wozu brauchst du da eine Form oder Komponente? Ruf das Ding einfach auf, und fertig. Je nach Windows-Version kannst du ein Eingabefeld usw. einblenden. Größer wird dein Programm dadurch nicht (wirklich). Schau mal im PSDK nach.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr.

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