Сайт Koder.kz сайт для Delphi программистов.

koder.kz

Web or desctop App Developer

Написать

Добавил admin | Категория Наши материалы | 18 Апреля 2014


Использование TPropStorageEh и TPropStorageManagerEh

Компоненты TPropStorageEh and TPropStorageManagerEh реализуют технологию сохранения свойств компонент в/из хранилища настроек, таких как ini-файы и реестр.
Данная версия поддерживает компоненты для сохранения/восстановления в/из ini-файлов и реестра. Базовым компонентом данной технологии является TPropStorageEh. Double-клик на компоненте в design-time открывает окно выбора свойств для сохранения. В дереве свойств вы можете выбирать нужные свойства. Список свойств это список всех published-свойств и объявленных в функции DefineProperty компонентов. Для TCollection кроме добавляется специальная ветвь свойств . Если вы выбираете подсвойство в данной ветви, компонент сохранит соответствующее подсвойство для каждого элемента коллекции.
Компонент TPropStorageEh может сохранять/восстанавливает значения свойств в поток, но для перенаправления потока в хранилище необходимо выполнить одно из следующих действий.

1. Поместите компонент, унаследованный от TPropStorageManagerEh на форму.
В данной версии есть два подобных компонента - это TIniPropStorageManEh и TRegPropStorageManEh.
Установите свойства этих компонентов и назначте в качестве свойства TPropStorageEh.StorageManager этот компонент.
2. Либо вы можете один раз написать код для регистрации глобального компонента - DefaultPropStorageManager. Все компоненты TPropStorageEh, у которых свойство StorageManager не назначено будут использовать менеджер DefaultPropStorageManager для перенаправления потока значений свойств в хранилище.
Код для регистрации глобального компонента может выглядеть следующим образом:


----------- MainUnit.Pas--------
......

var
  IniPropStorageMan: TIniPropStorageManEh;

initialization

  IniPropStorageMan := TIniPropStorageManEh.Create(nil);
  IniPropStorageMan.IniFileName := 'MyIniFile.Ini';
  SetDefaultPropStorageManager(IniPropStorageMan);
end.
--------------------------------