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

Доступность элемента управления в целом определяется свойством

property Enabled: Boolean;

При значении True элемент управления полностью работоспособен. При значении False элемент управления неактивен и отображается серым цветом.

Для получения контекста устройства HDC элемента управления используется метод

function GetDeviceContext (var WindowHandle: HWnd) : HDC;
virtual;

Набор свойств и методов класса TWinControl обеспечивает функционирование механизма перетаскивания (Drag-and-Drop) и механизма присоединения (Drag-and-Dock).

Связь с родительским элементом управления

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

Родительский компонент задается свойством

property Parent: TWinControl;

Для каждого дочернего элемента управления можно задать значения нескольких свойств:

property ParentBiDrMcde: Boolean;
property ParentColor: Boolean;
property ParentFont: Boolean;
property ParentShcwHint: Boolean;

Каждое из них управляет одной характеристикой визуализации элемента. Метод

function HasParent: Boolean;
override;

используется для того, чтобы определить, имеется ли у компонента владелец вообще.

В классе TControl впервые появляются методы-обработчики событий, которые обеспечивают передачу в элемент действия мыши, присоединение и перетаскивание.

Класс TWinControl

Класс TWinControl обеспечивает создание и использование оконных элементов управления (см. выше). Напомним, что оконный элемент управления имеет системный дескриптор окна hwnd Однако оконными элементами являются не только формы и диалоги, но и большинство стандартных элементов управления.

Новые механизмы, инкапсулированные в классе, обеспечивают выполнение характерных для оконных элементов функций: прием и передачу фокуса, отклик на действия мышью и ввод с клавиатуры и т. д. Рассмотрим основные свойства и методы класса.

Дескриптор окна содержится в свойстве

property Handle: HWND;

При создании оконного элемента управления вызывается метод

procedure CreateParams(var Params: TCreateParams); virtual; который заполняет структуру TCreateParams необходимыми значениями: type

TCreateParams = record Caption: PChar;
Style: DWORD;
ExStyle: DWORD;
X, Y: Integer;
Width, Height: Integer;
WndParent: HWND;

Param: Pointer

WindowClass: TWndClass;
WinClassName;
array[0..63] of Char;
end;

Для создания дескриптора окна для элемента управления используется метод

procedure CreateHandle;
virtual;

Операционная система создает дескриптор окна только вместе с самим окном. Поэтому метод CreateHandle только создает окно, а для присваивания свойству Handle значения дескриптора окна вызывает метод createwnd.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Октябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс