Турбо Паскаль 6.0



         

Запись события.


До этого момента в этой главе обсуждались теоретические аспекты события. Мы говорили о том, как различные виды событий (мышка, клавиатура, сообщения и "пустые") определяются в поле What события. Мы так же кратко обсудили использование поля Command для событий-команд. Теперь самое время обсудить как выглядит запись события. Модуль DRIVERS.TPU в Turbo Vision определяет тип TEvent как запись с вариантами:

TEvent = record What: Word; case Word of evNothing: (); evMouse: ( Buttons: Byte; Double: Boolean; Where: TPoint); evKeyDown: ( case Integer of 0: (KeyCode: Word); 1: (CharCode: Char; ScanCode: Byte)); evMessage: ( Command: Word; case Word of 0: (InfoPtr: Pointer); 1: (InfoLong: Longint); 2: (InfoWord: Word); 3: (InfoInt: Integer); 4: (InfoByte: Byte); 5: (InfoChar: Char)); end;

Эта запись с вариантами просматривается по значению поля What. Так, если TEvent.What - это evMouseDown, то TEvent содержит:

Buttons: Byte; Double: Boolean; Where: TPoint;

Если TEvent.What - это evKeyDown, компилятор позволит Вам обратиться к данным как

KeyCode: Word;

или как

CharCode: Char; ScanCode: Byte;

Последний вариант в записи события может хранить значение типа Pointer, LongInt, Word, Integer, Byte или Char. Это поле используется в Turbo Vision различными способами. Видимые элементы могут сами генерировать события и посылать их другим видимым элементам. В этом случае они часто используют поле InfoPtr. Взаимодействие видимых элементов и поля InfoPtr описаны в разделе "Взаимодействие видимых элементов".




Содержание  Назад  Вперед