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

Флаг State и SetState.


Видимый элемент так же содержит флаг State, который хранит различные аспекты видимого элемента, такие как его видимость, запрещение и возможность перемещения. Биты флага State определены на рис. 4.17.

Рис.4.17. Биты флага State.

+------ TView.State Flags ------+ msb lsb +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ +=+=+=+=+++=+++++++++++++++++++++ | | | | | | | | | | +--- sfVisible = $0001 | | | | | | | | | +----- sfCursorVis = $0002 | | | | | | | | +------- sfCursorIns = $0004 | | | | | | | +--------- sfShadow = $0008 | | | | | | +----------- sfActive = $0010 | | | | | +------------- sfSelected = $0020 | | | | +--------------- sfFocused = $0040 | | | +----------------- sfDragging = $0080 | | +------------------- sfDisabled = $0100 | +--------------------- sfModal = $0200 +------------------------- sfExposed = $0800

Значение каждого из флагов состояния описаны в главе 14 под заголовком "Константы флагов состояния sfXXXX". Этот раздел описывает механизм манипуляции полем State. Turbo Vision изменяет флаг состояния видимого элемента с помощью метода SetState. Если видимый элемент активизирован, активизируется или выбран, Turbo Vision вызывает SetState. Это отличается от способа, которым обрабатываются другие флаги, поскольку они устанавливаются при инициализации и затем не изменяются (например, если окно может изменять размер, оно всегда может изменять размер). Состояние видимого элемента, однако, часто изменяется при его нахождении на экране. Поэтому Turbo Vision предоставляет механизм в SetState, который позволяет Вам не только изменить состояние видимого элемента, но так же реагировать на изменения состояния. SetState получает состояние (AState) и флаг (Еnable), указывающее установлено состояние или очищено. Если Enable - True, то биты в AState устанавливаются в State. Если Enable - False, соответствующие биты State очищаются. Это во многом похоже на работу с любым битовым полем. Отличия появляются, когда Вы хотите, чтобы видимый элемент сделал что-либо, когда Вы изменяете его состояние.



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