Теория и практика объектно-ориентированного программирования. Ноткин А.М. - 56 стр.

UptoLike

Составители: 

57
Обработка команд пользователя. Обработчик событий диа-
логового окна обрабатывает следующие стандартные команды cmClose,
cmCancel, cmOk, cmYes, cmNo, cmResize. Чтобы заставить его реагировать
на команды пользователя, нужно перекрыть стандартный обработчик со-
бытий.
PDialogWin=^TDialogWin;
TDialogWin=object(TDialog)
Constructor Init(R:TRect;ATitle:TTitleStr);
Procedure HandleEvent(var Event:TEvent);virtual; {перекрыли обра-
ботчик событий}
end;
var PD: PDialogWin;
В новом методе сначала вызывается стандартный обработчик, а за-
тем анализируется событие; если оно не очищено
и содержит команду, то
надо заставить обработчик выполнить процедуру, связанную с этой коман-
дой. Например, так:
Procedure TDialogWin . HandleEvent;
Begin {HandleEvent}
inherited HandleEvent(Event);
with Event do
if What = evCommand then
case Command of
cmContinue :ViewNext;
. . . . . . . . . . . . . .
end;
ClearEvent(Event);
End;{HandleEvent}
Другие элементы управления. Модуль Dialogs предоставляет
дополнительные возможности. Они используются аналогичным способом:
создается новый экземпляр объекта, вставляется в диалоговое окно и соот-
ветствующие данные включаются в запись данных.
Кластеры кнопок представляют
собой прямоугольные видимые
элементы, имитирующие несколько зависимых или независимых кнопок.
Для создания и использования кластера предусмотрен абстрактный объект
TCluster и его потомки TRadioButtons (для создания независимых кно-
пок) и TCheckBoxes (для создания зависимых кнопок).
Просмотр списка (TListViewer) выводит список в одну или не-
сколько колонок и пользователь может выбрать
элемент из этого списка.
                                   57

      •      Обработка команд пользователя. Обработчик событий диа-
логового окна обрабатывает следующие стандартные команды cmClose,
cmCancel, cmOk, cmYes, cmNo, cmResize. Чтобы заставить его реагировать
на команды пользователя, нужно перекрыть стандартный обработчик со-
бытий.
      PDialogWin=^TDialogWin;
      TDialogWin=object(TDialog)
      Constructor Init(R:TRect;ATitle:TTitleStr);
      Procedure HandleEvent(var Event:TEvent);virtual; {перекрыли обра-
ботчик событий}
      end;
      var PD: PDialogWin;
      В новом методе сначала вызывается стандартный обработчик, а за-
тем анализируется событие; если оно не очищено и содержит команду, то
надо заставить обработчик выполнить процедуру, связанную с этой коман-
дой. Например, так:
      Procedure TDialogWin . HandleEvent;
      Begin {HandleEvent}
      inherited HandleEvent(Event);
      with Event do
       if What = evCommand then
       case Command of
       cmContinue :ViewNext;
      ..............
       end;
      ClearEvent(Event);
      End;{HandleEvent}

      •    Другие элементы управления. Модуль Dialogs предоставляет
дополнительные возможности. Они используются аналогичным способом:
создается новый экземпляр объекта, вставляется в диалоговое окно и соот-
ветствующие данные включаются в запись данных.
      Кластеры кнопок представляют собой прямоугольные видимые
элементы, имитирующие несколько зависимых или независимых кнопок.
Для создания и использования кластера предусмотрен абстрактный объект
TCluster и его потомки TRadioButtons (для создания независимых кно-
пок) и TCheckBoxes (для создания зависимых кнопок).
      Просмотр списка (TListViewer) − выводит список в одну или не-
сколько колонок и пользователь может выбрать элемент из этого списка.