FGX.Control.TfgControl: различия между версиями

Материал из FGX Native Докуметации
Перейти к навигации Перейти к поиску
(summary)
(summary)
Строка 129: Строка 129:
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Notify(const ANotificationType: [[FGX.Control.Types.TfgNotificationType|TfgNotificationType]])</code>
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Notify(const ANotificationType: [[FGX.Control.Types.TfgNotificationType|TfgNotificationType]])</code>
 
<p>Уведомляет всех подписчиков, что произошло событие с типом <i>ANotificationType</i> .</p>
 
<p>Уведомляет всех подписчиков, что произошло событие с типом <i>ANotificationType</i> .</p>
 +
|}
 +
 +
== Свойства ==
 +
 +
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Index: [[Integer]]</code>
 +
<p>Порядковый номер контрола в рамках родителя. Отвечает за порядок выравнивания и Z-порядок. 0 - контрол находится позади всех соседних и выравнивается первым.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Form: [[FGX.Control.TfgControl|TfgControl]]</code>
 +
 +
<p>Возвращает ссылку на форму, в которую встроен контрол.</p><div class="info">Контрол считается встроенным в форму, если по цепочке родителей можно добраться до экземпляра формы. Если одна форма встроена в другую, то вернет ссылку на ближайшую форму по цепочке родителей.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Controls: [[TList<FGX.Control.TfgControl>]]</code>
 +
<p>Вложенные контролы.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>ControlsCount: [[Integer]]</code>
 +
<p>Количество вложенных контролов.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>BackgroundLink: [[FGX.Assets.TfgAssetLink|TfgAssetLink]]</code>
 +
<p>Связь ресурса заднего фона.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Handle: [[FGX.NativeControl.Factory.TfgNativeControlHandle|TfgNativeControlHandle]]</code>
 +
<p>Хендл с информацией о нативном представлении контрола.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Parent: [[FGX.Control.TfgControl|TfgControl]]</code>
 +
<p>Родитель</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Bounds: [[TRectF]]</code>
 +
<p>Местоположение контрола в родительской системе координат.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>LocalBounds: [[TRectF]]</code>
 +
<p>Возвращает местоположение контрола в своей системе координат.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Height: [[Single]]</code>
 +
 +
<p>Высота контрола</p><div class="info">При задании высоты конечное значение высоты может отличаться от задаваемого. Это может зависит от ограничений нативного контрола или специфики реализации.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Width: [[Single]]</code>
 +
 +
<p>Ширина контрола</p><div class="info">При задании ширины конечное значение ширины может отличаться от задаваемого. Это может зависит от ограничений нативного контрола или специфики реализации.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>NaturalSize: [[TSizeF]]</code>
 +
<p>Естественный размер контрола. Каждый контрол может сказать, какой размер ему необходим, чтобы нормально отобразить свое содержимое.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Stored: [[Boolean]]</code>
 +
<p>Нужно ли при серилизации сохранять текущий контрол.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>TagObject: [[TObject]]</code>
 +
<p>Место хранения пользовательских данных, ассоциированных с данным контролом.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Locked: [[Boolean]]</code>
 +
<p>Позволяет заблокировать выделение компонента мышкой в дизайн тайме.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Alignment: [[FGX.Control.Types.TfgControlAlignment|TfgControlAlignment]]</code>
 +
<p>Настройки выравнивания контрола в рамках родителя.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>PositionMode: [[FGX.Control.Types.TfgPositionMode|TfgPositionMode]]</code>
 +
<p>Режим позиционирования контрола в рамках родителя (в абсолютных координатах / относительно).</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Position: [[FGX.Control.Types.TfgPosition|TfgPosition]]</code>
 +
<p>Позиция контрола в локальных логических координатах родителя <i>Parent</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>RelativePosition: [[FGX.Control.Types.TfgRelativePosition|TfgRelativePosition]]</code>
 +
<p>Относительная позиция контролов относительно родителя. Актуально только для <b>PositionMode = Relative</b> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Size: [[FGX.Control.Types.TfgSize|TfgSize]]</code>
 +
<p>Размер контрола в логических координатах.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Constraints: [[FGX.Control.Types.TfgConstraints|TfgConstraints]]</code>
 +
<p>Ограничение на размеры контрола.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Margins: [[FGX.Control.Types.TfgMargins|TfgMargins]]</code>
 +
<p>Внешние отступы контрола. Используются при выравнивании текущего контрола в рамках контейнера.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>AlignWithMargins: [[Boolean]]</code>
 +
<p>Нужно ли использовать заданные внешние отступы <i>Margins</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>GestureKinds: [[TfgGestureKinds|TfgGestureKinds]]</code>
 +
<p>Виды поддерживаемых жестов.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>LookupName: [[string]]</code>
 +
<p>Идентификатор, используемый для поиска данного контрола среди других. Актуально для ситуаций, когда несколько контролов могут иметь одно и тоже имя для поиска и нам нужно найти данный контрол в определенной части поддерева.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Opacity: [[Single]]</code>
 +
<p>Прозрачность контрола.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>BackgroundName: [[TfgAssetName|TfgAssetName]]</code>
 +
<p>Настройки отображения заднего фона контрола.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Visible: [[Boolean]]</code>
 +
<p>Видимость контрола.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>HitTest: [[Boolean]]</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 
|}
 
|}

Версия 02:00, 13 июня 2019

Delphi

TfgControl = class (TComponent, IFGXTapSupported, IFGXNotificationObserver, IFGXNotificationObservable)

TComponent -> TfgControl

Прямые наследники: TfgCustomActivityIndicator, TfgCustomButton, TfgCollectionViewStyles, TfgCustomCollectionView, TfgCustomComboBox, TfgCustomDateTimeControl, TfgCustomDrawerLayout, TfgCustomEdit, TfgGraphicControl, TfgCustomImage, TfgCustomLayout, TfgCustomListMenu, TfgCustomListView, TfgCustomMemo, TfgCustomNavigationBar, TfgCustomPageControl, TfgCustomProgressBar, TfgCustomSearchEdit, TfgCustomSpacer, TfgCustomLabel, TfgCustomTabBar, TfgCustomTabControl, TfgCustomToolBar, TfgCustomTrackBar, TfgCustomVideoControl, TfgCustomWebBrowser

Непрямые наследники: TfgActivityIndicator, TfgButton, TfgCollectionView, TfgComboBox, TfgCustomDateControl, TfgCustomTimeControl, TfgCustomCalendar, TfgCustomDateEdit, TfgCustomDatePicker, TfgCalendar, TfgDateEdit, TfgDatePicker, TfgCustomTimeEdit, TfgCustomTimePicker, TfgTimeEdit, TfgTimePicker, TfgDrawerLayout, TfgCustomAutoCompleteEdit, TfgEdit, TfgAutoCompleteEdit, TfgCustomPaintBox, TfgShape, TfgPaintBox, TfgCustomArc, TfgCustomCircle, TfgCustomEllipse, TfgCustomLine, TfgCustomRectangle, TfgCustomRegularPolygon, TfgCustomRhomb, TfgCustomSvgPath, TfgArc, TfgCustomArch, TfgCustomSector, TfgArch, TfgSector, TfgCircle, TfgEllipse, TfgLine, TfgRectangle, TfgRegularPolygon, TfgRhomb, TfgSvgPath, TfgImage, TfgCustomCardPanel, TfgCollectionViewStyle, TfgCustomComboBoxItem, TfgCustomDrawer, TfgCustomForm, TfgLayout, TfgCustomPage, TfgCustomScrollBox, TfgCardPanel, TfgComboBoxTextItem, TfgDrawer, TfgForm, TfgMainContent, TfgPage, TfgScrollBox, TfgListMenu, TfgListView, TfgMemo, TfgNavigationBar, TfgPageControl, TfgProgressBar, TfgSearchEdit, TfgSpacer, TfgCustomCheckBox, TfgCustomRadioButton, TfgLabel, TfgCustomSwitch, TfgCheckBox, TfgRadioButton, TfgSwitch, TfgTabBar, TfgTabControl, TfgToolBar, TfgTrackBar, TfgVideoControl, TfgWebBrowser

Описание

Описание отсутствует.

Конструкторы

constructor
Create(AOwner: TComponent)

Описание отсутствует.

Методы

procedure
AfterConstruction()

Описание отсутствует.

procedure
BeforeDestruction()

Описание отсутствует.

function
IsLoading(): Boolean

Контрол находится в процессе десерилизации (чтении свойств из ресурсов)?

function
IsCreating(): Boolean

Контрол находится в процессе создания?

function
IsDestroying(): Boolean

Контрол находится в процессе уничтожения?

procedure
InsertControl(const AChild: TfgControl)

Добавляет указанный контрол AChild в конец списка своих непосредственно вложенных контролов. Добавленный контрол отображается на переднем плане.

procedure
RemoveControl(const AChild: TfgControl)

Удаляет указанный контрол AChild среди списка своих непосредственно вложенных контролов.

procedure
DeleteControls()

Удаляет все дочерние объекты и физически их уничтожает.

function
HasParent(): Boolean

Задан ли родительский контрол или нет?

function
IsChild(const AChild: TfgControl): Boolean

Возвращает True , если указанный контрол AChild является наследником текущего контрола (по цепочке родителей можно выйти на текущий контрол).

function
GetParentComponent(): TComponent

Описание отсутствует.

procedure
BringToFront()

Отправляет текущий контрол на передний план. При этом контрол будет отображаться поверх всех остльных соседних контролов (в рамках родителя).

procedure
SendToBack()

Отправляет текущий контрол на задний план. При этом контрол будет отображаться позади всех остльных соседних контролов (в рамках родителя).

function
HitTestPoint(const ALocalPoint: TPointF): Boolean

Проверяет, принадлежит ли указанная точка в локальной системе координат контрола, текущему контролу.

function
ControlAtPoint(const ALocalPoint: TPointF; const AIgnoreStored: Boolean): TfgControl

Ищет дочерний контрол по указанной точке, указанной в локальной системе координат контрола, который ближе всего находится к пользователю по Z-оси. Если контрол не найден, вернется nil. Дополнительно при поиске можно игнорировать контролы AIgnoreStored , у которых Stored = True .

procedure
Invalidate()

Выполнить полную перерисовку формы.

function
Clone(const AStoreEvents: Boolean): TfgControl

Делает копию текущего контрола на основании "published" свойств.

function
GetFormPosition(): TPointF

Положение контрола в системе кординат формы.

function
GetFormBounds(): TRectF

Положение и размер контрола в системе кординат формы.

function
MeasureSize(const AWidthSpec: TfgMeasuringSpecification; const AWidth: Single; const AHeightSpec: TfgMeasuringSpecification; const AHeight: Single): TSizeF

Выполняет рассчет размера контрола на основании входящих данных. Спецификации AWidthSpec и AHeightSpec указывают, как нужно использовать ширину AWidth и высоту AHeight при вычислении размера контрола.

  • TfgMeasuringSpecification.Undefined - финальный вычисляемый размер никак не ограничен сверху. При использовании этой спецификации переданный размер в AWidth или AHeight будет проигнорирован.
  • TfgMeasuringSpecification.AtMost - означает, что финальный вычисляемый размер ограничен сверху соответствующим значением ширины AWidth или высоты AHeight .
  • TfgMeasuringSpecification.Fixed - означает, что финальный вычисляемый размер зафиксирован сверху соответствующим значением ширины AWidth или высоты AHeight .
Данный расчет никак не влияет на текущее положение и размеры контрола и всех дочерних контролов.
function
LocalToForm(const ALocalPoint: TPointF): TPointF

Конвертирует локальные координаты в рамках контрола в систему координат формы.

function
CanRealign(): Boolean

Возвращает True, если можно выполнить выравнивание. False - в противном случае.

Выравнивание можно отключать для предотвращения лишных проходов выравнивания через BeginUpdate - EndUpdate . Например, при пакетном изменении свойств выравнивания.
procedure
Realign()

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

procedure
BeginUpdate()

Информирует контрол о том, что сейчас начнется пакетная обработка свойств. На это время выравнивание приостанавливается и продолжится, после вызова парного метода EndUpdate .

BeginUpdate - EndUpdate учитывают количество вызовов. Поэтому методы можно вызывать несколько раз. Однако, при этом выравнивание будет вызвано, когда будут вызваны все парные EndUpdate .
procedure
EndUpdate()

Информирует контрол о том, что заканчивается пакетная обработка свойств. Если этот вызов EndUpdate является последним парным к BeginUpdate , то запускается выравнивание.

BeginUpdate - EndUpdate учитывают количество вызовов. Поэтому методы можно вызывать несколько раз. Однако, при этом выравнивание будет вызвано, когда будут вызваны все парные EndUpdate .
function
IsUpdating(): Boolean

True - если контрол находится в состоянии пакетной обработки свойств. При этом на этот период выравнивание отключается.

procedure
SetFocus()

Устанавливает фокус на контрол. Если контрол поддерживает работу с фокусом.

function
ResetFocus(): Boolean

Сбрасывает фокус.

function
IsFocused(): Boolean

Находится ли текущий контрол под фокусом?

procedure
SubscribeOnNotification(const AObserver: IFGXNotificationObserver; const ANotificationType: TfgNotificationType)

Подисывает наблюдателя AObserver на получение уведомлений типа ANotificationType .

procedure
UnsubscribeOnNotification(const AObserver: IFGXNotificationObserver; const ANotificationType: TfgNotificationType)

Отписывает наблюдателя AObserver на получение уведомлений типа ANotificationType . Если подписчик не был ранее подписан, метод тогда ничего не делает.

procedure
Notify(const ANotificationType: TfgNotificationType)

Уведомляет всех подписчиков, что произошло событие с типом ANotificationType .

Свойства

property
Index: Integer

Порядковый номер контрола в рамках родителя. Отвечает за порядок выравнивания и Z-порядок. 0 - контрол находится позади всех соседних и выравнивается первым.

property
Form: TfgControl

Возвращает ссылку на форму, в которую встроен контрол.

Контрол считается встроенным в форму, если по цепочке родителей можно добраться до экземпляра формы. Если одна форма встроена в другую, то вернет ссылку на ближайшую форму по цепочке родителей.
property
Controls: [[TList<FGX.Control.TfgControl>]]

Вложенные контролы.

property
ControlsCount: Integer

Количество вложенных контролов.

property
BackgroundLink: TfgAssetLink

Связь ресурса заднего фона.

property
Handle: TfgNativeControlHandle

Хендл с информацией о нативном представлении контрола.

property
Parent: TfgControl

Родитель

property
Bounds: TRectF

Местоположение контрола в родительской системе координат.

property
LocalBounds: TRectF

Возвращает местоположение контрола в своей системе координат.

property
Height: Single

Высота контрола

При задании высоты конечное значение высоты может отличаться от задаваемого. Это может зависит от ограничений нативного контрола или специфики реализации.
property
Width: Single

Ширина контрола

При задании ширины конечное значение ширины может отличаться от задаваемого. Это может зависит от ограничений нативного контрола или специфики реализации.
property
NaturalSize: TSizeF

Естественный размер контрола. Каждый контрол может сказать, какой размер ему необходим, чтобы нормально отобразить свое содержимое.

property
Stored: Boolean

Нужно ли при серилизации сохранять текущий контрол.

property
TagObject: TObject

Место хранения пользовательских данных, ассоциированных с данным контролом.

property
Locked: Boolean

Позволяет заблокировать выделение компонента мышкой в дизайн тайме.

property
Alignment: TfgControlAlignment

Настройки выравнивания контрола в рамках родителя.

property
PositionMode: TfgPositionMode

Режим позиционирования контрола в рамках родителя (в абсолютных координатах / относительно).

property
Position: TfgPosition

Позиция контрола в локальных логических координатах родителя Parent .

property
RelativePosition: TfgRelativePosition

Относительная позиция контролов относительно родителя. Актуально только для PositionMode = Relative .

property
Size: TfgSize

Размер контрола в логических координатах.

property
Constraints: TfgConstraints

Ограничение на размеры контрола.

property
Margins: TfgMargins

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

property
AlignWithMargins: Boolean

Нужно ли использовать заданные внешние отступы Margins .

property
GestureKinds: TfgGestureKinds

Виды поддерживаемых жестов.

property
LookupName: string

Идентификатор, используемый для поиска данного контрола среди других. Актуально для ситуаций, когда несколько контролов могут иметь одно и тоже имя для поиска и нам нужно найти данный контрол в определенной части поддерева.

property
Opacity: Single

Прозрачность контрола.

property
BackgroundName: TfgAssetName

Настройки отображения заднего фона контрола.

property
Visible: Boolean

Видимость контрола.

property
HitTest: Boolean

Описание отсутствует.