Hány cd-rom van a gépben és milyen a betűjele,delphiben?

Hány cd-rom van a gépben és milyen a betűjele,delphiben?
2005-11-09T14:54:06+01:00
2005-11-11T12:33:43+01:00
2022-10-27T17:25:43+02:00
Mihalyatec
Azt szeretném megkérdezni hogy a gépben van két cd-rom meghajtóm.Ezt honnan fogom megtudni, hogy milyen a cd-rom meghajtók betüjele (delphiben).
Pl.:egy gombnyomásra vagy a program indulásakor automatikusan megmondja, hogy H,G a cd-rom meghajtók betűjele.
Mutasd a teljes hozzászólást!
Hello!

Tegyél a formra egy DriveComboBoxot(Win 3.1 paletta) aztán:


procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin I := 0; while I < DriveComboBox1.Items.Count do begin if TDriveType(GetDriveType(PChar(Copy(DriveComboBox1.Items[I], 1, 2) + '\'))) <> dtCDROM then DriveComboBox1.Items.Delete(I) else Inc(I); end; end; procedure TForm1.Button1Click(Sender: TObject); var I : Integer; S : TStringList; begin S := TStringList.Create; S.Add('A következő CD-ROM meghajtók vannak a gépen:'+#13); for I:=0 to DriveComboBox1.Items.Count-1 do S.Add('Betűjel: '+Copy(DriveComboBox1.Items.Strings[I],1,1)); ShowMessage(S.Text); S.Free; end;

A form létrehozásakor csak a Cd-rom meghajtók maradnak, a gomb megnyomásakor végigemgyünk rajta és kiiratjuk!

Robertoq
Mutasd a teljes hozzászólást!

  • Ez az eljárás egy egész számot kap paraméterül, és visszaadja, milyen meghajtóról van szó, és mennyi hely van rajta.

    procedure TfrmSystem.Disk_Driver(Driver:Word; var DType,Bytes:ShortString);
    const
    Division=1024;
    DriveSign:array[1..6]of Char=('A','B','C','D','E','F');
    DrvCnt=7;
    DriveID:array[1..DrvCnt]of Longint=(0,1,DRIVE_REMOVABLE,DRIVE_FIXED,
    DRIVE_REMOTE,DRIVE_CDROM,DRIVE_RAMDISK);
    DriveStr:array[1..DrvCnt]of ShortString=('Ismeretlen','Nincs',
    'Cserélhető lemez','Rögzített meghajtó','Hálózati meghajtó',
    'CD-ROM meghajtó','RAM meghajtó');
    var
    GDT:Word;
    Y:Word;
    begin
    NString:=StrAlloc(20);
    StrPLCopy(NString,DriveSign[Driver]+':\',30);
    GDT:=GetDriveType(NString);
    for Y:=1 to DrvCnt do
    if GDT=DriveID[Y]then
    DType:=DriveStr[Y];
    if DiskSize(Driver)=-1 then
    Bytes:='Nem üzemkész'
    else
    Bytes:=IntToStr(DiskSize(Driver)div Division)+' KB, '+
    IntToStr(DiskFree(Driver)div Division)+' KB szabad';
    end;

    Mutasd a teljes hozzászólást!
  • Hello!

    Tegyél a formra egy DriveComboBoxot(Win 3.1 paletta) aztán:


    procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin I := 0; while I < DriveComboBox1.Items.Count do begin if TDriveType(GetDriveType(PChar(Copy(DriveComboBox1.Items[I], 1, 2) + '\'))) <> dtCDROM then DriveComboBox1.Items.Delete(I) else Inc(I); end; end; procedure TForm1.Button1Click(Sender: TObject); var I : Integer; S : TStringList; begin S := TStringList.Create; S.Add('A következő CD-ROM meghajtók vannak a gépen:'+#13); for I:=0 to DriveComboBox1.Items.Count-1 do S.Add('Betűjel: '+Copy(DriveComboBox1.Items.Strings[I],1,1)); ShowMessage(S.Text); S.Free; end;

    A form létrehozásakor csak a Cd-rom meghajtók maradnak, a gomb megnyomásakor végigemgyünk rajta és kiiratjuk!

    Robertoq
    Mutasd a teljes hozzászólást!
  • Elnézést a kései válaszért...
    Köszönöm szépen a megoldásokat!!
    Mind a kettő jó lenne nekem, de csak egy választ fogadhatok el, így Robertoq válaszát pontoznám le.
    Ikario elnézést tudod a szabály az szabály...
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd