Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Cписок дисков.

35K
16 ноября 2012 года
GrafAtRuss
15 / / 11.09.2010
Нашел процедуру:
Код:
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;
Она наполняет RadioGroup1 имеющимися дисками.
Но есть вопрос. Как доработать процедуру, что бы можно было задавать диск выделенный по умолчанию?
Например, если нужно:
DefDisk := 'C:\'
Так как на разных системах может быть разное кол-во дисков и начинаться они могут и с 'A:\', и 'B:\', и 'C:\'. Иной выбор запрещать не нужно. Но нужно, что бы по умолчанию был задан заведомо имеющийся диск, а это на 99% систем диск 'C:\'.
35K
17 ноября 2012 года
GrafAtRuss
15 / / 11.09.2010
Короче так:
Код:
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;
7
17 ноября 2012 года
@pixo $oft
3.4K / / 20.09.2006
В смысле, чтоб точка стояла на определённом RadioButton? Всё довольно просто на первый взгляд — во-первых, узнаёшь, каким образом выбирать нужный RadioButton, а во-вторых, с помощью GetWindowsDirectory получаешь путь к папке Windows и, соответственно, букву диска «по умолчанию»
35K
17 ноября 2012 года
GrafAtRuss
15 / / 11.09.2010
Цитата: @pixo $oft
В смысле, чтоб точка стояла на определённом RadioButton? Всё довольно просто на первый взгляд — во-первых, узнаёшь, каким образом выбирать нужный RadioButton, а во-вторых, с помощью GetWindowsDirectory получаешь путь к папке Windows и, соответственно, букву диска «по умолчанию»


Букву диска нужно задать в ручную, а точка должна стоять на ней все время. при этом Item 'C:\' может быть как на первом месте, так и на третьем (в зависимости от системы), но при этом точка должна все время оставаться на нем. Как сие реализовать?

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог