Einzelnen Beitrag anzeigen

Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Probleme mit SHGetKnownFolderPath

  Alt 22. Nov 2013, 11:18
Das ist ja nur dazu da um die Form anzuzeigen...
Wir haben hier zwei Varianten... entweder wird die Form als eigenständiges Fenster angezeigt oder in einem Bereich der Hauptform...


Was ich kurios finde...
Die Funktion die ich oben beschrieben habe, habe ich auch für Windows XP:

Delphi-Quellcode:
//******************************************************************************
// fnGetShellFolder --> Get Constant Special Item ID Path from Windows *
// *
// Only for WIN XP *
// WIN7 has to use fnGetKnownFolderPath in this Unit *
// *
// Parameter --> iCSIDL (Constant Special Item ID) *
// Return --> Boolean True/False *
//******************************************************************************

function fnGetShellFolder(iCSIDL: integer): string;

var
pIDL : PItemIdList;
sFolderPath : string;
iSystemFolder : Integer;
Malloc : IMalloc;
  
begin

  Malloc := nil;
  sFolderPath := '';
  SHGetMalloc(Malloc);

  If Malloc = nil Then
  Begin
    Result := sFolderPath;
    Exit;
  End;

  Try
    iSystemFolder := iCSIDL;
    If SUCCEEDED(SHGetSpecialFolderLocation(0, iSystemFolder, pIDL)) then
    Begin
      SetLength(sFolderPath, max_path);
      If SHGetPathFromIDList(pidl, PChar(sFolderPath)) Then
      Begin
        SetLength(sFolderPath, length(PChar(sFolderPath)));
      End;
    End;
    Result := sFolderPath;
  Finally
    Malloc.Free(pIDL);
  End;

end;
Ich hab die gleiche DLL jetzt unter Windows XP getestet... hier kommt kein Fehler! Also kein Runtime Error...

Liegt der Fehler dann nicht eher in der Funktion für Windows 7, das diese einen Speicherfehler verursacht?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat