procedure TForm1.FormCreate(Sender: TObject);
var
w: dword;
Root: string;
i,DiskType: integer;
f:textfile; // Dalee textovie peremennie
begin
{диск А это привод гибких дисков,если он не нужен то
цикл до 24 и
Root[1] := Char(Ord('B') + i); }
w := GetLogicalDrives;
Root := '#:\';
for i := 0 to 25 do
begin
Root[1] := Char(Ord('A') + i);
if (W and (1 shl i)) > 0 then
if (GetDriveType(Pchar(Root)) = DRIVE_FIXED) or
(GetDriveType(Pchar(Root)) = DRIVE_removable)
then
RadioGroup1.Items.Add(Root);
end;
RadioGroup1.ItemIndex :=0;
end;
Cписок дисков.
Код:
Но есть вопрос. Как доработать процедуру, что бы можно было задавать диск выделенный по умолчанию?
Например, если нужно:
DefDisk := 'C:\'
Так как на разных системах может быть разное кол-во дисков и начинаться они могут и с 'A:\', и 'B:\', и 'C:\'. Иной выбор запрещать не нужно. Но нужно, что бы по умолчанию был задан заведомо имеющийся диск, а это на 99% систем диск 'C:\'.
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
w: dword;
Root: string;
j,DiskType: integer;
SystemDisk_index:integer;
a:tstringlist;
begin
w := GetLogicalDrives;
a:=TStringList.Create;
Root := '#:\';
for j := 0 to 25 do
begin
Root[1] := Char(Ord('A') + j);
if (W and (1 shl j)) > 0 then
if (GetDriveType(Pchar(Root)) = DRIVE_FIXED) or (GetDriveType(Pchar(Root)) = DRIVE_removable)
then
begin
RadioGroup1.Items.Add(Root);
a.Add(Root);
end;
end;
for j := 0 to a.Count-1 do
if a.Strings[j] = 'C:\'
then
SystemDisk_index:=j;
RadioGroup1.ItemIndex := SystemDisk_index;
end;
var
w: dword;
Root: string;
j,DiskType: integer;
SystemDisk_index:integer;
a:tstringlist;
begin
w := GetLogicalDrives;
a:=TStringList.Create;
Root := '#:\';
for j := 0 to 25 do
begin
Root[1] := Char(Ord('A') + j);
if (W and (1 shl j)) > 0 then
if (GetDriveType(Pchar(Root)) = DRIVE_FIXED) or (GetDriveType(Pchar(Root)) = DRIVE_removable)
then
begin
RadioGroup1.Items.Add(Root);
a.Add(Root);
end;
end;
for j := 0 to a.Count-1 do
if a.Strings[j] = 'C:\'
then
SystemDisk_index:=j;
RadioGroup1.ItemIndex := SystemDisk_index;
end;
В смысле, чтоб точка стояла на определённом RadioButton? Всё довольно просто на первый взгляд — во-первых, узнаёшь, каким образом выбирать нужный RadioButton, а во-вторых, с помощью GetWindowsDirectory получаешь путь к папке Windows и, соответственно, букву диска «по умолчанию»
Цитата: @pixo $oft
В смысле, чтоб точка стояла на определённом RadioButton? Всё довольно просто на первый взгляд — во-первых, узнаёшь, каким образом выбирать нужный RadioButton, а во-вторых, с помощью GetWindowsDirectory получаешь путь к папке Windows и, соответственно, букву диска «по умолчанию»
Букву диска нужно задать в ручную, а точка должна стоять на ней все время. при этом Item 'C:\' может быть как на первом месте, так и на третьем (в зависимости от системы), но при этом точка должна все время оставаться на нем. Как сие реализовать?