Шаг 6.3 - Создание контекстного меню для таблицы подчиненных объектов.
Установите на форму компонент - TPopupActionBar, расположенный на закладке VLPlus. В инспекторе свойств настройте некоторые его свойства следующим образом:
TPopupActionBar
Свойство |
Значение |
Комментарий |
Name |
puab |
Имя компонента в модуле |
Дважды щелкние по компоненту мышкой, на экран загрузится редактор меню (см. рис. 6.3):
Рис. 6.3
Создайте три пункта меню и настройте в инспекторе свойств некоторые свойства пунктов следующим образом:
TMenuItem - Создать
Свойство |
Значение |
Комментарий |
Action |
InsLib |
Действие (TAction), соответствующее данному пункту меню. |
ShortCut |
Ins |
"Горячая клавиша", соответствующая данному пункту меню. |
TMenuItem - Изменить
Свойство |
Значение |
Комментарий |
Action |
OpLib |
Действие (TAction), соответствующее данному пункту меню. |
ShortCut |
Ctrl+O |
"Горячая клавиша", соответствующая данному пункту меню. |
TMenuItem - Удалить
Свойство |
Значение |
Комментарий |
Action |
DelLib |
Действие (TAction), соответствующее данному пункту меню. |
ShortCut |
Del |
"Горячая клавиша", соответствующая данному пункту меню. |
Далее встаньте на компонент vltv - TVLTableView (таблица подчиненных разделов классификатора ОКП - см. Урок 5) и в инспекторе свойств настройте свойство PopupMenu следующим образом:
TVLTableView
Свойство |
Значение |
Комментарий |
PopupMenu |
puab |
Указатель на компонент выпадающего (контекстного) меню, установленного на форме. |
Таким образом, мы с Вами зарегистрировалти и описали три действия (TAction), предназначенные для редактирования таблицы подчиненных разделов классификатора ОКП, назначили им иконки, создали выпадающее меню, описали в нем пункты, с которыми связали созданные действия, и привязали данное меню неопсредственно к указанной выше таблице.
Шаг 6.4 - Настройка правил отображения пунктов меню.
Теперь настроим основные правила управления видимостью некоторых пунктов меню. Дело все в том, что если таблица подчиненных разделов классификатора ОКП пуста, то доступ к функциям редатирования и удаления разделов должен быть закрыт. Для этого встаньте на компонент puab - TPopupActionBar, перейдите в инспекторе свойств на закладку Events (События) и создайте процедуру для события OnPopup (Перед раскрытием меню). Введите в теле процедуры следующие строчки, как указано ниже:
procedure TfmLibOKP.puabPopup(Sender: TObject);
begin
inherited;
if Self.vltv.IsEmpty then
// если таблица пуста
begin
Self.OpLib.Enabled:=False;
Self.DelLib.Enabled:=False;
// отключить доступ к процедурам редактирования и удаления
end
else
// если таблица не пуста
begin
Self.OpLib.Enabled:=True;
Self.DelLib.Enabled:=True;
// включить доступ к процедурам редактирования и удаления
end;
end;
Далее...