Справочник по компонентам Delphi. Часть 2
Страница 44. Компонент 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;

Все изменения первого будут автоматически отслеживаться вторым. Компонент

 

 
« Предыдущая статья   Следующая статья »