Справочник по компонентам Delphi. Часть 2 - Компонент TDriveComboBox
ОГЛАВЛЕНИЕ
Компонент TDriveComboBox
TObject -> TPersistent -> TComponent -> TControl -> TWinControl -> TCustornComboBox -> TDriveComboBox
Модуль FILECTRL
Страница Палитры компонентов System
Компонент представляет комбинированный список, содержащий информацию о имеющихся в системе устройствах. При инициализации приложения все они заносятся в этот список. Во время выполнения отображаются односимвольное имя устройства, метка в квадратных скобках и пиктограмма, соответствующая его типу (винчестер, сетевой диск, дисковод CD-ROM и т. п.):
TDriveType = (dtUnknown, dtNoDrive, dtFloppy, dtFixed, dtNetwork, dtCDROM, dtRAM);
К сожалению, функция, определяющая тип диска по его номеру или имени, недоступна программисту. Имеющаяся в API Windows функция GetDriveType не умеет распознавать dtCDROM и dtRAM и сообщает о них как о dtFixed.
Имя текущего диска соответствует значению свойства
property Drive: Char;
а имя с меткой (так, как это показывается в списке) — значению свойства:
property Text;
При этом текст метки может отображаться в верхнем или нижнем регистрах, в зависимости от значения свойства:
(Pb) property TextCase: TTextCase;TTextCase = (tcLowerCase, tcUpperCase);
Пиктограмму типа диска можно получить, используя свойство списка Items.Objects — каждому устройству соответствует объект типа TBitmap.
Изменение текущего диска, как правило, должно повлечь за собой изменения в соответствующих списках каталогов и файлов. Для этого в обработчике собьщга
(Pb) property OnChange: TNotifyEvent;
нужно предусмотреть соответствующий код, например:
procedure TFormI.DriveComboBoxlChange(Sender: TObject);
begin
DirectoryListBoxl.Drive := DriveComboBoxl.Drive;
end;
Существует и более простой путь для такого связывания. Достаточно связать компонент-список дисков с компонентом-списком каталогов, используя свойство:
(Pb) property DirList: TDirectoryListBox;
Все изменения первого будут автоматически отслеживаться вторым. Компонент