|
||
Визуальные средства разработки приложений в Windows в последнее время становятся обыденным инструментом
любой приличной системы программирования. Предлагать систему программирования, способную создавать
диалоговые программы, но лишенную визуальных средств проектирования экранных форм, пожалуй, просто неловко...
Дизайнер содержит командную панель (органы которой задублированы в главном меню) и панель инструментов.
Панель инструментов, в свою очередь, включает средства выбора элементов управления, выпадающий
список элементов управления и окно свойств. Справа от панели инструментов расположена форма
проектируемого диалога.
Кнопки командной панели (перечисленные слева направо) предназначены для:
Панель инструментов конструктора показана на отдельном рисунке ниже:
Два ряда кнопок в верхней части панели служат для выбора "рисуемого" элемента управления.
При этом самая левая кнопка в первом ряду (с изображением стрелки) служит для отказа от
выбора типа. Активная в данный момент кнопка обводится синей рамкой.
Ниже в отдельной рамке располагается двухкнопочный переключатель свойства/события. Этот переключатель
активен только если на форме имеется хотя бы один элемент управления.
Еще ниже располагается выпадающий список объектов диалога. Каждому элементу управления дается
уникальное стандартное имя и оно добавляется в выпадающий список объектов. Если пользователь
удалит элемент управления, его имя автоматически удалится из списка объектов диалога.
Под списком объектов диалога располагается окно свойств активного элемента управления.
Любое из свойств может быть изменено. Для этого следует щелкнуть по полю ввода, распложенному
правее нужной надписи. Дальнейшее зависит от вида свойства. Для простых свойств (текст надписи,
геометрические размеры) откроется желтое поле ввода, в которое можно с клавиатуры ввести новое
значение (которое заменит старое). Нажатие клавиши Esc позволяет отказаться от замены.
Для сложных свойств (шрифт, цвет, иконка) в поле ввода появится кнопка Дальше...,
после чего либо вызывается стандартный диалог (выбор шрифта, цвета), либо отображается форма выбора иконки
из внутреннего пула иконок.
Ниже работа с дизайнером будет рассмотрена на примере создания простого диалога, содержащего два
поля ввода и две командные кнопки. В первое поле ввода пользователь вводит целое число,
нажимает первую кнопку, и во втором поле появляется факториал введенного числа.
Вторая кнопка служит для завершения диалога.
Для изменения размеров формы (ширины и высоты) можно либо "подцепить" соответствующую границу формы
мышью и придать форме нужные размеры, либо дважды щелкнуть мышью по полю ввода в окне свойств диалога (против
надписей "ширина" или "высота") и задать нужный размер формы диалога. Двойной щелчок по полю ввода против надписи
"заголовок" позволяет задать отображаемый заголовок формы.
После того, как пользователь отпустит левую клавишу мыши, рамка исчезнет, а на месте рамки появится
соответствующий элемент управления:
Видно, что элемент управления окружен желтыми квадратиками-маркерами. Двигая эти квадратики мышью,
можно менять размеры элемента управления. Можно также перемещать элемент управления, как единое целое.
для этого следует ввести курсор мыши внутрь области, занимаемой элементом управления, нажать левую
клавишу мыши и двигать элемент управления, не отпуская левую клавишу.
Пусть читатель обратит внимание, что в выпадающй список, расположенный между палитрой инструментов
и окном свойств, добавляются имена выбранных элементов управления. Первое поле ввода будет называться
_TXT_1, второе - _TXT_2 и т.д. Диалогу тоже присваивается имя _DLG_. В поля ввода
при их создании автоматически заносится текст Поле_ввода_1, Поле_ввода_2 и т.д. Аналогично,
на командных кнопках формируются надписи Кнопка-1, Кнопка-2 и т.д.
Аналогичным образом очищается второе поле ввода, а на кнопки наносятся надписи "Вычислить" и
"Закрыть" соответственно:
На командные кнопки можно посадить иконки. Для того, чтобы сделать это, выделяем щелчком мыши
нужную кнопку, переходим в окно свойств, и дважды щелкаем по белому полю справа от надписи "иконка".
На поле появится кнопка с тремя точками:
Теперь необходимо назначить кнопкам процедуры-обработчики событий.
Начнем с кнопки "Закрыть". Выделяем эту кнопку щелчком мыши, а затем
щелкаем по кнопке с изображением желтой молнии. Открывается окно редактирования
кода:
Щелкаем по кнопке с изображением руки (переходим от редактирования кода к дизайну), выбираем
кнопку "Вычислить" и, щелкнув по желтой молнии, открываем ее обработчик. В этом обработчике
пишем следующее:
Тело функции-обработчика представляет собой PROG-конструкцию. Используются две
локальные (связанные) переменные x и y. В переменую x заносится
текст, введенный пользователем в первое поле ввода. Чтобы предотвратить возможные ошибки,
вычисление факториала заключается в TRY-EXCEPT-группу. Поскольку функция fact требует
аргумента типа FIXED, то используется функция STR2FIX.
Если при вычислении факториала
произойдет любая ошибка, переменная y получит значение "Ошибка при вычислении".
В любом случае, значение переменной y заносится в текстовое поле _TXT_2.
Выбираем имя test и нажимаем кнопку сохранить. Выдается сообщение "Диалог сохранен".
Теперь следует сгенерировать Лисп-код нашего диалога. Для этого нажимаем седьмую кнопку
панели инструментов (или выбираем пункт главного меню "Сгенерировать"). Снова появится окно
"Сохранить как":
Задаем имя test и нажимаем кнопку "Сохранить". Выдается сообщение "Лисп-код сгенерирован", а в
выбранной директории появится файл test.lsp, содержащий полный код диалога. При желании можно
посмотреть Лисп-код. Он будет выглядеть так:
Диалог вполне работоспособен. Если ввести в поле ввода отрицательное число, то будет выдано сообщение об ошибке:
Осталось добавить, что поскольку диалог был сохранен, его можно многократно корректировать в
дизайнере. Для этого сохраненный диалог нужно открыть, для чего следует нажать первую кнопку
панели инструментов или выполнить пункт главного меню "Открыть".
|
||