Страница 44 из 59 Компонент 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; Все изменения первого будут автоматически отслеживаться вторым. Компонент |