Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ordner angeben (https://www.delphipraxis.net/6540-ordner-angeben.html)

quakergod 14. Jul 2003 14:19


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:

Chewie 14. Jul 2003 14:30

Re: Ordner angeben
 
SelectDirectory

Alexander 14. Jul 2003 14:32

Re: Ordner angeben
 
such mal hier nach SelectDirectory

quakergod 14. Jul 2003 14:51

Re: Ordner angeben
 
mhm, ok das hat geklappt, jetzt möchte ich aber den pfad in ein edit feld reinscreiben:
Delphi-Quellcode:
procedure TForm1.Frame21SpeedButton2Click(Sender: TObject);
var
  Dir: String;
begin
  SelectDirectory('Select a directory', '', Dir);
  ShowMessage(Dir);
  Edit2.text:=(Dir);
end;
ich muss dazu sagen das der button und das edit2 feld im frame Frame21 sind, warum funzt das nicht? :oops:

RomanK 14. Jul 2003 15:05

Re: Ordner angeben
 
Delphi-Quellcode:
procedure TForm1.Frame21SpeedButton2Click(Sender: TObject);
var
  Dir: String;
begin
  SelectDirectory('Select a directory', '', Dir);
  ShowMessage(Dir);
  Edit2.text:=Dir;
end;
so sollte es gehen.

mirage228 14. Jul 2003 16:19

Re: Ordner angeben
 
Neben SelectDirectory gibt es auch noch die neuere Möglichkeit, die optisch besser aussieht!

Delphi-Quellcode:
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;
mfG
mirage228

quakergod 14. Jul 2003 18:09

Re: Ordner angeben
 
@ fuckracism, funzt leider nicht:
Zitat:

[Error] Unit1.pas(66): Undeclared identifier: 'Edit2'
@ mirage228, da gibts leider einen parse error :?

RomanK 14. Jul 2003 18:19

Re: Ordner angeben
 
Hast du denn einen Edit auf dein Forumlar gezogen??

quakergod 14. Jul 2003 18:28

Re: Ordner angeben
 
Zitat:

Zitat von FuckRacism
Hast du denn einen Edit auf dein Forumlar gezogen??

ja klar, aber wie eben schon gesagt ich arbeite mit frames, ka ob sich das darauf auswirkt... :cry:

mirage228 14. Jul 2003 18:30

Re: Ordner angeben
 
Zitat:

Zitat von quakergod
@ mirage228, da gibts leider einen parse error :?

was für einen denn?

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 05:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz