TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

События

 
Природа событий
Виды событий
События от мыши
События от клавиатуры
Сообщения
Пустые сообщения
Маршрутизация событий
Позиционированные события
Общие события
Фаза событий
Команды
Преобразование активных событий в команды
Запрещение и разрешение команд
Модификация и обработка событий
События, определенные пользователем
Маскирование и очистка событий
Перекрытие HandleEvent
Перекрытие GetEvent
Неиспользованное время
Ненужные события
Взаимодействие видимых элементов
Контекстная помощь

Как уже неоднократно подчеркивалось, программы, работающие в среде Turbo Vision,- это программы, управляемые событиями. В этой главе подробно рассматривается механизм событий и способы их использования.

 

Природа событий

События представляют собой небольшие пакеты информации, которыми обмениваются видимые элементы и которые создаются средой Turbo Vision в ответ на те или иные действия пользователя. Нажатие на любую клавишу или манипуляция мышью порождает событие, которое передается по цепочке активности видимых элементов до тех пор, пока не найдется элемент, знающий как обработать это событие. Может оказаться, что в программе нет ни одного элемента, способного обработать событие. В этом случае обычно ничего не происходит, по умолчанию Turbo Vision просто удаляет ненужное событие, однако программист может предусмотреть свою реакцию в этой ситуации.

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

Технически событие представляет собой обычную для Турбо Паскаля запись, имеющую следующую структуру:

type

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: Longlnt)

2: (InfoWord: Word);

3: (Infolnt : Integer);

4: (InfoByte: Byte);

5: (InfoChar: Char));

end;

Ядром события является поле What, которое описывает тип события. Оставшаяся часть записи содержит дополнительную информацию, например, код нажатой клавиши или координаты точки, в которой была нажата кнопка мыши.

 

 

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz