.....На данном уроке мы создадим модальное окно визуального выбора кода ОКП из соответствующего справочника. Для этого будет создана простая модальная форма, в которой будет организован просмотр дерева классификатора ОКП и ручной выбор необходимого пункта. Передача данных в вызываемую форму будет осуществлена через пользовательские свойства формы.
Шаг 9.1 - Создание и настройка модальной формы.
Выберите в главном меню Delphi пункт File -> New -> Form. Будет создана новая форма (класс TForm). Сохраните форму в файл с именем PCSelOKP. В окне инспектора свойств формы настройте указанные ниже свойства следующим образом:
TForm.
Свойство |
Значение |
Комментарий |
BorderIcons |
[biSystemMenu] |
Отключить кнопки biMinimize и biMaximize |
Caption |
Классификатор ОКП |
Заголовок окна |
FormStyle |
fsNormal |
Нормальный стиль окна. |
Height |
500 |
Высота окна по умолчанию |
Icon |
... |
Установить иконку из файла LibOKP.ico из папки ..\Tutorial\Icon каталога установки библиотеки |
Name |
fmSelOKP |
Имя формы в модуле |
Position |
poMainFormFormCenter |
Позиция формы при загрузке на экран в центре главной формы. |
Width |
400 |
Ширина формы по умолчанию |
WindowState |
wsNormal |
При загрузке окна на экран установить размер по умолчанию |
Не забудьте удалить вновь созданную форму из списка загружаемых форм при загрузке приложения (см. Урок 2 рис. 3.2.4). Перейдите в режим редактирования кода формы (клавиша <F12>), и введите в структуру описания класса TfmSelOKP в раздел public следующие строки:
type
TfmSelOKP = class(TForm)
...
private
{ Private declarations }
public
{ Public declarations }
stSelect: string; // буфер для выбранного кода ОКП
end;
Шаг 9.2 - Установка и настройка необходимых компонентов на форму.
Установите на форму следующие компоненты: TVLTreeView (вкладка VisualLoodsman), TPopupActionBar (вкладка VLPlus), TImageList (вкладка Win32), TActionManager (вкладка Additional) и TVLOwnerManager (вкладка LoodsmanDataAccess). Настройте в инспекторе свойств некоторые свойства указанных компонентов следующим образом:
Свойство |
Значение |
Комментарий |
TPopupActionBar |
Name |
puab |
Имя компонента в модуле |
TImageList |
Name |
iml |
Имя компонента в модуле |
TActionManager |
Images |
iml |
Укажите ссылку на компонент iml - TImageList |
Name |
am |
Имя компонента в модуле |
TVLOwnerManager |
Name |
vlom |
Имя компонента в модуле |
TVLTreeView |
Align |
alClient |
Развернуть компонент на всю форму |
BDDCOM |
... |
Указатель на DCOM-соединение, оставить пустым, будет заполнено программным путем |
HeadAttr |
Наименование |
Имя атрибута, выводимого в головном объекте дерева |
Hint |
Выберите раздел и дважды щелкните левой кнопкой мыши для выбора |
Контекстная подсказка |
LinkName |
Состоит из ... |
Наименование связи, по которой будут отображаться объекты дерева |
Name |
vltrv |
Наименование компонента в модуле |
PopupMenu |
puab |
Ссылка на компонент контекстного меню |
ShowHint |
True |
Включить контекстную подсказку |
VLAutoLoad |
True |
Включить автозагрузку данных в компонент |
Форма с компонентами в среде Delphi будет выглядеть как показано на рисунке 9.1.
Рис. 9.1.
Для загрузки данных в визуальный компонент vltrv - TVLTreeView, создадим специальную процедуру при загрузке формы. Для этого в окне Object TreeView среды Delphi втаньте на форму fmSelOKP. В окне инспектора свойств перейдите на закладку Events и дважды щелкните мышкой напротив события OnShow. Будет создана соответствующая процедура FormShow. Внесите в тело процедуры следующие строки:
procedure TfmSelOKP.FormShow(Sender: TObject);
begin
Self.vlom.GetGlobalId;
// загрузить данные из глобальных переменных системы
Self.vlom.ReadBDAttributes;
// загрузить информацию из базы данных в компоненты формы
end;
Далее...