![]() |
Frage zum OpenDialog
Hallo,
ich kann ja in Delphi die OpenDialog-Komponente in mein Projekt einbauen, weiß jemand, wie ich auch einen Verzeichnisbaum-Dialog bekomme, bei dem ich nur ein Verzeichnis und keine Datei wählen kann? |
Re: Frage zum OpenDialog
Hi,
[dp]Verzeichnis auswählen[/dp] Chris |
Re: Frage zum OpenDialog
So ungefähr:
Delphi-Quellcode:
Das ist dann der normale Ordner öffnen Dialog jedoch erweitert mit "Neuer Ordner" (durch BIF_NEWDIALOGSTYLE = $0040; ) den Dialog findet man mittlerweile häufiger als den normalen Ordner Öffnen Dialog ;)
uses ActiveX;
const BIF_NEWDIALOGSTYLE = $0040; function ChooseFolder(const Title: string): string; var Path: array [0..MAX_PATH] of char; pidl: PItemIDList; bi: TBrowseInfo; begin result := ''; OleInitialize(nil); with bi do begin hwndOwner := Handle; pidlRoot := nil; pszDisplayName := Path; lpszTitle := PChar(Title); ulFlags := BIF_RETURNONLYFSDIRS or BIF_NEWDIALOGSTYLE; lpfn := nil; lParam := 0; end; pidl := ShBrowseForFolder(bi); if (pidl <> nil) and (SHGetPathFromIDList(pidl, path)) then result := path; OleUninitialize; end; //Aufgerufen wird dat dann mit: procedure TMainForm.btnOpenPathClick(Sender: TObject); var dir: String; begin dir := ChooseFolder('Verzeichnis zum Speichern auswählen:'); //Hier dann dir auswerten ne end; mfg das phlux :hi: |
Re: Frage zum OpenDialog
Hallo phlux,
wo kriege ich Handle (siehe Zeile: hwndOwner := Handle;) her? mfg eddy |
Re: Frage zum OpenDialog
Nimm Form1.Handle oder mach einen zweiten Parameter:
Delphi-Quellcode:
function ChooseFolder(Handle : hwnd; const Title: string): string;
// ... //Aufgerufen wird dat dann mit: procedure TMainForm.btnOpenPathClick(Sender: TObject); var dir: String; begin dir := ChooseFolder(Handle, 'Verzeichnis zum Speichern auswählen:'); //Hier dann dir auswerten ne end; |
Re: Frage zum OpenDialog
Oder du fügst die Funktion in die private Sektion deiner Form ein, dann musst allerdings schreiben
Delphi-Quellcode:
Dann musst du garnix mehr mit dem Handle ändern!
function TForm1.ChooseFolder(const Title: string): string;
mfg phlux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 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