![]() |
Ordner angeben
hi, hab mal ne richtig dumme frage, finde aber leider keine antwort:
ich habe ein edit feld in das man einen ordner eingeben muss. ( z.bsp: c:\spiele\big red race ) daneben möchte ich einen button machen, wo auf klick darauf eine ordnerstruktur aufpoppt, wie im Windows Explorer, wo man dann den ordner auch auswählen kann... wie lautet der befehl dafür ? :freak: |
Re: Ordner angeben
SelectDirectory
|
Re: Ordner angeben
such mal hier nach SelectDirectory
|
Re: Ordner angeben
mhm, ok das hat geklappt, jetzt möchte ich aber den pfad in ein edit feld reinscreiben:
Delphi-Quellcode:
ich muss dazu sagen das der button und das edit2 feld im frame Frame21 sind, warum funzt das nicht? :oops:
procedure TForm1.Frame21SpeedButton2Click(Sender: TObject);
var Dir: String; begin SelectDirectory('Select a directory', '', Dir); ShowMessage(Dir); Edit2.text:=(Dir); end; |
Re: Ordner angeben
Delphi-Quellcode:
so sollte es gehen.
procedure TForm1.Frame21SpeedButton2Click(Sender: TObject);
var Dir: String; begin SelectDirectory('Select a directory', '', Dir); ShowMessage(Dir); Edit2.text:=Dir; end; |
Re: Ordner angeben
Neben SelectDirectory gibt es auch noch die neuere Möglichkeit, die optisch besser aussieht!
Delphi-Quellcode:
mfG
uses
ShellAPI, SHLObj; ////////////////////////////// function OpenFolder(root: Integer; Caption: string): string; var bi: TBrowseInfo; lpBuffer: PChar; pidlPrograms, pidlBrowse: PItemIDList; begin if (not SUCCEEDED(SHGetSpecialFolderLocation(GetActiveWindow, root, pidlPrograms))) then exit; lpBuffer := StrAlloc(MAX_PATH); bi.hwndOwner := GetActiveWindow; bi.pidlRoot := pidlPrograms; bi.pszDisplayName := lpBuffer; bi.lpszTitle := PChar(Caption); bi.ulFlags := BIF_RETURNONLYFSDIRS; bi.lpfn := nil; bi.lParam := 0; pidlBrowse := SHBrowseForFolder(bi); if (pidlBrowse <> nil) then if SHGetPathFromIDList(pidlBrowse, lpBuffer) then Result := lpBuffer; StrDispose(lpBuffer); end; //////////////////////////////////////// // Aufruf // procedure TForm1.Button1Click(Sender: TObject); var Verz: String; begin Verz := OpenFolder(CSIDL_DRIVES,'Verzeichnis auswählen'); // CSIDL_DRIVES sorgt dafür, dass du als obertes Verzeichnis den // Arbeitslplatz hast ;-) end; mirage228 |
Re: Ordner angeben
@ fuckracism, funzt leider nicht:
Zitat:
|
Re: Ordner angeben
Hast du denn einen Edit auf dein Forumlar gezogen??
|
Re: Ordner angeben
Zitat:
|
Re: Ordner angeben
Zitat:
versuch trotzdem ma die methode "OpenFolder" als Methode des Forms zu machen, also oben zu public die deklaration reinschreiben und ein TFrom1 (oder was auch immer du hast) vor die Methodendefinition (TForm1.OpenFolder) mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 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