В каждом созданном MDI проекте находятся следующие объекты:
- Module: модули проекта;
- Dialog: About dialog;
- Window: Task Window;
- Menu: Task Menu.
Параметры этих объектов могут быть изменены, сами объекты могут быть удалены, но при условии соответствующих изменений в коде программы.
Для работы с объектами используется окно, приведенное на рисунке 1.2.
Рис.1.2. Окно для работы с объектами(OJ).
1. Создание новых окон
Выбираем вкладку Window в окне OJ. Нажимаем New и задаем необходимые параметры и имя окна(например: main).
2. Добавляем к окно необходимые элементы(Button, Edit, List Box, List Edit…).
3. Устанавливаем необходимые обработчики добавленным элементам.
На необходимом элементе нажимаем правой кнопкой мыши и в появившемся контекстном меню выбираем пункт Code Expert. В появившемся окне (Рис 1.3.) выбираем тип объекта(Window, Menu, Control…), имя объекта(idc_price) , тип события (getfocus, modified…) нажимаем на кнопку Add Clause. Для редактирования и ввода кода обработчика нажимаем на появившуюся кнопку Edit Clause.
Рис.1.3. Окно для работы с обработчиками.
4. Для вывода созданного окна зададим обработчик для пункта Task Menu “File” со следующим кодом(выводим окно с именем main):
%BEGIN Task Window, id_file_new
task_win_eh(_Win,e_Menu(id_file_new,_ShiftCtlAlt),0):-!,
win_ main _Create(_Win),
!.
%END Task Window, id_file_new
5. Работа с объектами. Получение и задание состояний.
Для работы с объектом необходимо получить на него указатель. Функции возвращающая указатель на объект: WINDOW win_GetCtlHandle (WINDOW ParentWinHandle, INTEGER CtrlId).
Для изменения состояния объекта используются функции: win_GetText(…), lbox_Add(…) и т.д.
Пример (может быть помещен в обработчик объекта button).
…
%Получения указателя на объект
PRICE = win_GetCtlHandle(_Win,idc_price),
%Получения текста введенного в объект Edit
StringParam = win_GetText (PRICE),
%Получения указателя на другой объект
CPU = win_GetCtlHandle(_Win,idc_cpu),
%Добавление записи в ListEdit
lbox_Add (CPU,-1, StringParam),
…