• Иллюстрированный самоучитель по Delphi 7 для профессионалов

    Сходства и различия визуальных компонентов CLX и VCL

    События, генерируемые widget, перехватываются и обрабатываются специальными объектами, взаимодействующими с объектом widget. Затем они передаются связанному объекту CLX, который вызывает необходимые обработчики событий.

    Объекты-перехватчики создаются при вызове метода:

    procedure HookEvents; virtual;
    

    А непосредственно для создания перехватчиков используется библиотечная функция Qwidget_hook_create. Метод HookEvents вызывается автоматически при создании widget.

    Доступ к объекту-перехватчику возможен при помощи свойства:

    property Hooks: QWidget_hookH;
    

    Которое объявлено в секции protected и может быть использовано только при создании новых компонентов.

    Классы CLX имеют очень интересное и важное свойство:

    property Style: TWidgetStyle;
    

    Которое позволяет управлять внешним видом и процессом отрисовки компонента.

    Свойство:

    type TDefaultStyle = (dsWindows, dsMotif, dsMotifPlus, dsCDE, dsQtSGI, dsPlatinum, dsSystemDefault);
     property DefaultStyle: TDefaultStyle;
    

    Класса TWidgetStyle определяет стиль визуального компонента, задающий его внешний вид по умолчанию. Естественно, операционная система должна поддерживать выбранный стиль.

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

    Таким образом, свойство style является прекрасным инструментом для создания собственных компонентов с нестандартной функциональностью.

    Для использования в Linux модернизирована система контекстной помощи для компонентов CLX. Теперь статья подсказки для визуального компонента может быть вызвана двумя способами.

    Традиционно, путем определения уникального номера статьи в свойстве:

    property HelpContext: THelpContext;
    

    И дополнительно, путем определения ключевого слова подсказки в свойстве:

    property HelpKeyword: String;
    

    Способ вызова помощи определяется свойством:

    type THelpType = (htKeyword, htContext);
    property HelpType: THelpType;
    

    Примечание
    Свойства контекстной подсказки являются новыми в Delphi 7 и имеются у компонентов CLX и VCL
    .

    Кроме того, отдельные компоненты CLX имеют дополнительные свойства и методы, определяющие их дополнительную функциональность в Linux.

    В то же время некоторые привычные для программирования в Windows свойства компонентов отсутствуют в компонентах CLX. Это свойства обрамления компонента (BevelEdges, Bevellnner, BevelKind, BevelOuter); возможность двунаправленной печати текстов (свойство BioiMode); свойства для обратной совместимости с Windows 3.x (Ctl3D и ParentCtl3D); механизм присоединения и свойства Drag-and-Drop, хотя сам механизм Drag-and-Drop остался (свойства DockSite, DragKind, DragCursor).

    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.