Einzelnen Beitrag anzeigen

Takeo

Registriert seit: 15. Jul 2014
14 Beiträge
 
#7

AW: Namen von Wechseldatenträger ermitteln

  Alt 15. Jul 2014, 14:18
Achso alles klar. Hab es ja jetzt eh ohne die Funktion gelöst. Ich hoff meine Lösung ist "gut" programmiert:

Delphi-Quellcode:
procedure TForm1.GetDrives;
var
  Drive: Char;
  DriveMask: Integer;
  Flag: Integer;
  FileInfo: TSHFileInfo;

begin
  DriveMask := GetLogicalDrives; //Bitmaske holen
  flag := 1; //Startflag setzen
  for Drive := 'Ato 'Zdo //Jeden Buchstaben gegenprüfen
  begin
    if (flag and DriveMask) <> 0 then
    begin
      if (GetDriveType(PChar(Format('%S:',[Drive]) ) ) = 2) then begin
         ComboPath.Add(Drive);

         SHGetFileInfo(PChar(Format('%S:\',[Drive])), 0, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_LARGEICON or SHGFI_TYPENAME or SHGFI_DISPLAYNAME or SHGFI_SYSICONINDEX);

         ComboIcons.Add(IconToBitmap(FileInfo.hIcon),nil); //Icons zu einer ImageList hinzufügen
         ComboNames.Add(FileInfo.szDisplayName); //Namen zu einer StringList hinzufügen
      end;

    end;
    flag := flag shl 1; //Ein Bit weiter nach links gehen ( = flag * 2)
  end;

end;
  Mit Zitat antworten Zitat