Einzelnen Beitrag anzeigen

Luki206
(Gast)

n/a Beiträge
 
#5

AW: CD/DVD-Laufwerk prüfen

  Alt 16. Dez 2013, 15:47
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 := 'Ato 'Zdo //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 := 'Ato 'Zdo //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..

Geändert von Luki206 (16. Dez 2013 um 15:50 Uhr)
  Mit Zitat antworten Zitat