Материал: Мансуров. Основы программирования в среде Lazarus. 2010

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

6.2 Различия между консольными и графическими приложениями

____________________________________________________________________

Windows), могут быть без изменения скомпилированы на другой платформе

(например, OS X или Linux). При этом следует помнить, что графический ин-

терфейс в различных операционных системах реализован совершенно по-

другому. Так, в Windows GUI основан на функциях WinAPI, а в Linux на биб-

лиотеках GTK-2 или QT.

6.2. Различия между консольными и графическими приложениями

Итак, приложение с GUI отличается от консольного наличием графическо-

го интерфейса (напомню, что консольное приложение использует экран в тек-

стовом режиме, а приложение с GUI в графическом режиме). Но между кон-

сольным и GUI-приложением существует еще одно, более существенное разли-

чие. Консольное приложение, получив управление, далее полностью само кон-

тролирует вычислительный процесс. По мере необходимости запрашивает дан-

ные для работы (оператор read), выводит результаты вычислений на экран (опе-

ратор writeln) и завершает работу по достижению последнего оператора про-

граммы.

Совершенно по-другому работают GUI-программы. Они реагируют на

события. Событие может вызвать действие пользователя, например, нажатие мышью на какую-нибудь кнопку в приложении. Событие может вызвать опера-

ционная система или же событие может породить само приложение. Все собы-

тия отслеживаются операционной системой, которая формирует на каждый тип события соответствующее сообщение. Это сообщение передается в приложе-

ние, на которое приложение должно реагировать в соответствии с алгоритмом своей работы. Т.е. GUI-приложение должно уметь обрабатывать сообщения операционной системы и уметь генерировать и посылать свои собственные со-

общения.

Приложение, после запуска, создает свое окно и запускает так называемый

466

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

цикл обработки сообщений. Грубо говоря, оно ждет сообщений от операцион-

ной системы. Роль программиста заключается в разработке кода по обработке сообщений при возникновении какого-либо события.

Сообщения передаются операционной системой именно тому приложе-

нию, которому оно предназначено. Таким образом реализуется мультипро-

граммность операционной системы, т.е. возможность одновременно запускать

иработать с несколькими приложениями.

ВLazarus обработка сообщений заменена на обработку событий. При этом

Lazarus берет на себя всю рутинную работу по расшифровке многочисленных типов сообщений и их не менее многочисленных параметров. Таким образом,

работа программиста значительно облегчается. Программисту достаточно вы-

брать те события, на которые будет реагировать его приложение и написать процедуру по обработке соответствующего события.

В таблице 6.1 приведены некоторые события и условия, при которых они возникают.

Исходя из таблицы 6.1. для некоторого окна может быть создано девять процедур для обработки событий. Например, процедура по обработке события

OnCreate (создание окна) может в это время выполнить некоторые подгото-

вительные операции, такие как открытие файлов, инициализацию некоторых переменных и т.д.

Разумеется, не обязательно писать обработчики событий для всех возмож-

ных событий. В этом случае, если отсутствует обработчик какого-нибудь собы-

тия, то это событие просто не будет обработано вашим приложением. Напри-

мер, если в приложении отсутствует обработчик события OnKeyDown, то на нажатие клавиш на клавиатуре приложение будет реагировать стандартным об-

разом, например при нажатии Alt+F4 окно приложения будет закрыто.

467

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Таблица 6.1

№ п/п

Событие

 

Когда возникает

 

 

 

 

 

 

1.

OnCreate

Событие

возникает

при

 

 

создании

окна

и только

 

 

один раз.

 

 

 

2.

OnShow

Это событие генерируется,

 

 

когда окно станет види-

 

 

мым.

 

 

 

 

3.

OnActivate

Это событие генерируется,

 

 

когда окно становится ак-

 

 

тивным, то есть когда по-

 

 

лучает фокус ввода.

 

4.

OnPaint

Это

событие

возникает

 

 

каждый раз при перери-

 

 

совке окна.

 

 

5.

OnReSize

Это

событие

возникает

 

 

каждый раз при изменении

 

 

размеров окна.

 

 

6.

OnClose

Событие возникает при за-

 

 

крытии окна.

 

 

7.

OnKeyDown

Событие

наступает

при

 

 

нажатии любой клавиши.

8.

OnKeyPress

Событие

наступает

при

 

 

нажатии клавиши символа.

9.

OnKeyUp

Событие

возникает

при

 

 

отпускании любой клави-

 

 

ши.

 

 

 

 

6.3. Визуальное программирование в среде Lazarus

6.3.1 Создание графического приложения

Для создания графического приложения можно в главном меню открыть пункт Файл-> Создать. Во вкладке Проект выберите пункт Приложение, рис.

6.7.

468

Глава 6 Программирование приложений с графическим интерфейсом

____________________________________________________________________

Рис. 6.7. Создание графического приложения

Нажмите ОК.

Второй способ. Выберите пункт меню Проект, Создать проект… (рис. 6.8).

Рис. 6.8. Меню "Проект"

Выберите Приложение и нажмите ОК, рис. 6.9

469

6.3 Визуальное программирование в среде Lazarus

____________________________________________________________________

Рис. 6.9. Другой способ создания графического приложения

Кроме того, если в настройках окружения (Окружение-> Настройки ок-

ружения-> Файлы) снять галочку "Открывать последний проект при запуске" (рис. 6.10.), то Lazarus автоматически будет создавать новый проект GUI-

приложения при каждом запуске.

Рис. 6.10. Окно "Параметры IDE"

470

Смотрите также:

1 — пак
11 Горм +
113
14
1433
1511
1632
199
204
2714