17.12. СВОЙСТВА РАЗНОГО НАЗНАЧЕНИЯ

Узнать текущее состояние любого управляющего элемента на этапе прогона программы можно с помощью свойства

type TControlState = set of (csLButtonDown, csClicked, csPalette, csReadingState, csAlignmentNeeded, csFocusing, csCreat-ing, csCustomPaint, ceDestroyingHandle);

property ControlState: TControlState;

класса TControl.

Элементы множества TControlState имеют следующий смысл:

csLButtonDow | Над элементом была нажата и еще не отпущена левая кнопка мыши
n csClicked | То же, что csLButtonDown, но устанавливается, если стиль компонента (см. ниже) содержит флаг csClickEvents и означает, что нажатие кнопки интерпретируется как щелчок
csPalette | Элемент или его родитель получил сообщение WMPALETTCHANGED
csReadingState | Элемент читает данные из потока
csAlignmentNeeded | Элемент нуждается в перерисовке, т. к. изменилось его свойство Alignment
csFocusing | Программа пытается передать элементу фокус ввода
csCreating | Элемент и/или его родительские и дочерние элементы находятся в стадии создания. Флаг очищается после завершения процесса
csCustomPaint | Элемент перерисовывается
csDestroyingHandle | Разрушается Windows-дескриптор элемента

Свойство

type TControlStyle = set of (csAcceptsControls, csCaptureMouse, csDesignInteractive, csFramed, csClickEvents, csSetCaption, csOpaque, csDoubleClicks, csFixedWidth, csFixedHeight, csNoDesignVisible, csReplicatable, csNoStdEvents, csDisplayDraglmage, csReflector, csActionClient, csMenuEvents) ;

property ControlStyle: TControlStyle;

содержит стилевые флаги элемента, имеющие такой смысл:

csAcceptsControls | Элемент может стать владельцем дочернего элемента в технологии Drag&Dock
csActionClient | Элемент может участвовать в централизованном действии
csCaptureMouse | Элемент будет получать все сообщения от мыши, даже если ее указатель выйдет из его границ
csClickEvents | Элемент может воспринимать щелчок мыши
csDesignInteractive | Элемент воспринимает щелчок правой кнопкой мыши на этапе конструирования формы
csDisplayDragImage | Элемент способен менять свое изображение при протаскива-нии над ним “груза” в технологии Drags Drop
csDoubleClicks | Элемент может воспринимать двойной щелчок мыши
csPixedHeight | Элемент имеет фиксированную высоту
csFixedWidth | Элемент имеет фиксированную ширину
csFramed | Элемент имеет трехмерную рамку
csNoDesignVisible | Элемент не виден на этапе конструирования формы
csNoStdEvents | Элемент не реагирует на стандартные события от мыши или клавиатуры
csOpaque | Элемент закрашивает всю свою клиентскую область
csReflector | Элемент способен получать диалоговые сообщения windows, сообщения, связанные с получением/потерей фокуса ввода и изменением размеров.
csReplicatable | Используется для компонентов АсtiveX
csSetCaption | Элемент способен отобразить свой образ с помощь метода PaintTo Элемент будет изменять свой заголовок при изменении своего свойства Name

Пара свойств класса Twincontrol

type TImeMode = (imDisable, imClose, imOpen, imDontCare, im-

SAlpha, imAlpha, imHira, imSKata, imKata, imChinese, imSHanguel, imHanguel);

property ImeMode: TImeMode;

И

type TImeName = String;

property ImeName: TImeName;

определяют режим работы и имя специального редактора IME (Input Method Editor) для предварительной обработки клавиатурного ввода в случае использования азиатских языков. С помощью свойства

type TBiDiMode = (bdLeftToRight, bdRightToLeft, bdRightToLeft-NoAlign, bdRightToLeftReadingOnly);

property BiDiMode: TBiDiMode;

класса TControl программа может задать порядок чтения текста, расположение вертикальных полос прокрутки и изменение свойства Alignment так, чтобы учесть особенности арабского и подобного письма слева направо.