RichEditl.Lines.LoadFromFile(FileOpenl.Dialog.FileName);
end;
procedure TForml. FileSaveAslAccept (Sender: TObject) ;
begin
RichEditl.Lines.SaveToFile(FileSaveAsl.Dialog.FileName);
end;
Программирование в Delphi 7

Рис. 8.4. Окно выбора стандартных действий

С точки зрения программирования стандартное действие - это класс-потомок TCustornAction. Классы действий описаны в трех модулях: более распространенные в stdActns, менее - в ExtActns, действия с наборами данных содержатся в DBActns. Наконец, два действия, работающие со списками, - TStaticListAction И TVirtualLitAction - описаны В (ЛДеЛЬНОМ Модуле ListActns.

Для выполнения ряда стандартных действий нужно определить понятие "цели" действия (Action Target). Под целью понимается компонент, в отношении которого будет совершаться данное действие. Так, операции редактирования могут выполняться, когда на форме активен текстовый элемент управления (TEdit, тмето И Т. П.). У любого ДеЙСТВИЯ (потомка TBasicAction) есть три метода:

functionHandlesTarget(Target: TObject) : Boolean;
virtual;
procedure UpdateTarget (Target: TObject);
virtual;
procedure ExecuteTarget (Target: TObject);
virtual;

Метод HandlesTarget проверяет, применимо ли действие к цели Target. Если да, то действие производится вызовом метода ExecuteTarget. Если нет, поиск подходящей цели продолжается.

Цель в Delphi 7 определяется по следующему правилу:

□ первым кандидатом является активный элемент управления на форме (СЮЙСТВО ActiveControl);
О еСЛИ такового Нет ИЛИ ОН не ЯВЛЯеТСЯ ПОДХОДЯЩИМ (меТОД HandiesTarget вернул значение False), целью становится текущая форма, получившая сигнал о действии;

□ если и она не подходит, происходит рекурсивный перебор всех компонентов на форме в поисках первого подходящего.

В ряде случаев вы можете произвести действие над желаемым компонентом, вызвав метод ExecuteTarget и передав в него в качестве параметра этот компонент.

(_Примечание ^

Стандартные действия редактирования, чьи имена начинаются с TEdit, и поиска (TSearch. ..) применимы только к потомкам компонента TCustomEdit. Стандартные действия расширенного редактирования, имена которых начинаются с TRichEdit, применимы только к потомкам TCustomRichEdit. Оконные стандартные действия (упорядочивание, смена, закрытие дочерних окон; имена начинаются с TWindow) применимы только к формам многодокументного интерфейса, чье свойство FormStyleустановлено в fsMDIForm (рис. 8.4).

Многие классы стандартных действий не требуют элемента управления - цели. Так устроены все действия, вызывающие стандартные диалоговые окна (выбор файла, цвета, шрифта, настройка принтера и т. п.). Чтобы отреагировать на такое действие, нужно написать обработчики следующих событий:

property Bef oreExecute: TNotifyEvent;
property QnAccept: TNotifyEvent;
property OnCancel: TNotifyEvent;

Первое возникает до показа диалога, второе - после нажатия пользователем кнопки ОК, третье - после нажатия Cancel.

Поскольку диалоги входят в действия в качестве дочерних компонентов, вы можете реагировать и на все "дочерние" события, которые происходят в соответствующем диалоге (ОпЗпою, ОпСапСЬэе, ОпСЬэе И Т. П.)


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Июнь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс