Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Список дисков [D7, WinXP]


Avsam ©   (2003-03-02 23:45:00) 

Как получить список логических дисков? C:, D:, G: и т.д.


Palladin   (2003-03-03 01:10:00) [1]

а вот кстати интересный кусочек из FileCtrl.pas


procedure TDriveComboBox.BuildList;
var
DriveNum: Integer;
DriveChar: Char;
DriveType: TDriveType;
DriveBits: set of 0..25;

procedure AddDrive(const VolName: string; Obj: TObject);
begin
Items.AddObject(Format("%s: %s",[DriveChar, VolName]), Obj);
end;

begin
{ fill list }
Clear;
Integer(DriveBits) := GetLogicalDrives;
for DriveNum := 0 to 25 do
begin
if not (DriveNum in DriveBits) then Continue;
DriveChar := Char(DriveNum + Ord("a"));
DriveType := TDriveType(GetDriveType(PChar(DriveChar + ":\")));
if TextCase = tcUpperCase then
DriveChar := Upcase(DriveChar);

case DriveType of
dtFloppy: Items.AddObject(DriveChar + ":", FloppyBMP);
dtFixed: AddDrive(VolumeID(DriveChar), FixedBMP);
dtNetwork: AddDrive(NetworkVolume(DriveChar), NetworkBMP);
dtCDROM: AddDrive(VolumeID(DriveChar), CDROMBMP);
dtRAM: AddDrive(VolumeID(DriveChar), RAMBMP);
end;
end;
end;


jack128   (2003-03-03 00:44:00) [2]

DWORD GetLogicalDrives(VOID)

DWORD GetLogicalDriveStrings(
DWORD nBufferLength, // size of buffer
LPTSTR lpBuffer // address of buffer for drive strings
)


Наверх

Титульная страница Поиск, карта сайта Написать письмо