Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pfadangaben automatisch anpassen (https://www.delphipraxis.net/183-pfadangaben-automatisch-anpassen.html)

Jonson 18. Jun 2002 08:18

@Luckie: bin schon dabei, Danke !!!

sakura 18. Jun 2002 09:22

Eine weitere Möglichkeit, welche ich noch schnell zum Besten geben möchte wäre
Code:
if AnsiLastChar(PfadName)^ <> '\' then
  PfadName := PfadName + '\';
Damit würdest Du garantiert immer einen Backslash am Ende haben und könntest so die UNterverzeichnisse einfach "dranhängen".

P.S. Ich würde mich nicht darauf verlassen, dass SHBrowseForFolder den Pfad immer auf die gleiche Art und Weise zurückliefert.

Christian Seehase 18. Jun 2002 09:30

Moin Sakura,

wenn ich nicht sehr irre, liefert SHBrowseForFolder nur den ausgewählten Folder zurück, aber nicht den gesamten Pfad.
Oder kennst Du dafür eine entsprechende Parametrisierung?

sakura 18. Jun 2002 09:40

Hi Christian,

in (zumindest) diesem Beispiel wird der komplette Pfad (UNC für Netzwerke) zurückgeliefert.
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  TitleName : string;
  lpItemID : PItemIDList;
  BrowseInfo : TBrowseInfo;
  DisplayName : array[0..MAX_PATH] of char;
  TempPath : array[0..MAX_PATH] of char;
begin
  FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
  BrowseInfo.hwndOwner := Form1.Handle;
  BrowseInfo.pszDisplayName := @DisplayName;
  TitleName := 'Please specify a directory';
  BrowseInfo.lpszTitle := PChar(TitleName);
  BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
  lpItemID := SHBrowseForFolder(BrowseInfo);
  if lpItemId <> nil then begin
    SHGetPathFromIDList(lpItemID, TempPath);
    ShowMessage(TempPath);
    GlobalFreePtr(lpItemID);
  end;
end;

Christian Seehase 18. Jun 2002 09:55

Moin sakura,

danke für die prompte Antwort.

Allerdings:
Mit SHGetPathFromIDList mach ich das für die Rückgabe des Pfades auch.
Ich hatte gedacht, Du wüsstest Paramter für SHBrowseForFolder, die einem das ersparen. ;-)

sakura 18. Jun 2002 10:03

MS wird uns da wohl keine andere Möglichkeit geben, da alle neueren Funktionen im Hintergrund mit diesen PIDLs arbeiten :( Aber immerhin gibt es ja SHGetPathFromIDList, damit uns das Leben etwas leichter fällt. :lol:

Jonson 18. Jun 2002 10:41

@Sakura: Danke!!!

Jonson


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
Seite 2 von 2     12   

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