Каждый компонент, который помещается на форму, имеет свое отражение в окне Инспектора Объектов (рис.1). Инспектор Объектов имеет две основные закладки – Свойства и События. Создание программы в Lazarus сводится к «нанесению» компонент на форму (которая, кстати, также является компонентом) и настройке взаимодействия между ними путем:
· изменения значения свойств этих компонент;
· написания адекватных реакций на события.
Свойства
Существует несколько типов свойств, в зависимости от их «природы», т.е. внутреннего устройства:
· Простые свойства - это те, значения которых являются числами или строками. Например, свойства Left и Top принимают целые значения, определяющие положение левого верхнего угла компонента или формы. Свойства Caption и Name представляют собой строки и определяют заголовок и имя компонента или формы.
· Перечислимые свойства - это те, которые могут принимать значения из предопределенного набора (списка). Простейший пример - это свойство типа Boolean, которое может принимать значения True или False.
· Вложенные свойства - это те, которые поддерживают вложенные значения (или объекты). Инспектор Объектов изображает знак “+” слева от названия таких свойств. Имеется два вида таких свойств: множества и комбинированные значения. Инспектор Объектов изображает множества в квадратных скобках. Если множество пусто, оно отображается как []. Некоторые свойства, например, Font, для изменения своих значений имеют возможность вызвать диалоговое окно. Для этого достаточно щелкнуть маленькую кнопку с тремя точками в правой части строки Инспектора Объектов, показывающей данное свойство.
Lazarus позволяет легко манипулировать свойствами компонент как в режиме проектирования, так и в режиме выполнения программы. Все изменения значений свойств компонент в режиме выполнения должны осуществляться путем прямой записи строк кода на языке Паскаль. В режиме выполнения невозможно использовать Инспектор Объектов. Однако, доступ к свойствам компонентов довольно легко получить программным путем. Ссылка на свойство объекта осуществляется в следующем формате:
<имя объекта>.<имя свойства>
Например: My Component.Width:= 35;
Вышеприведенная строка устанавливает ширину (Width) компонента в значение 35. Если свойство Width компонента еще не было равно 35 к моменту выполнения данной строки программы, то можно увидеть, как компонент визуально изменит свою ширину.
Иногда свойство объекта является в свою очередь объектом. Тогда в обращении к этому свойству указывается через точки вся цепочка предшествующих объектов. Например, метки имеют свойство Font — шрифт, которое в свою очередь является объектом. У этого объекта имеется множество свойств, в частности, свойство Color — цвет шрифта. Чтобы сослаться на цвет шрифта метки Label1, надо написать Label1.Font.Color. Это означает: свойство Color о бъекта Font, принадлежащего объекту Label1. Например, оператор
Label1.Font.Color:=clRed
сделает надпись метки Label1 красной.
События
Список событий для объекта, на которые он реагирует, можно посмотреть в Инспекторе Объектов на странице События (см. рис.1).
Событие – это то, что происходит во время выполнения программы. Каждое событие имеет имя. Например, щелчок кнопки “мыши” – событие OnClick, создание Формы – OnCreate. Наиболее часто применяемые события представлены в таблице 1.
Для создания обработчика события программисту необходимо раскрыть список компонентов в верхней части окна Инспектора Объектов и выбрать необходимый компонент. Затем, на странице События Инспектора Объектов, нажатием левой клавиши мыши выбрать название обработчика и дважды щелкнуть по его правой (белой) части. В ответ Lazarus активизирует окно Редактора Кода модуля и покажет заготовку процедуры обработки выбранного события. Для каждого обрабатываемого события в тексте модуля организуется процедура (procedure), между ключевыми словами begin и end которой программист на языке Object Pascal записывает требуемый алгоритм обработки события.
Таблица 1- Часто применяемые события
Событие | Описание события |
OnActivate | Возникает при активизации Формы |
OnCreate | Возникает при создании Формы. В обработчике данного события следует задавать действия, которые должны происходить в момент создания Формы, например установка начальных значений |
OnClick | Возникает при нажатии кнопки мыши в области компонента. |
OnDblClick | Возникает при двойном нажатии кнопки мыши в области компонента |
OnKeyPress | Возникает при нажатии клавиши на клавиатуре. Параметр Key имеет тип Charи содержит ASCII-код нажатой клавиши (клавиша Enter клавиатуры имеет код #13, клавиша Esc - #27 и т.д.). Обычно это событие используется в том случае, когда необходима реакция на нажатие одной из клавиш |
OnKeyDown | Возникает при нажатии клавиши на клавиатуре. Обработчик этого события получает информацию о нажатой клавише и состоянии клавиш Shift, Alt и Ctrl, а также о нажатой кнопке мыши |
Структурные операторы
В языке Pascal имеются две реализации одной из основных алгоритмических структур – ветвления – условный оператор (if) и оператор выбора (case).
1. Условный оператор if…then…else
Условный оператор if служит для организации процесса вычислений в зависимости от какого-либо логического условия.
Оператор if может принимать две формы записи (полную и короткую):
· if <условие> then <оператор1> else <оператор2>;
· if <условие> then <оператор>;
Оператор условия if выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисления получается значение булевского типа. В первом случае, если значение выражения есть True (истина), выполняется <оператор1>, указанный после слова then. Если результат вычисления выражения в условии есть False (ложь), то выполняется <оператор2>. Во втором случае — если результат выражения Тгuе, выполняется <оператор>, если False — выполняется оператор, следующий сразу за оператором if. По правилам каждая из ветвей может содержать либо один выполняемый оператор, либо несколько, объединенных в составной оператор. Точка с запятой перед else не ставится.
Операторы if могут быть вложенными. Формат записи:
if <условие1> then
if <условие2> then <оператор1>
else <оператор2>;
При вложениях всегда действует правило: служебное слово else всегда связывается с ближайшим по тексту служебным словом if, которое еще не связано со служебным словом else.
2. Составной оператор begin…end
Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end. Формат:
begin
<оператор 1>;
<оператор 2>;
…
<оператор N>;
end;
Составной оператор воспринимается как единое целое и может находиться в любом месте программы, где синтаксис языка допускает наличие оператора.
3. Оператор выбора case…of…end
Если один оператор if может обеспечить выбор из двух альтернатив, то оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором (selection — выбор альтернативы), и списка параметров, каждому из которых предшествует список констант выбора (список может состоять и из одной константы).
Формат:
case <выражение-селектор> of
<список1>: <оператор1>;
<список2>: <оператор2>;
…
<списокN>: <операторN>;
[else <оператор0>;]
end;
Здесь <выражение-селектор> - это выражение порядкового типа, в зависимости от значения которого принимается решение;
<список1>.. <списокN> - значения, с которыми сравнивается значение <селектора>;
<оператор1>,..., <операторN> - операторы (возможно составные), из которых выполняется тот, с константой которого происходит первое совпадение значения <селектора>, <оператор0> выполнится, если значение ключа не совпадает ни с одной из констант <список1>.. <списокN>.
Ветвь else не обязательна и, в отличие от оператора if, перед ней можно ставить точку с запятой. Если для нескольких значений <селектора> действия совпадают, то эти константы можно перечислить через запятую перед двоеточием или даже задать диапазон значений (нижняя граница.. верхняя граница).
Компонент TForm
Форма (объект типа TForm) является основой программы. Свойства формы определяют вид окна программы.
Основные свойства формы
Свойство | Описание |
Name | Имя формы. В программе имя формы используется для управления формой и доступа к компонентам формы. |
Caption | Текст заголовка окна. |
Top | Расстояние от верхней границы формы до верхней границы экрана. |
Left | Расстояние от левой границы формы до левой границы экрана. |
Width, Height | Ширина, высота формы. |
Icon | Значок в заголовке диалогового окна, обозначающий кнопку вывода системного меню. |
Color | Цвет фона. |
Font | Шрифт. Шрифт, используемый по «умолчанию» для компонентов, находящимися на поверхности формы. |
Canvas | Поверхность, на которую можно вывести графику. |