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

Константы cmXXXX Views


================================================================= Функция Эти константы представляют предопределенные команды Turbo Vision. Они передаются в поле TEvent.Command событий evMessage(evCommand и evBroadcast) и заставляют методы HandleEvent стандартных объектов Turbo Vision выполнять различные задачи. Turbo Vision резервирует значения констант от 0 до 99 и от 256 до 999 для своих целей. Обработчики событий стандартных объектов Turbo Vision реагируют на эти предопределенные константы. Прграммисты могут определить свои собственные константы в диапазонах от 100 до 255 и от 1,000 до 65,535 без конфликтов с предопределенными командами.

Значения Следующие стандартные команды определены в Turbo Vision и используются стандартными объектами Turbo Vision:

Таблица 14.3. Коды стандартных команд.

------------------------------------------------------------------ Команда Значение Назначение ------------------------------------------------------------------ cmValid 0 Передается в TView.Valid для проверки вновь созданных образцов видимых элементов cmQuit 1 Заставляет TProgram.HandleEvent вызывать EndModal (cmQuit), завершая программу. Строка статуса или одно из меню обычно содержат элемент, который переводит kbAltX и cmQuit. cmError 2 Не обрабатывается никаким объектом. Может быть использована для представления нереализованных или неподдерживаемых команд. cmMenu 3 Заставляет TMenuView.HandleEvent вызывать ExecView для процесса выбора меню, в результате чего может быть сгенерирована новая команда с помощью PutEvent. cmClose 4 Обрабатывается TWindow.HandleEvent, если поле InfoPtr записи события установлено в nil или указывает на окно. Если окно модальное, то посредством PutEvent генерируется evCommand со значением из cmCancel. Если окно немодальное, то то вызывается метод Close при условии что окно поддерживает закрытие (смотри флаг wfClose). Отметка на закрывающей кнопке окна генерирует событие evCommand с Command из cmClose и InfoPtr, который указывает на окно. Строка статуса или одно из меню обычно содержит элемент, который переводит kbAltF3 в cmClose. cmZoom 5 Заставляет TWindow.HandleEvent вызывать TWindow.Zoom, если окно поддерживает масштабирование (смотри флаг wfZoom) и если поле InfoPtr записи события установлено в nil или указывает на окно. Отметка на кнопке масштабирования окна или двойная отметка на полосе заголовка окна генерирует событие evCommand с Command из cmZoom и InfoPtr, который указывает на окно. Строка статуса или одно из меню обычно содержит элемент, который переводит kbF5 в cmZoom. cmResize 6 Заставляет TWindow.HandleEvent вызывать TView.DragView, если окно поддерживает изменение размеров (смотри флаги wfMove и wfGrow). Строка статуса или одно из меню обычно содержит элемент, который переводит kbCtrlF5 в cmResize. cmNext 7 Заставляет TDeskTop.HandleEvent сдвигать последнее окно на панели экрана на передний план. Строка статуса или одно из меню обычно содержит элемент, который переводит kbF6 в cmNext.


cmPrev 8 Заставляет TDeskTop. HandleEvent сдвигать первое окно на панели экрана на самый задний план. Строка статуса или одно из меню обычно содержит элемент, который переводит kbShiftF6 в cmPrev. ------------------------------------------------------------------

Следующие стандартные команды используются для определения поведения по умолчанию объектов диалогового окна:

Таблица 14.4. Стандартные команды диалогового окна.

------------------------------------------------------------------ Команда Значение Назначение ------------------------------------------------------------------ cmOK 10 Была нажата кнопка OK cmCancel 11 Диалоговое окно было отменено кнопкой Cancel, закрывающей кнопкой или клавишей Enter cmYes 12 Была нажата кнопка Yes cmNo 13 Была нажата кнопка No cmDefault 14 Была нажата кнопка по умолчанию ------------------------------------------------------------------

События с командами cmOK, cmCancel, cmYes или cmNo завершают модальный диалог TDialog.HandleEvent и возвращают значение команды (вызывая EndModal). Модальный диалог обычно содержит по крайней мере один TButton с одним из этих значений команд. TDialog.HandleEvent будет генерировать команду-событие cmCancel в ответ на событие от клавиатуры kbEsc. Команда cmDefault заставляет TButton.HandleEvent для умалчиваемой кнопки (см. флаг bfDefault) симулировать нажатие кнопки. TDialog.HandleEvent будет генерировать событие команды cmDefault в ответ на событие клавиатуры kbEnter. Определены следующие стандартные команды для использования стандартными видимыми элементами:

Таблица 14.5. Стандартные команды видимых элементов.

------------------------------------------------------------------ Команда Значение Назначение ------------------------------------------------------------------ cmReceivedFocus 50 TView.SetState использует функцию Message cmReleasedFocus 51 для передачи события evBroadcast с одним из этих значений в свой TView.Owner, как только sfFocused изменяется. InfoPtr события указывает на сам видимый элемент. Это информирует любой равный видимый элемент, что видимый элемент получил или освободил активность и что они должны корректировать себя соответственно. Объект Tlabel, например, реагирует на эти команды, включая или выключая свою подсветку. cmCommandSetChanged 52 Метод TProgram.Idle генерирует событие evBroadcast как только он обнаружит изменение в текущем наборе команд (вызывая методы EnableCommands, DesableCommands или SetCommands для TView). Общее сообщение cmCommandSetChanged посылается в HandleEvent каждого видимого элемента иерархии (если только их TView.EventMask специфически не маскируют события evBroadcast). Если изменения в наборе команд затрагивают появление видимого элемента, он должен реагировать на cmCommandSetChanged своей перерисовкой. Объекты TBut ton, TMenuView и TStatusLine, например, реагируют на эту команду, перерисовывая себя. cmScrollBarChanged 53 TScrollBar использует функцию Message для cmScrollBarClicked 54 передачи события evBroadcast с одним из этих значений в свой TView.Owner, как только мышка отмечает на полосе скроллинга. InfoPtr события указывает на полосу скроллинга. Общие сообщения создаются любыми равными видимыми элементами, управляемыми полосой скроллинга, такими как объекты TScroller и TListViewer. cmSelectWindowNum 55 Заставляет TWiondow.HandleEvent вызывать TView.Select, если InfoInt записи события соответствует TWindow.Number. TProgram.HandleEvent реагирует на события от клавиатуры от Alt-1 до Alt-9 общим сообщением cmSelectWindowNum с InfoInt от 1 до 9. cmRecordHistory 60 Заставляет объект THistory "записывать" текущее содержимое объекта TInputLine. TButton посылает общее сообщение cmRecordHistory своему владельцу, когда он выбран, в результате, заставляя "записывать" все объекты THistory в диалоговом окне. ------------------------------------------------------------------

См. также TView.HandleEvent, TCommandSet


Содержание раздела