Ich habe das von dem Link jetzt versucht ein wenig umzubauen nur schaffe ich das irgendwie nicht. Im Tut. steht es ja so da:
Delphi-Quellcode:
procedure GetDrives(const AItems: TStrings);
const
DriveTypeTexts: array[DRIVE_UNKNOWN..DRIVE_RAMDISK] of string =
('Unbekannt', 'Kein Wurzelverzeichnis', 'Diskette', 'Festplatte', 'Netzlaufwerk', 'CDROM', 'RAMDisk');
var
Drive: Char;
DriveType: Integer;
DriveMask: Integer;
Flag: Integer;
begin
DriveMask := GetLogicalDrives; //Bitmaske holen
flag := 1; //Startflag setzen
for Drive := 'A' to 'Z' do //Jeden Buchstaben gegenprüfen
begin
if (flag and DriveMask) <> 0 then
begin
DriveType := GetDriveType(PChar(Format('%S:\',[Drive]) ) ) ;
AItems.Add(Format('%s: %s', [Drive, DriveTypeTexts[DriveType]]));
end;
flag := flag shl 1; //Ein Bit weiter nach links gehen ( = flag * 2)
end;
end;
Und jetzt möchte ich nur dass das Laufwerk geprüft wird. Ich hätte das jetzt folgendermaßen umgeschrieben nur kommt die Fehlermeldung:
[dcc32 Fehler] Unit1.pas(29): E2029 '..' erwartet, aber ']' gefunden
[dcc32 Fehler] Unit1.pas(30): E2010 Inkompatible Typen: 'Int64' und 'string'
[dcc32 Fehler] Unit1.pas(31): E2029 'OF' erwartet, aber 'VAR' gefunden
[dcc32 Fataler Fehler] Project1.dpr(5): F2063 Verwendete
Unit 'Unit1.pas' kann nicht compiliert werden
Misslungen
Und hier ist mein Code:
Delphi-Quellcode:
procedure GetDrives(const AItems: TStrings);
const
DriveTypeTexts: array[DRIVE_CDROM] of string =
('CDROM');
var
Drive: Char;
DriveType: Integer;
DriveMask: Integer;
Flag: Integer;
begin
DriveMask := GetLogicalDrives; //Bitmaske holen
flag := 1; //Startflag setzen
for Drive := 'A' to 'Z' do //Jeden Buchstaben gegenprüfen
begin
if (flag and DriveMask) <> 0 then
begin
DriveType := GetDriveType(PChar(Format('%S:\',[Drive]) ) ) ;
AItems.Add(Format('%s: %s', [Drive, DriveTypeTexts[DriveType]]));
end;
flag := flag shl 1; //Ein Bit weiter nach links gehen ( = flag * 2)
end;
end;
Ich glaube ich denke mal wieder zu kompliziert und die Lösung ist ganz einfach..