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

Материал из FGX Native Докуметации
Перейти к навигации Перейти к поиску
(summary)
(summary)
 
(не показано 18 промежуточных версий этого же участника)
Строка 9: Строка 9:
  
 
Прямые наследники:
 
Прямые наследники:
[[FGX.Assets.BitmapSet.TfgAssetBitmapSet|TfgAssetBitmapSet]], [[FGX.Assets.Color.TfgAssetColor|TfgAssetColor]], [[FGX.Assets.Font.TfgAssetFont|TfgAssetFont]]
+
[[FGX.Assets.BitmapSet.TfgAssetBitmapSet|TfgAssetBitmapSet]], [[FGX.Assets.Color.TfgAssetColor|TfgAssetColor]], [[FGX.Assets.CustomFile.TfgAssetFile|TfgAssetFile]], [[FGX.Assets.Font.TfgAssetFont|TfgAssetFont]], [[FGX.Assets.LottieAnimation.TfgAssetLottieAnimation|TfgAssetLottieAnimation]], [[FGX.Assets.Style.TfgAssetStyle|TfgAssetStyle]]
  
 
== Описание ==
 
== Описание ==
  
 
<p>Базовый класс именованного ресурса.</p>
 
<p>Базовый класс именованного ресурса.</p>
 +
== Конструкторы ==
 +
 +
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">constructor</syntaxhighlight> || <code>Create(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]])</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|}
 +
 +
== Методы ==
 +
 +
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">BeforeDestruction()</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|-
 +
| <syntaxhighlight lang="Delphi">class function</syntaxhighlight> || <code lang="Delphi">GenerateId(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]]): [[string]]</code>
 +
<p>Генерирует уникальный идентификатор ресурса на основе имени ресурса, платформы и класса устройства.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Acquire()</code>
 +
 +
<p>Помечает ресурс, что он используется и не должен быть выгружен из памяти (см. <i>ReleaseFromMemory</i> ).</p><div class="info">Основан на счетчике. Можно вызывать сколько угодно раз, но каждому вызову должен в будущем соответствовать вызов <i>Release</i> .</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Release(): [[Boolean]]</code>
 +
<p>Возвращает ресурс обратно. Возвращает <i>True</i> - если больше никто не использует ресурс, в противном случае <i>False</i> . По результатам возвращения и настройки <i>TfgAssetsManager.Options</i> может быть выгружен из памяти для экономии системных ресурсов (см. <i>ReleaseFromMemory</i> ).</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsUsed(): [[Boolean]]</code>
 +
<p>Используется ли сейчас ресурс или нет?</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">ReleaseFromMemory()</code>
 +
 +
<p>Ресурс может содержать большие данные, которые по ходу использования ресурса могут быть загружены в оперативную память. Например, изображения, шрифты и тд. Если ресурс больше никем не используется, то можно выгрузить из памяти связанные данные при помощи этого метода.</p><div class="info">Если данный ресурс используется в компоненте ( <i>IsUsed</i> ), то вызов метода может закончиться повторной загрузкой в память.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Change()</code>
 +
<p>Уведомляет всех клиентов, что ресурс изменился. Это позволяет клиентам обновить исопльзование ресурса.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Clone(const ANewName: [[TfgAssetName|TfgAssetName]]): [[FGX.Assets.TfgAsset|TfgAsset]]</code>
 +
<p>Возвращает копию текущего ресурса с новым именем <i>ANewName</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Assign(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]])</code>
 +
<p>Копирование данных ресурса <i>AAsset</i> .</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsEmpty(): [[Boolean]]</code>
 +
<p>Есть ли содержимое внутри ресурса или нет. Например, ресурс может существовать, но без изображения.</p>
 +
|}
 +
 +
== Свойства ==
 +
 +
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Owner: [[FGX.Assets.TfgAssetsManager|TfgAssetsManager]]</code>
 +
<p>Менеджер ресурсов, которому принадлежит этот ресурс.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>UniqueId: [[string]]</code>
 +
 +
<p>Уникальный идентификатор ресурса.</p><div class="info">Пример: "Theme\Primary\Text-universal-large-tablet"</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Name: [[TfgAssetName|TfgAssetName]]</code>
 +
 +
<p>Имя ресурса.</p><div class="info">Пример: "Theme\Primary\Text"</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>ShortName: [[string]]</code>
 +
 +
<p>Возвращает укороченное имя ресурса без учета относительного пути.</p><div class="info">Пример: "Text-universal-large-tablet"</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>TargetDeviceDisplayName: [[string]]</code>
 +
 +
<p>Возвращает название целевого устройства, на который расчитан данный ресурс.</p><div class="info">Пример: "Universal L-Tablet"</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>TargetDeviceId: [[string]]</code>
 +
 +
<p>Составной идентификатор класса целевого устройства и платформы.</p><div class="info">Пример: "universal-large-tablet"</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>RelativePath: [[string]]</code>
 +
 +
<p>Относительный путь к ресурсу.</p><div class="info">Используется для дизайнера, чтобы организовать вложенность ресурсов.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>DeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]]</code>
 +
<p>Класс устройств, для которой расчитан ресурс.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Platform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]</code>
 +
<p>Тип платформы, для которой расчитан ресурс.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Type: [[TfgAssetType|TfgAssetType]]</code>
 +
 +
<p>Возвращает строковое представление типа. Используется для серилизацияя/десерилизации.</p><div class="info">Должно быть уникальным среди всех других видов ресурсов. Каждый наследник обязан реализовать абстрактный метод <i>GetType</i> .</div>
 +
|}
 +
 +
== Константы ==
 +
 +
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">const</syntaxhighlight> || <code>FolderSeparator: [[Char]]</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|-
 +
| <syntaxhighlight lang="Delphi">const</syntaxhighlight> || <code>DefaultPlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|-
 +
| <syntaxhighlight lang="Delphi">const</syntaxhighlight> || <code>DefaultDeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]]</code>
 +
<span style="color:gray">Описание отсутствует.</span>
 +
|}

Текущая версия на 17:12, 23 декабря 2022

Delphi

TfgAsset = class (TObject)

TObject -> TfgAsset

Прямые наследники: TfgAssetBitmapSet, TfgAssetColor, TfgAssetFile, TfgAssetFont, TfgAssetLottieAnimation, TfgAssetStyle

Описание

Базовый класс именованного ресурса.

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

constructor
Create(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass)

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

Методы

procedure
BeforeDestruction()

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

class function
GenerateId(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass): string

Генерирует уникальный идентификатор ресурса на основе имени ресурса, платформы и класса устройства.

procedure
Acquire()

Помечает ресурс, что он используется и не должен быть выгружен из памяти (см. ReleaseFromMemory ).

Основан на счетчике. Можно вызывать сколько угодно раз, но каждому вызову должен в будущем соответствовать вызов Release .
function
Release(): Boolean

Возвращает ресурс обратно. Возвращает True - если больше никто не использует ресурс, в противном случае False . По результатам возвращения и настройки TfgAssetsManager.Options может быть выгружен из памяти для экономии системных ресурсов (см. ReleaseFromMemory ).

function
IsUsed(): Boolean

Используется ли сейчас ресурс или нет?

procedure
ReleaseFromMemory()

Ресурс может содержать большие данные, которые по ходу использования ресурса могут быть загружены в оперативную память. Например, изображения, шрифты и тд. Если ресурс больше никем не используется, то можно выгрузить из памяти связанные данные при помощи этого метода.

Если данный ресурс используется в компоненте ( IsUsed ), то вызов метода может закончиться повторной загрузкой в память.
procedure
Change()

Уведомляет всех клиентов, что ресурс изменился. Это позволяет клиентам обновить исопльзование ресурса.

function
Clone(const ANewName: TfgAssetName): TfgAsset

Возвращает копию текущего ресурса с новым именем ANewName .

procedure
Assign(const AAsset: TfgAsset)

Копирование данных ресурса AAsset .

function
IsEmpty(): Boolean

Есть ли содержимое внутри ресурса или нет. Например, ресурс может существовать, но без изображения.

Свойства

property
Owner: TfgAssetsManager

Менеджер ресурсов, которому принадлежит этот ресурс.

property
UniqueId: string

Уникальный идентификатор ресурса.

Пример: "Theme\Primary\Text-universal-large-tablet"
property
Name: TfgAssetName

Имя ресурса.

Пример: "Theme\Primary\Text"
property
ShortName: string

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

Пример: "Text-universal-large-tablet"
property
TargetDeviceDisplayName: string

Возвращает название целевого устройства, на который расчитан данный ресурс.

Пример: "Universal L-Tablet"
property
TargetDeviceId: string

Составной идентификатор класса целевого устройства и платформы.

Пример: "universal-large-tablet"
property
RelativePath: string

Относительный путь к ресурсу.

Используется для дизайнера, чтобы организовать вложенность ресурсов.
property
DeviceClass: TfgDeviceClass

Класс устройств, для которой расчитан ресурс.

property
Platform: TfgPlatform

Тип платформы, для которой расчитан ресурс.

property
Type: TfgAssetType

Возвращает строковое представление типа. Используется для серилизацияя/десерилизации.

Должно быть уникальным среди всех других видов ресурсов. Каждый наследник обязан реализовать абстрактный метод GetType .

Константы

const
FolderSeparator: Char

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

const
DefaultPlatform: TfgPlatform

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

const
DefaultDeviceClass: TfgDeviceClass

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