Как известно, панель может содержать кнопки и другие элементы управле-
ния, например, раскрывающиеся списки или пункты меню. Эти элементы в
свою очередь принадлежат самой панели и объединены в коллекцию
Controls. Посредством этой коллекции осуществляется доступ ко всем эле-
ментам управления выбранной панели. Коллекция Controls имеет несколько
свойств и один метод. Мы будем использовать свойства Count (количество
элементов коллекции) и Item(i:integer) (элементы коллекции, где i — индекс
кнопки), а также метод Add, позволяющий добавлять на панель новые эле-
менты.
Рассмотрим свойства и методы элемента управления (табл. 10.3).
Таблица 10.3. Свойства и методы элемента управления
Исследуем содержание панели и некоторые свойства элементов управления.
Если рассматривать меню, то его основное отличие от панели с кнопками
состоит в том, что элементом управления в составе меню может быть как
пункт меню, так и подменю со своими элементами управления и т. д.
Чтобы проанализировать свойства панели, используем свойства Count и
Item() коллекции Controls, а также свойства Caption и TooltipText. Загрузим
весь список кнопок и других элементов управления панели в объект ListBox
с помощью следующей процедуры.
Загрузка списка элементов управления панели
procedure T0KBottomDlg5.FormCreate(Sender: TObject);
var a_:integer;
eee_:string;
begin
MYCONTROLS:=0KBottomDlg4.CommandBars.Item[
OKBottomDlg4.ListBoxl.Itemlndex+l].CONTROLS;
for a_:=l to MYCONTROLS.Count do begin
eee_:=MYCONTROLS.Item[a_].Caption+'='+MYCONTROLS.Item[a_].TooltipText;
ListBoxl.Items.Add(eee_);
end;
MYCONTROL:=MYCONTROLS.Item[ 1 ] ;
end;
Результат выполнения процедуры представлен на рис. 10.10.
Как видно из рис. 10.10, переходя от одного элемента управления к друго-
му, мы можем получать и изменять их свойства. Для этого достаточно за-
грузить в переменную типа variant ссылку на элемент Item(), например, как
в следующем операторе:
MYCONTROL:=MYCONTROLS.Item[ListBoxl.Itemlndex+l];
Далее, работая со ссылкой, мы получаем доступ к различным свойствам
выбранного элемента управления. В качестве примера сделаем невидимой
выбранную кнопку, изменим ее надпись (свойство Caption) и запустим на
выполнение команду, связанную с данной кнопкой.
Рис. 10.10. Состав панели
Управление свойствами элемента управления
procedure TOKBottomDlg5.b_visibleClick(Sender: TObject);
begin
MYCONTROL.Visible:=b_visible.Checked;
end;
procedure TOKBottomDlg5.b_CaptionClick(Sender: TObject);
begin
MYCONTROL.Caption:='Новая кнопка';
end;
procedure TOKBottomDlg5.ButtonlClick(Sender: TObject);
begin
MYCONTROL.Execute;
end;
|