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



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

  • Июль
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31