Методы класса TControl перечислены далее.

procedure ActionChange(Sender: TObject;
CheckDefaults: Boolean)/ dynamic;

Вызывается автоматически при смене связанного с компонентом объекта действий.

procedure AdjustSize;
dynamic;

Если свойство AutoSize компонента имеет значение True, этот метод вызывается автоматически при необходимости изменить размеры компонента.

procedure AssignTo(Dest: TPersistent);
override;

Копирует в компонент Dest значения свойств Enabled, Hint, Caption, Visible и события OnExecute объекта действий.

procedure BeginAutoDrag;
dynamic;

Вызывается автоматически в момент старта операции перетаскивания, если свойство DragMode имеет значение dmAutomatic.

procedure BringToFront;

Размещает компонент над всеми дочерними компонентами родителя.

procedure ChangeBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual;

Вызывается автоматически при изменении положения и (или) размеров компонента.

procedure ChangeScale(М, D: Integer);
dynamic;
Вызывается при необходимости масштабирования компонента, procedure Click;
dynamic;

Возбуждает событие OnClick.

function ClientToParent(const Point: TPoint;
AParent: TWinControl = nil): TPoint;

Пересчитывает клиентские координаты Point компонента в координаты родителя AParent.

function ClientToScreen(const Point: TPoint): TPoint;

Пересчитывает клиентские координаты Point компонента в координаты экрана.

procedure ConstrainedResize(var MinWidth, MinHeight, MaxWidth, MaxHeight: Integer); virtual;

Вызывает событие OnConstrainedResize.

procedure ControlsAligned;
dynamic;

Вызывается автоматически, когда дочерние компоненты завершают выравнивание.

procedure CursorChanged;
dynamic;
Вызывается при изменении указателя мыши, procedure DblClick;
dynamic;

Возбуждает событие OnDblClick.

procedure DoContextPopup (MousePos: TPoint;
var Handled: Boolean);
dynamic;

Возбуждает событие OnContextPopup.

function DoCustomHint(var Hintlnfo: THintlnfo): Boolean;
dynamic;

Определяет область компонента для размещения оперативной подсказки.

procedure DoEndDrag (Target: TObject); X, У: Integer); dynamic; Возбуждает событие OnEndDrag.

procedure DoMouseWheel(Shift: TShiftState;
WheelDelta: Integer;
MousePos: TPoint): Boolean;
dynamic;

Вызывается как реакция на вращение колесика мыши.

procedure DoMouseWheelDown(Shift: TShiftState;
MousePos: TPoint): Boolean;
dynamic;

Возбуждает событие OnMouseWheelDown.

procedure DoMouseWheelUp(Shift: TShiftState;
MousePos: TPoint): Boolean;
dynamic;
Возбуждает событие OnMouseWheelUp. procedure DoStartDrag(var DragObject: TDragObject);
dynamic;
Возбуждает событие OnStartDrag. procedure DragCanceled;
dynamic;
Вызывается при завершении операции перетаскивания, procedure DragDrop(Source: TObject;
X, Y: Integer);
Возбуждает событие OnDragDrop. function Dragging: Boolean;

Возвращает True, если компонент поддерживает операцию перетаскивания.

procedure DragOver (Source: TObject;
X, У: Integers-State: TDragState;
var Accept: Boolean);
dynamic;
Возбуждает событие OnDragOver. procedure EnabledChanged;
dynamic;
Отклик на изменение значения свойства Enabled, procedure EndDrag(Drop: Boolean);
Прекращает операцию перетаскивания или причаливания, procedure FontChanged;
dynamic;

Отклик на изменение значения свойства Font.

TControlActionLinkClass * class of TControlActionLink;
function GetActionLinkClass: TControlActionLinkClass;
dynamic;
Возвращает класс объекта связи с действием, function GetClientOrigin: TPoint;
virtual;
Возвращает экранные координаты левого верхнего угла компонента, function GetClientRect: TRect;
virtual;

Возвращает значение свойства ClientRect.

function GetDraglmageHotSpot: TPoint;
virtual;

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

function GetEnabled: Boolean;
virtual;
Читает значение свойства Enabled, function GetFloating: Boolean;
virtual;
Возвращает значение свойства Floating, function GetPalette: HPALETTE;
dynamic;
Возвращает дескриптор палитры, используемой компонентом, function GetParentComponent: TComponent;
override;
Возвращает родителя компонента, function GetPopupMenu: TPopupMenu;
dynamic;
Возвращает связанное с компонентом контекстное меню, function GetTextBuf(Buffer: PChar;
BufSize: Integer): Integer;

Копирует в буфер значение свойства Text и возвращает количество скопированных символов.

function GetTextLen: Integer;
Возвращает длину свойства Text, function HasParent: Boolean;
dynamic;
Указывает, имеет ли компонент родителя, procedure Hide;
Прячет компонент, procedure InitiateAction;
virtual;
Вызывает метод Update связанного с компонентом объекта действий, procedure Invalidate;
virtual;

Заставляет компонент отрисовать себя.

procedure Loaded;
override;

Часть потоковой системы чтения-записи компонента. Этот метод не предназначен для непосредственного вызова из программы.

procedure MouseDown(Button: TMouseButton;
Shift: TShiftState;
X, У: Integer);
dynamic;

Вызывает событие OnMouseDown.

procedure MouseMove(Shift: TShiftState;
X, Y: Integer);
dynamic;

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

procedure MouseUp(Button: TMouseButton;
Shift: TShiftState;
X, У: Integer);
dynamic;

Возбуждает событие OnMouseUp.

procedure Notification (AComponent: TComponent;
Operation: TOperation);
override;

Извещает компонент о вставке или удалении компонента AComponent.

function PaletteChanged (Foreground: Boolean): Boolean;
dynamic;

Вызывается при изменении палитры компонента.

function ParentToClient(const Point: TPoint;
AParent: TWinControl = nil): TPoint;

Пересчитывает родительские координаты в координаты компонента.

function Perform(Msg: Cardinal;
WParam, LParam: Langint): Longint;

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

procedure Refresh;
Отрисовывает компонент, procedure Repaint;
Отрисовывает компонент (см. далее), procedure RequestAlign;
dynamic;
Извещает родителя о завершении выравнивания, procedure Resize;
dynamic;
Возбуждает событие OnResize. function ScreenToClient(const Point: TPoint): TPoint;

Пересчитывает клиентские координаты компонента в родительские.

procedure SendToBack;

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

procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer;
virtual;
Изменяет положение и размеры компонента, procedure SetEnabled(Value: Boolean); virtual;
Изменяет значение свойства Enabled, procedure SetEnabled(Value: Boolean); virtual;

Изменяет значение свойства Name.

procedure SetParent(AParent: TWinControl); virtual;

Изменяет родительский компонент.

procedure SetParentComponent (Value: TComponent);
override;

Часть потоковой системы чтения-записи компонента. Этот метод не предназначен для непосредственного вызова из программы.

procedure SetZOrder(TopMost: Boolean);
dynamic;

Делает компонент самым передним или самым задним компонентом родителя.

procedure Show;
Показывает компонент, procedure Update;
virtual;
Немедленно обрабатывает все требования отрисовки (см. далее), procedure UpdateBoundsRect(const R: TRect);
Этот метод предназначен для внутреннего использования, procedure VisibleChanging;
dynamic;
Вызывается до изменения свойства Visible, procedure WndProc(var Message: TMessage); virtual;

Выполняет умалчиваемую обработку сообщения (см. далее).

В классе объявляется несколько методов (Invalidate, Refresh, Repaint, Update), реализующих отрисовку компонента. Замечу, что метод Refresh просто вызывает метод Repaint, а метод Invalidate в большинстве случаев вызывает Update, так чтофактически отрисовывают компонент методы Repaint и Update. Разница между ними состоит в том, что первый помещает требование отрисовки в очередь обработки сообщений Windows, а второй выполняет отрисовку немедленно. В подавляющем большинстве случаев вызова метода Invalidate вполне достаточно для необходимой отрисовки.

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

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

Часть методов (CursorChanged, DragCanceled, VisibleChanging и некоторые другие) в классе TControl ничего не делают и предназначены для перекрытия в потомках. Некоторые другие (Click, DblClick и т. п.) возбуждают соответствующие события. Все они вначале проверяют действительность некоторого связанного с событием внутреннего поля, предназначенного для хранения ссылки на обработчик события, и, если ссылка действительна, вызывают обработчик. Например (файл $(DELPHI)\Source\VCL\Controls.pas):

procedure TControl.DblClick;
begin
if Assigned(FOnDblClick) then FOnDblClick(Self);
end;

3.3. Класс TControl || Оглавление || 3.3.3. События класса TControl


Искусство создания компонентов Delphi



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

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