Управление состоянием команд

Компонент ActionList имеет удобный механизм управления состоянием команд (например, доступна/недоступна). После выполнения очередной команды и во время простоя программы в компоненте возникает событие OnUpdate. Реакцией на это событие может быть изменение состояния отдельных команд, например переключение в них свойства Enabled. Напомним, что сейчас для этих целей используется метод EnableCommand, вызываемый при открытии и закрытии файла. Избавимся от него.

Шаг 93. Выделите на форме компонент ActionList, и в окне свойств на вкладке Events отыщите событие OnExecute. Двойным щелчком мыши создайте обработчик:

procedure TPictureForm.ActionListUpdate(Action: TBasicAction; var Handled: Boolean); var NonEmpty: Boolean; begin NonEmpty:= Image.Picture.Graphic <> nil; SaveAsAction.Enabled:= NonEmpty; CloseMenuItem.Enabled:= NonEmpty; HalfSizeAction.Enabled:= NonEmpty; NormalSizeAction.Enabled:= NonEmpty; DoubleSizeAction.Enabled:= NonEmpty; Handled:= True; end;

Шаг 94. Удалите метод EnableCommands и обращения к нему из методов OpenActionExecute и CloseActionExecute. Вот, что должно получиться:

procedure TPictureForm.OpenActionExecute(Sender: TObject); begin if OpenDialog.Execute then begin Image.Picture.LoadFromFile(OpenDialog.FileName); NormalSizeAction.Execute; end; UpdateStatusBar; end;   procedure TPictureForm.CloseActionExecute(Sender: TObject); begin with Image do begin Picture.Graphic:= nil; Width:= 0; Height:= 0; end; NormalSizeAction.Execute; UpdateStatusBar; end;

Шаг 95. Программа полностью готова, выполните компиляцию и запустите ее. Наслаждайтесь результатами своего труда, просматривая рисунки на жестком диске (рисунок 8.92).


Рисунок 8.92. Окончательный вариант программы для просмотра графических файлов

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

Итоги

В этой главе вы в деталях изучили важнейшие средства управления программой - главное и контекстное меню, строку состояния, панель инструментов. Вы умеете их создать и должным образом настроить. Вы способны создать "хребет" любой программы, что и доказали на деле, разработав весьма неплохое приложение для просмотра картинок, которое наверняка пригодиться в практической работе. Храбро вставляйте его в свои проекты и пользуйтесь, постигайте мир графических изображений через окно вашего персонального вьюера. После столь серьезных успехов рекомендуем вам немного передохнуть и перейти к другой важной проблеме - организации диалога между программой и человеком.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: