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

Материал из FGX Native Докуметации
Перейти к навигации Перейти к поиску
(summary)
(summary)
Строка 24: Строка 24:
 
| <syntaxhighlight lang="Delphi">constructor</syntaxhighlight> || <code>Create(AOwner: [[TComponent]])</code>
 
| <syntaxhighlight lang="Delphi">constructor</syntaxhighlight> || <code>Create(AOwner: [[TComponent]])</code>
 
<span style="color:gray">Описание отсутствует.</span>
 
<span style="color:gray">Описание отсутствует.</span>
 +
|}
 +
 +
== Методы ==
 +
 +
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">AfterConstruction()</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">BeforeDestruction()</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsLoading(): [[Boolean]]</code>
 +
<p>Контрол находится в процессе десерилизации (чтении свойств из ресурсов)?</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsCreating(): [[Boolean]]</code>
 +
<p>Контрол находится в процессе создания?</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsDestroying(): [[Boolean]]</code>
 +
<p>Контрол находится в процессе уничтожения?</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">InsertControl(const AChild: [[FGX.Control.TfgControl|TfgControl]])</code>
 +
<p>Добавляет указанный контрол <i>AChild</i> в конец списка своих непосредственно вложенных контролов. Добавленный контрол отображается на переднем плане.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">RemoveControl(const AChild: [[FGX.Control.TfgControl|TfgControl]])</code>
 +
<p>Удаляет указанный контрол <i>AChild</i> среди списка своих непосредственно вложенных контролов.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">DeleteControls()</code>
 +
<p>Удаляет все дочерние объекты и физически их уничтожает.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">HasParent(): [[Boolean]]</code>
 +
<p>Задан ли родительский контрол или нет?</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsChild(const AChild: [[FGX.Control.TfgControl|TfgControl]]): [[Boolean]]</code>
 +
<p>Возвращает <i>True</i> , если указанный контрол <i>AChild</i> является наследником текущего контрола (по цепочке родителей можно выйти на текущий контрол).</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetParentComponent(): [[TComponent]]</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">BringToFront()</code>
 +
<p>Отправляет текущий контрол на передний план. При этом контрол будет отображаться поверх всех остльных соседних контролов (в рамках родителя).</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">SendToBack()</code>
 +
<p>Отправляет текущий контрол на задний план. При этом контрол будет отображаться позади всех остльных соседних контролов (в рамках родителя).</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">HitTestPoint(const ALocalPoint: [[TPointF]]): [[Boolean]]</code>
 +
<p>Проверяет, принадлежит ли указанная точка в локальной системе координат контрола, текущему контролу.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">ControlAtPoint(const ALocalPoint: [[TPointF]]; const AIgnoreStored: [[Boolean]]): [[FGX.Control.TfgControl|TfgControl]]</code>
 +
<p>Ищет дочерний контрол по указанной точке, указанной в локальной системе координат контрола, который ближе всего находится к пользователю по Z-оси. Если контрол не найден, вернется nil. Дополнительно при поиске можно игнорировать контролы <i>AIgnoreStored</i> , у которых <i>Stored = True</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Invalidate()</code>
 +
<p>Выполнить полную перерисовку формы.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Clone(const AStoreEvents: [[Boolean]]): [[FGX.Control.TfgControl|TfgControl]]</code>
 +
<p>Делает копию текущего контрола на основании "published" свойств.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetFormPosition(): [[TPointF]]</code>
 +
<p>Положение контрола в системе кординат формы.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetFormBounds(): [[TRectF]]</code>
 +
<p>Положение и размер контрола в системе кординат формы.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">MeasureSize(const AWidthSpec: [[FGX.Control.TfgMeasuringSpecification|TfgMeasuringSpecification]]; const AWidth: [[Single]]; const AHeightSpec: [[FGX.Control.TfgMeasuringSpecification|TfgMeasuringSpecification]]; const AHeight: [[Single]]): [[TSizeF]]</code>
 +
 +
<p>Выполняет рассчет размера контрола на основании входящих данных. Спецификации <i>AWidthSpec</i> и <i>AHeightSpec</i> указывают, как нужно использовать ширину <i>AWidth</i> и высоту <i>AHeight</i> при вычислении размера контрола.</p> <ul><li><b>TfgMeasuringSpecification.Undefined</b> - финальный вычисляемый размер никак не ограничен сверху. При использовании этой спецификации переданный размер в <i>AWidth</i> или <i>AHeight</i> будет проигнорирован.</li> <li><b>TfgMeasuringSpecification.AtMost</b> - означает, что финальный вычисляемый размер ограничен сверху соответствующим значением ширины <i>AWidth</i> или высоты <i>AHeight</i> .</li> <li><b>TfgMeasuringSpecification.Fixed</b> - означает, что финальный вычисляемый размер зафиксирован сверху соответствующим значением ширины <i>AWidth</i> или высоты <i>AHeight</i> .</li></ul><div class="info">Данный расчет никак не влияет на текущее положение и размеры контрола и всех дочерних контролов.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">LocalToForm(const ALocalPoint: [[TPointF]]): [[TPointF]]</code>
 +
<p>Конвертирует локальные координаты в рамках контрола в систему координат формы.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">CanRealign(): [[Boolean]]</code>
 +
 +
<p>Возвращает True, если можно выполнить выравнивание. False - в противном случае.</p><div class="info">Выравнивание можно отключать для предотвращения лишных проходов выравнивания через <i>BeginUpdate</i> - <i>EndUpdate</i> . Например, при пакетном изменении свойств выравнивания.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Realign()</code>
 +
<p>Принудительно запускает синхронное выравнивание, если выравнивание допустимо в текущий момент <i>CanRealign</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">BeginUpdate()</code>
 +
 +
<p>Информирует контрол о том, что сейчас начнется пакетная обработка свойств. На это время выравнивание приостанавливается и продолжится, после вызова парного метода <i>EndUpdate</i> .</p><div class="info"><i>BeginUpdate</i> - <i>EndUpdate</i> учитывают количество вызовов. Поэтому методы можно вызывать несколько раз. Однако, при этом выравнивание будет вызвано, когда будут вызваны все парные <i>EndUpdate</i> .</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">EndUpdate()</code>
 +
 +
<p>Информирует контрол о том, что заканчивается пакетная обработка свойств. Если этот вызов <i>EndUpdate</i> является последним парным к <i>BeginUpdate</i> , то запускается выравнивание.</p><div class="info"><i>BeginUpdate</i> - <i>EndUpdate</i> учитывают количество вызовов. Поэтому методы можно вызывать несколько раз. Однако, при этом выравнивание будет вызвано, когда будут вызваны все парные <i>EndUpdate</i> .</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsUpdating(): [[Boolean]]</code>
 +
<p>True - если контрол находится в состоянии пакетной обработки свойств. При этом на этот период выравнивание отключается.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">SetFocus()</code>
 +
<p>Устанавливает фокус на контрол. Если контрол поддерживает работу с фокусом.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">ResetFocus(): [[Boolean]]</code>
 +
<p>Сбрасывает фокус.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsFocused(): [[Boolean]]</code>
 +
<p>Находится ли текущий контрол под фокусом?</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">SubscribeOnNotification(const AObserver: [[FGX.Control.Types.IFGXNotificationObserver|IFGXNotificationObserver]]; const ANotificationType: [[FGX.Control.Types.TfgNotificationType|TfgNotificationType]])</code>
 +
<p>Подисывает наблюдателя <i>AObserver</i> на получение уведомлений типа <i>ANotificationType</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">UnsubscribeOnNotification(const AObserver: [[FGX.Control.Types.IFGXNotificationObserver|IFGXNotificationObserver]]; const ANotificationType: [[FGX.Control.Types.TfgNotificationType|TfgNotificationType]])</code>
 +
<p>Отписывает наблюдателя <i>AObserver</i> на получение уведомлений типа <i>ANotificationType</i> . Если подписчик не был ранее подписан, метод тогда ничего не делает.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Notify(const ANotificationType: [[FGX.Control.Types.TfgNotificationType|TfgNotificationType]])</code>
 +
<p>Уведомляет всех подписчиков, что произошло событие с типом <i>ANotificationType</i> .</p>
 
|}
 
|}

Версия 18:05, 29 июня 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 .