Получить список дисков
|
Пpиходит сантехник(С) к пpогpаммисту(П) pемонтиpовать засоpившуюся pаковину.
C. начинает ковыpяться в отстойнике...
С.- А у вас тут из сети все на винт падает...вот и забило..
П.- Hадо винт больше ставить?
С.- Hет, винт надо вообще спилить к #$%^&й матеpи.
|
Компонент, выводящий список дисков уже существует – TDriveComboBox, но он не всегда удобен. Я привожу пример программы, выводящей список дисков в двух разных видах.
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
buf: array [0..499] of char;
DrvStr: array [0..9] of char;
LogDrives: set of 0..25;
begin
integer(LogDrives) := GetLogicalDrives;
for i := 0 to 25 do
if (i in LogDrives) then
ListBox1.Items.Add(chr(i + 65));
GetLogicalDriveStrings(1000, buf);
i := 0;
repeat
FillChar(DrvStr, SizeOf(DrvStr), #0);
j := 0;
repeat
DrvStr[j] := buf[i];
inc(j);
inc(i);
until
(buf[i] = #0) or (j > 9);
inc(i);
ListBox2.Items.Add(DrvStr);
until
((buf[i-1] = #0) and (buf[i] = #0)) or (i > 499);
end;
|
|