FGX.Assets.TfgAssetsManager: различия между версиями
Admin (обсуждение | вклад) (summary) (Метка: замена) |
Admin (обсуждение | вклад) (summary) |
||
(не показано 113 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | * [[ | + | * [[ System.TObject | Вверх к родителю: TObject ]] |
− | * [[ FGX.Assets | + | * [[ FGX.Assets | К модулю: FGX.Assets ]] |
− | |||
Delphi | Delphi | ||
− | < | + | <syntaxhighlight lang="Delphi">TfgAssetsManager = class (TObject)</syntaxhighlight> |
+ | |||
+ | <p class="class-inheritance"><span class="type-border">[[System.TObject|TObject]]</span> -> <span class="type-border">[[FGX.Assets.TfgAssetsManager|TfgAssetsManager]]</span></p> | ||
+ | |||
+ | == Описание == | ||
+ | |||
+ | <p>Менеджер управления всеми ресурсами в приложении.</p> | ||
+ | == Конструкторы == | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">constructor</syntaxhighlight> || <code>Create()</code> | ||
+ | <span style="color:gray">Описание отсутствует.</span> | ||
+ | |} | ||
+ | |||
+ | == Методы == | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">CheckAssetNameOrRaise(const AName: [[TfgAssetName|TfgAssetName]])</code> | ||
+ | <span style="color:gray">Описание отсутствует.</span> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Add(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]])</code> | ||
+ | <p>Добавляет ресурс в хранилище. Если в хранилище уже есть ресурс с таким же уникальным идентификатором, то бросит исключение.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]])</code> | ||
+ | <p>Удаляет указанный ресурс.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AName: [[TfgAssetName|TfgAssetName]])</code> | ||
+ | <p>Удаляет ресурсы с указанным именем для всех платформ и классов устройств.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]])</code> | ||
+ | <p>Удаляет ресурс с указанным именем для конкретной платформы и класса устройств.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const APredicate: [[TfgAssetNamePredicate|TfgAssetNamePredicate]])</code> | ||
+ | |||
+ | <p>Удаляет все ресурсы, отфильтрованные анонимной функцией.</p><div class="info">Если предикат не указан, то метода не будет выполнен.</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Rename(const AOldName: [[TfgAssetName|TfgAssetName]]; const ANewName: [[TfgAssetName|TfgAssetName]]): [[Boolean]]</code> | ||
+ | |||
+ | <p>Переименовывает все ресурсы со старым именем <i>AOldName</i> , задавая им новое <i>ANewName</i> .</p><div class="info">Если хотя бы один ресурс был переименован, вернет <i>True</i> .</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Clear()</code> | ||
+ | <p>Удаляет все ресурсы.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Contains(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]]): [[Boolean]]</code> | ||
+ | <p>Определяет, есть ли ресурс с уникальным ID в хранилище или нет.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Contains(const AName: [[TfgAssetName|TfgAssetName]]): [[Boolean]]</code> | ||
+ | <p>Определяет, есть ли ресурс с указанным именем в хранилище или нет.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Contains(const AName: [[TfgAssetName|TfgAssetName]]; const AAssetClass: [[TfgAssetClass|TfgAssetClass]]): [[Boolean]]</code> | ||
+ | <p>Определяет, есть ли ресурс с указанным именем и типом в хранилище или нет.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Contains(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]]): [[Boolean]]</code> | ||
+ | <p>Определяет, есть ли ресурс с указанным именем для указанной платформы и класса устройства в хранилище или нет.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsEmpty(const AName: [[TfgAssetName|TfgAssetName]]): [[Boolean]]</code> | ||
+ | |||
+ | <p>Определяет, есть ли содержимое в ресурсе с именем <i>AName</i> или нет?</p><div class="info">Если ресурса нет, то он по умолчанию считается пустым.</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssetsNames(): [[TArray<FGX.Assets.TfgAssetName>]]</code> | ||
+ | <p>Возвращает названия всех доступных ресурсов.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssetsNames(const APredicate: [[TfgAssetNamePredicate|TfgAssetNamePredicate]]): [[TArray<FGX.Assets.TfgAssetName>]]</code> | ||
+ | |||
+ | <p>Возвращает названия всех доступных ресурсов, отфильтрованных анонимной функцией.</p><div class="info">Если предикат не указан, то вернет все названия доступных ресурсов.</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssets(const APredicate: [[TfgAssetNamePredicate|TfgAssetNamePredicate]]): [[TArray<FGX.Assets.TfgAsset>]]</code> | ||
+ | |||
+ | <p>Возвращает все доступные ресурсы, отфильтрованных анонимной функцией.</p><div class="info">Если предикат не указан, то вернет все ресурсы.</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssets(const APredicate: [[TfgAssetPredicate|TfgAssetPredicate]]): [[TArray<FGX.Assets.TfgAsset>]]</code> | ||
+ | |||
+ | <p>Возвращает все доступные ресурсы, отфильтрованных анонимной функцией.</p><div class="info">Если предикат не указан, то вернет все ресурсы.</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAllAssets(): [[TArray<FGX.Assets.TfgAsset>]]</code> | ||
+ | <p>Возвращает список всех ресурсов.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetGroupedAssets(): [[TArray<FGX.Assets.TfgAssetGroup>]]</code> | ||
+ | |||
+ | <p>Возвращает список ресурсов сгруппированных по имени <i>TfgAsset.Name</i> .</p><div class="info">Удаление списка лежит на плечах клиента. Сами эксземпляры ресурсов удалять не нужно!</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Find(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]]; out AAsset: [[T]]): [[Boolean]]</code> | ||
+ | <p>Поиск ресурса указанного класса по имени для текущей платформы и класса устройства. Если ресурс найден, то вернет True и <i>AAsset</i> .</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Find(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]]; out AAsset: [[FGX.Assets.TfgAsset|TfgAsset]]): [[Boolean]]</code> | ||
+ | <span style="color:gray">Описание отсутствует.</span> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Find(const AName: [[TfgAssetName|TfgAssetName]]; out AAsset: [[T]]): [[Boolean]]</code> | ||
+ | |||
+ | <p>Поиск ресурса указанного класса по имени. Если ресурс найден, то вернет True и <i>AAsset</i> .</p><div class="info">Приоритеты в поиске: <Текущая платформа> - <Текущий класс устройства>, <Текущая платформа> - <Универсальный класс устройств>, <Универсальная платформа> - <Текущий класс устройства>, <Универсальная платформа> - <Универсальный класс устройств>.</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Find(const AName: [[TfgAssetName|TfgAssetName]]; out AAsset: [[FGX.Assets.TfgAsset|TfgAsset]]): [[Boolean]]</code> | ||
+ | <span style="color:gray">Описание отсутствует.</span> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">NotifyLinks()</code> | ||
+ | |||
+ | <p>Уведомление всех клиентов о том, что ресурсы обновились.</p><div class="info">Для внутреннего использования!</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">NotifyLinks(const AAssetName: [[TfgAssetName|TfgAssetName]])</code> | ||
+ | |||
+ | <p>Уведомление всех клиентов ресурса <i>AAssetName</i> о том, что ресурс обновился.</p><div class="info">Для внутреннего использования!</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">NeedReleaseFromMemory(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]]): [[Boolean]]</code> | ||
+ | |||
+ | <p>Нужно ли выгружать указанные ресурс <i>AAsset</i> из памяти или нет?</p><div class="info">Использует настройки управления ресурсами <i>Options</i> и событие <i>OnShouldReleaseFromMemoryEvent</i> . Используется только для автоматической выгрузки ресурса из памяти на основании методов <i>TfgAsset.Acquire</i> и <i>TfgAsset.Release</i> .</div> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">class function</syntaxhighlight> || <code lang="Delphi">HasCurrent(): [[Boolean]]</code> | ||
+ | <span style="color:gray">Описание отсутствует.</span> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">class function</syntaxhighlight> || <code lang="Delphi">CurrentDeviceClass(): [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]]</code> | ||
+ | <p>Текущая класс устройства, на которой запущено приложение.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">class function</syntaxhighlight> || <code lang="Delphi">CurrentPlatform(): [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]</code> | ||
+ | <p>Текущая платформа, на которой запущено приложение.</p> | ||
+ | |} | ||
+ | |||
+ | == Свойства == | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>AutoreleaseOptions: [[FGX.Assets.TfgAssetAutoreleaseOptions|TfgAssetAutoreleaseOptions]]</code> | ||
+ | <p>Настройки управления выгрузкой "тяжелых" данных, связанных c ресурсами.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Current: [[FGX.Assets.TfgAssetsManager|TfgAssetsManager]]</code> | ||
+ | |||
+ | <p>Возвращает текущий менеджер по работе с ресурсами.</p><div class="info">В мобильном приложении он всегда один.</div> | ||
+ | |} | ||
+ | |||
+ | == События == | ||
+ | |||
+ | {| class="wikitable sortable" | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnShouldReleaseFromMemoryEvent: [[TfgShouldReleaseFromMemoryEvent|TfgShouldReleaseFromMemoryEvent]]</code> | ||
+ | <p>Вызывается перед тем, как ресурс будет выгружен из памяти, чтобы окончательно определить нужно ли выгружать ресурс из памяти или нет.</p> | ||
+ | |- | ||
+ | | <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnGetAssetManagerInstance: [[TfgGetAssetManagerInstanceEvent|TfgGetAssetManagerInstanceEvent]]</code> | ||
+ | |||
+ | <p>Событие для переопределения экземпляра, возвращаемого в <i>TfgAssetsManager.Current</i> .</p><div class="info">FGX Native разработана так, что она работает только с одним экземпляром менеджера ресурсов. Однако, в дизайнере может быть открыто более одного FGX Native проекта. В этом случае, для каждого проекта должен существовать отдельный экземпляр менеджера. Именно это событие позволяет повесить хук средой на получение своего менеджера в зависимости от контекста IDE.</div> | ||
+ | |} |
Текущая версия на 17:12, 23 декабря 2022
Delphi
TfgAssetsManager = class (TObject)
Содержание
Описание
Менеджер управления всеми ресурсами в приложении.
Конструкторы
constructor
|
Create()
Описание отсутствует. |
Методы
procedure
|
CheckAssetNameOrRaise(const AName: TfgAssetName)
Описание отсутствует. |
procedure
|
Add(const AAsset: TfgAsset)
Добавляет ресурс в хранилище. Если в хранилище уже есть ресурс с таким же уникальным идентификатором, то бросит исключение. |
procedure
|
Remove(const AAsset: TfgAsset)
Удаляет указанный ресурс. |
procedure
|
Remove(const AName: TfgAssetName)
Удаляет ресурсы с указанным именем для всех платформ и классов устройств. |
procedure
|
Remove(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass)
Удаляет ресурс с указанным именем для конкретной платформы и класса устройств. |
procedure
|
Remove(const APredicate: TfgAssetNamePredicate)
Удаляет все ресурсы, отфильтрованные анонимной функцией. Если предикат не указан, то метода не будет выполнен.
|
function
|
Rename(const AOldName: TfgAssetName; const ANewName: TfgAssetName): Boolean
Переименовывает все ресурсы со старым именем AOldName , задавая им новое ANewName . Если хотя бы один ресурс был переименован, вернет True .
|
procedure
|
Clear()
Удаляет все ресурсы. |
function
|
Contains(const AAsset: TfgAsset): Boolean
Определяет, есть ли ресурс с уникальным ID в хранилище или нет. |
function
|
Contains(const AName: TfgAssetName): Boolean
Определяет, есть ли ресурс с указанным именем в хранилище или нет. |
function
|
Contains(const AName: TfgAssetName; const AAssetClass: TfgAssetClass): Boolean
Определяет, есть ли ресурс с указанным именем и типом в хранилище или нет. |
function
|
Contains(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass): Boolean
Определяет, есть ли ресурс с указанным именем для указанной платформы и класса устройства в хранилище или нет. |
function
|
IsEmpty(const AName: TfgAssetName): Boolean
Определяет, есть ли содержимое в ресурсе с именем AName или нет? Если ресурса нет, то он по умолчанию считается пустым.
|
function
|
GetAssetsNames(): [[TArray<FGX.Assets.TfgAssetName>]]
Возвращает названия всех доступных ресурсов. |
function
|
GetAssetsNames(const APredicate: TfgAssetNamePredicate): [[TArray<FGX.Assets.TfgAssetName>]]
Возвращает названия всех доступных ресурсов, отфильтрованных анонимной функцией. Если предикат не указан, то вернет все названия доступных ресурсов.
|
function
|
GetAssets(const APredicate: TfgAssetNamePredicate): [[TArray<FGX.Assets.TfgAsset>]]
Возвращает все доступные ресурсы, отфильтрованных анонимной функцией. Если предикат не указан, то вернет все ресурсы.
|
function
|
GetAssets(const APredicate: TfgAssetPredicate): [[TArray<FGX.Assets.TfgAsset>]]
Возвращает все доступные ресурсы, отфильтрованных анонимной функцией. Если предикат не указан, то вернет все ресурсы.
|
function
|
GetAllAssets(): [[TArray<FGX.Assets.TfgAsset>]]
Возвращает список всех ресурсов. |
function
|
GetGroupedAssets(): [[TArray<FGX.Assets.TfgAssetGroup>]]
Возвращает список ресурсов сгруппированных по имени TfgAsset.Name . Удаление списка лежит на плечах клиента. Сами эксземпляры ресурсов удалять не нужно!
|
function
|
Find(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass; out AAsset: T): Boolean
Поиск ресурса указанного класса по имени для текущей платформы и класса устройства. Если ресурс найден, то вернет True и AAsset . |
function
|
Find(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass; out AAsset: TfgAsset): Boolean
Описание отсутствует. |
function
|
Find(const AName: TfgAssetName; out AAsset: T): Boolean
Поиск ресурса указанного класса по имени. Если ресурс найден, то вернет True и AAsset . Приоритеты в поиске: <Текущая платформа> - <Текущий класс устройства>, <Текущая платформа> - <Универсальный класс устройств>, <Универсальная платформа> - <Текущий класс устройства>, <Универсальная платформа> - <Универсальный класс устройств>.
|
function
|
Find(const AName: TfgAssetName; out AAsset: TfgAsset): Boolean
Описание отсутствует. |
procedure
|
NotifyLinks()
Уведомление всех клиентов о том, что ресурсы обновились. Для внутреннего использования!
|
procedure
|
NotifyLinks(const AAssetName: TfgAssetName)
Уведомление всех клиентов ресурса AAssetName о том, что ресурс обновился. Для внутреннего использования!
|
function
|
NeedReleaseFromMemory(const AAsset: TfgAsset): Boolean
Нужно ли выгружать указанные ресурс AAsset из памяти или нет? Использует настройки управления ресурсами Options и событие OnShouldReleaseFromMemoryEvent . Используется только для автоматической выгрузки ресурса из памяти на основании методов TfgAsset.Acquire и TfgAsset.Release .
|
class function
|
HasCurrent(): Boolean
Описание отсутствует. |
class function
|
CurrentDeviceClass(): TfgDeviceClass
Текущая класс устройства, на которой запущено приложение. |
class function
|
CurrentPlatform(): TfgPlatform
Текущая платформа, на которой запущено приложение. |
Свойства
property
|
AutoreleaseOptions: TfgAssetAutoreleaseOptions
Настройки управления выгрузкой "тяжелых" данных, связанных c ресурсами. |
property
|
Current: TfgAssetsManager
Возвращает текущий менеджер по работе с ресурсами. В мобильном приложении он всегда один.
|
События
event
|
OnShouldReleaseFromMemoryEvent: TfgShouldReleaseFromMemoryEvent
Вызывается перед тем, как ресурс будет выгружен из памяти, чтобы окончательно определить нужно ли выгружать ресурс из памяти или нет. |
event
|
OnGetAssetManagerInstance: TfgGetAssetManagerInstanceEvent
Событие для переопределения экземпляра, возвращаемого в TfgAssetsManager.Current . FGX Native разработана так, что она работает только с одним экземпляром менеджера ресурсов. Однако, в дизайнере может быть открыто более одного FGX Native проекта. В этом случае, для каждого проекта должен существовать отдельный экземпляр менеджера. Именно это событие позволяет повесить хук средой на получение своего менеджера в зависимости от контекста IDE.
|