IniProp

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

IniProp

Сообщение Osmiy » 11.05.2016 07:43:37

Где-то в LCL, FCL (или даже RTL) есть класс, который может сохранять свои (и своего потомка) опубликованные свойства в ini-файл и загружать их оттуда.
Подскажите пожалуйста его местонахождение и название?
Osmiy
новенький
 
Сообщения: 44
Зарегистрирован: 07.05.2016 21:18:39

Re: IniProp

Сообщение alexs » 11.05.2016 09:32:21

TIniPropStorage
У формы находится список свойств формы и её дочерних компонентов которые сохраняется - StoredProperty
Работают в связке.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: IniProp

Сообщение Osmiy » 11.05.2016 10:43:29

Нет, не то. Это компонент, который сохраняет чужие опубликованные свойства, а я спрашиваю про класс, который может свои (своего потомка) опубликованные свойства сохранять.
В интернете полно статей как такой класс реализуется на основе RTTI. И у меня есть своя реализация, но я читал давно что такой класс есть уже реализованный в Lazarus/FPC. И хочу использовать его.
Osmiy
новенький
 
Сообщения: 44
Зарегистрирован: 07.05.2016 21:18:39

Re: IniProp

Сообщение Ichthyander » 11.05.2016 13:22:42

Это компонент, который сохраняет свойства нужного Вам класса, заданные в TControl.SessionPropeties для всех наследников TControl. Мне кажется, как раз то, что Вы искали
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 698
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: IniProp

Сообщение Osmiy » 11.05.2016 14:18:50

Нет же, не то. Это подходит для сохранения свойств компонентов. Для этого я его и так уже использую. Нужно хранить произвольную информацию. Да, это можно и с помощью TIniPropStorage каждый раз вручную вписывая строку-название параметра (или вводить строковую константу глобальную), а можно как у описываемого мною класса добавить публишед свойство и юзать его. Это специально придумано, чтобы в крупных проектах не заморачиваться вручную с набором опций программы.

Вот эту чтуку прошу
http://forum.vingrad.ru/topic-155628.html
Ну вот, теперь, когда на вооружении у нас есть базовые знания о противнике, чье имя, на первый взгляд выглядит непонятно и пугающее — RTTI настало время большого примера. Мы приступаем к созданию объекта опций для хранения различных параметров, использующего в своей работе мощь RTTI на полную катушку. Чем же примечателен, будет наш будущий класс? А тем, что он реализует сохранение в ini-файл и считывание из него свои свойства секции published. Его потомки будут иметь способность сохранять свойства, объявленные в секции published, и считывать их, не имея для этого никакой собственной реализации. Надо лишь создать свойство, а все остальное сделает наш базовый класс. Сохранение свойств организуется при уничтожении объекта (т.е. при вызове деструктора класса), а считывание и инициализация происходит при вызове конструктора класса. Декларация нашего класса имеет следующий вид:
Osmiy
новенький
 
Сообщения: 44
Зарегистрирован: 07.05.2016 21:18:39

Re: IniProp

Сообщение Ichthyander » 11.05.2016 14:31:37

Да, интересно. Я тоже реализовываю сохранение параметров объекта класса. Сделал один базовый класс, который сохраняет все это в ini файле, а все его наследники последовательно добавляют дополнительные свойства для хранения. Как бы свой велосипед. С автоматическим сохранением всех свойств published, наверное, было бы удобнее.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 698
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: IniProp

Сообщение alexs » 11.05.2016 14:56:35

Ichthyander писал(а):С автоматическим сохранением всех свойств published, наверное, было бы удобнее.

Через RTTI это делается очень просто.
модуль TypeInfo, функции GetPropInfos, GetPropInfo
Ну и прочие функции этого модуля.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: IniProp

Сообщение Ichthyander » 11.05.2016 19:57:07

Спасибо за инфу, возьму на заметку
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 698
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 232

Рейтинг@Mail.ru