Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
45
Добавлен:
27.04.2021
Размер:
6.3 Mб
Скачать

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

____________________________________________________________________

крыть подменю надо щелкнуть по соответствующему пункту горизонтального меню. Каждый пункт меню содержит либо команды, с помощью которых мож-

но выполнить какие – то действия, либо режимы (опции), которые можно акти-

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

ню (вложенные меню).

Найдите похожие элементы в окне файлового менеджера Dolphin в Linux, рис. 6.2.

Рис. 6.2. Окно файлового менеджера Dolphin

Диалоговые окна

Для выполнения некоторых команд необходимо задать один или несколько параметров. Для этого используются диалоговые окна. Диалоговые окна со-

держат специальные области (называемые элементами управления или пара-

метрами). Значения параметров необходимо выбрать из некоторого списка или ввести с клавиатуры.

461

6.1 Элементы графического интерфейса

____________________________________________________________________

Типы параметров диалоговых окон.

Поле списка Поле ввода Поле предварительного просмотра Кнопки команд Рис. 6.3 Диалоговое окно открытия документа

Кнопки команд – используются для выполнения действий. Все диалого-

вые окна обязательно имеют кнопки ОК и Отмена. При нажатии кнопки ОК диалог завершается и команда с выбранными вами параметрами выполняется.

При нажатии кнопки Отмена окно диалога просто закрывается и команда не исполняется. Наличие остальных кнопок зависит от вида команды.

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

Поле списка – требуемый параметр выбирается из списка. Выбор осуще-

ствляется простым щелчком по нужному элементу списка. При необходимости можно воспользоваться линейкой прокрутки.

Найдите на рис. 6.4. похожие элементы и параметры диалоговых окон в операционной системе Linux.

462

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

____________________________________________________________________

Рис. 6.4. Диалоговое окно открытия файла в Linux

Вкладки – некоторые команды используют очень большое количество раз-

личных параметров. В этом случае диалоговые окна оформляются в виде вкла-

док или подшивок. Чтобы выбрать некоторую группу параметров нужно на-

жать на требуемую вкладку. Рисунок 6.5.

Вкладки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Флажки

Переключатели

Раскрывающийся список

 

 

 

 

 

 

 

Рис. 6.5. Диалоговое окно с вкладками

463

6.1 Элементы графического интерфейса

____________________________________________________________________

На рис. 6.6 показано диалоговое окно с вкладками для текстового процес-

сора OpenOffice.org

Рис. 6.6. Диалоговое окно с вкладками для текстового процессора OpenOffice.org

Раскрывающийся список – используется в целях экономии места на экра-

не. Чтобы раскрыть этот список необходимо нажать на кнопку с треугольни-

ком. В дальнейшем работа с этим списком полностью аналогична работе с обычным списком.

Флажок (индикатор) – это поле может иметь только два значения: вклю-

чен или выключен. С помощью флажков можно выбрать (включить) некоторые режимы или какие-то опции.

Чтобы включить или отключить флажок нужно просто щелкнуть по флаж-

ку. Соглашения здесь таковы:

464

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

____________________________________________________________________

-выключено

-включено

Если имеются несколько флажков (индикаторов), то каждый из них может быть включен или выключен независимо от других флажков.

Переключатель – говорят еще радиокнопка, также имеет только два зна-

чения: включен/выключен. Имеет вид кружочка с точкой или без. Если пере-

ключатель включен, то он отмечается кружочком с точкой внутри. Если име-

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

чатель. Таким образом, этот механизм позволяет выбрать только один из воз-

можных режимов (опций). В этом различие переключателей от флажков.

Также в литературе вы можете встретить понятия "группа независимых переключателей" – это в нашей терминологии флажки и "группа зависимых пе-

реключателей" – по-нашему просто переключатели.

Как видим, стандарты GUI для различных операционных систем и плат-

форм несколько различаются, но в целом намечается тенденция к их сближе-

нию и унификации.

Все рассмотренные элементы графического интерфейса, а также множест-

во других можно реализовать в среде Lazarus с помощью специальной библио-

теки LCL (Lazarus Component Library). Эта библиотека предоставляет програм-

мисту целую палитру так называемых визуальных компонентов, с помощью ко-

торых и можно разрабатывать интерфейс программы. При этом программист освобождается от мелких рутинных операций и может сосредоточиться именно на проектировании интерфейса своей будущей программы. Для этого он выби-

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

ные нужды и таким образом строит внешний вид (интерфейс) своей програм-

мы. При этом он еще до компиляции своего приложения видит результаты про-

ектирования интерфейса пользователя.

Поскольку элементы библиотеки LCL доступны для всех поддерживаемых платформ, то GUI-приложения созданные на одной платформе (например,

465

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