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

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

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

____________________________________________________________________

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

понент с нужным действием, достаточно раскрыть в Инспекторе объектов спи-

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

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

вающая подсказка.

Поместите на форму компоненты TActionList и TImageList. Занеси-

те в TImageList несколько пиктограмм. В свойстве Images компонента

TActionList укажите имя компонента TImageList. Дважды щелкните по компоненту TActionList на форме. Появится редактор списка действий. Для того чтобы добавить новое действие вы можете:

Нажать на кнопку с изображением знака плюс. В правом окне редактора появится новое действие со стандартным именем Action1;

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

брать "Новое действие" или "Новое стандартное действие";

Рис. 6.97. Редактор списка действий

741

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

____________________________________________________________________

В редакторе списка действий щелкните правой клавишей мыши. Появит-

ся контекстное меню, рис. 6.98;

Рис. 6.98. Добавление нового действия

И наконец, вы можете использовать клавишу Ins для ввода нового действия или нажать Ctrl+Ins для ввода нового стандартного действия.

Теперь, что такое стандартное действие. Разработчиками Lazarus созданы специальные классы, реализующие типовые, наиболее часто встречающиеся действия, так что для них даже не требуется писать обработчики! Если вы вы-

берете "Новое стандартное действие", появится окно со списком стандартных действий, рис. 6.99.

На рисунке вы видите, что стандартные действия разбиты на категории.

Там же вы видите имена соответствующих классов. Все остальные действия (по терминологии Lazarus unknown – неизвестные) относятся к классу TAction.

Но лучше говорить просто действия или нестандартные действия.

742

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

____________________________________________________________________

Рис. 6.99. Стандартные действия

Выберем, например стандартное действие TFileOpen, рис. 6.100, 6.101.

Рис. 6.100. Свойства

Рис. 6.101. Добавление стандартного действия

743

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

____________________________________________________________________

Мы видим, что в Инспекторе объектов автоматически заполнились свойст-

ва Caption, Hint, ShortCut. Задайте необходимое значение свойству

ImageIndex. В редакторе списка действий рядом с именем действия тут же появится соответствующее изображение, рис. 6.102.

Рис. 6.102. Добавление пиктограммы

Раскрыв свойство Dialog, вы можете настроить свойства стандартного диалога открытия файла. При этом обратите внимание, мы на форму компонент

TOpenDialog не переносили! Он уже реализован в классе TFileOpen.

При добавлении нестандартного действия вам необходимо будет заполнить свойства этого действия, в частности, упомянутые выше свойства Caption,

Hint, ShortCut. И обязательно написать обработчик OnExecute, реали-

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

ровал действие, например, нажал на кнопку. Кроме этого события для каждого действия определены еще два события OnHint и OnUpdate. Событие OnHint

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

разом:

744

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

____________________________________________________________________

procedure FileOpen1Hint(var HintStr: string;

var CanShow: Boolean);

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

HintStr.

Событие OnUpdate возникает, когда пользователь "ничего не делает". Вы можете использовать это событие для выполнения каких-то подготовительных операций.

В заключение отметим, что в стандартных действиях диалогов, требующих выбора (категории Search, Dialog, File) отсутствуют события

OnExecute и OnUpdate. Вместо них введены события BeforeExecute

(возникает перед вызовом диалога), OnAccept (возникает, если пользователь произвел выбор) и OnCancel (возникает, если пользователь в диалоге выбор не произвел).

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

Fname:= FileOpen1.Dialog.FileName;

Напишем теперь программу метода наименьших квадратов с применением механизма действий, заодно определим порядок или методику разработки та-

ких приложений.

Прежде всего, необходимо продумать и определить список тех действий

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

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

вателю возможность в диалоге открыть файл с экспериментальными данными.

Назовем это действие "Открыть файл". Заодно отмечаем для себя, что проще всего для этого использовать стандартное действие. Второе действие - выпол-

745

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

11 Горм +
113
14
1433
1511
1632
199
204
2N4264RE
3773