Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pfadangabe ins Edit (https://www.delphipraxis.net/10802-pfadangabe-ins-edit.html)

Intruder 25. Okt 2003 16:43


Pfadangabe ins Edit
 
habe 2 EditFelder und 2 "Durchsuchen.."-Button

beim ersten Button soll ich eine Datei auswählen können deren kompletter pfad anschließend
im ersten Edit Feld steht
Bsp: C:\Programme\xXx\start.exe

beim zweiten soll nur ein ordener ausgefählt werden können dessen pfad ebenfalls dann
im zweiten edit steht
Bsp: D:\Neu\Ordner1\

welche komponenten brauch ich dazu und wie muss der SourceCode ungefähr aussehen ???

Matze 25. Okt 2003 16:49

Re: Pfadangabe ins Edit
 
Zu 1:

Delphi-Quellcode:
if OpenDialog1.Execute then
Edit1.Text:=OpenDialog1.FileName;

mirage228 25. Okt 2003 16:49

Re: Pfadangabe ins Edit
 
beim ersten brauchst du einen einfachen OpenDialog (bei "Dialoge" zu finden).

Delphi-Quellcode:
  if OpenDialog1.Execute then
    edit1.text := OpenDialog1.FileName;
für das zweite empfehle ich die Funktion:

Delphi-Quellcode:
uses ShellAPI, ShlObj;

// ...

function OpenFolder(root: Integer; Caption: string): string; //Verzeichnis-Öffnen-Dialog-Funktion
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 dann:
Delphi-Quellcode:
  edit2.text := OpenFolder(CSIDL_DRIVES, 'Ordner öffnen');
Um sicherzustellen, dass Edit2 nur Pfade enthält, könntest du die spätere mit Ausgabe mit ExtractFilePath bearbeiten oder das Edit2 Read-Only machen, und Eingaben nur mittels Dialog ermöglichen.

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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