RxDBGrid & RxPropertyStorage

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

kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

RxDBGrid & RxPropertyStorage

Сообщение kit »

Медленно сохраняет настройки полей. Как сделать так чтоб StorageProperty бил на главной форме и держал все в памяти до закрития программи?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Наоборот - стораже на каждой форме свой
и у него SeparatedFiles = true
Всё в дело в реализации INI файла. При большом размере он начинает тормозить.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

А если переделать OnIniSave: сохранять в StoredValues?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

StoredValues - это просто дополнительный массив для сохранения произвольных данных. Он точно также сохраняется в ini файл.
Тормоза возникают в тот момент когда много RxPropertyStorage начинают хранить в одном файле (по умолчанию он один на всех). Большие Ini файлы обрабатываются медленно.
Поэтому я и сделал наследника, у которого свойство SeparatedFiles обозначает требование своего файла для каждой формы. RxPropertyStorage, соответственно, должен быть на каждой форме свой.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

alexs писал(а):StoredValues - это просто дополнительный массив для сохранения произвольных данных.

Ну вот и сохранять в масив а записивать в ini-файл только при виходе из программи
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kit, а как быть в случае если прогу тупо выгрузят из памяти через диспетчер задач?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

kit писал(а):Ну вот и сохранять в масив а записивать в ini-файл только при виходе из программи

А он у тебя что - один? Он должен быть на каждой форме свой.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

alexs писал(а):
kit писал(а):Ну вот и сохранять в масив а записивать в ini-файл только при виходе из программи

А он у тебя что - один? Он должен быть на каждой форме свой.

Для каждой форми свой но только на главной форме.

Добавлено спустя 1 минуту 33 секунды:
Лекс Айрин писал(а):kit, а как быть в случае если прогу тупо выгрузят из памяти через диспетчер задач?

Не важно потому как там только настройки грида

Добавлено спустя 1 минуту 13 секунд:
Решил проблему сделав форму autocreate
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

kit писал(а):Для каждой форми свой но только на главной форме

Этот компонент относится к одной форме. И он должен НАХОДИТЬСЯ на этой форме. Не надо всё пихать в одну форму. Тормоза именно из-за этого.
И, кстати, в твоём варианте не будет работать Form.StoredProps.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

alexs писал(а):Этот компонент относится к одной форме. И он должен НАХОДИТЬСЯ на этой форме. Не надо всё пихать в одну форму. Тормоза именно из-за этого.
И, кстати, в твоём варианте не будет работать Form.StoredProps.

Сейчас на каждой форме свой и тороза из-за того что каждий раз как я закриваю форму, настройки записиваються в ini-файл - задержка.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kit, а точно из-за этого? Это ж какого размера должен быть ini файл, чтобы появилась явная задержка, если, зачастую, даже в Мемо (с предварительной загрузкой в StringList, а то и насильственным преобразованием кодировки) она зачастую практически незаметна?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

kit писал(а):Сейчас на каждой форме свой и тороза из-за того что каждий раз как я закриваю форму, настройки записиваються в ini-файл - задержка.

Точно признак SeparateFiles включен?
Если да - то это значить что вы сохраняете ОЧЕНЬ большие конфиги.
У меня тормоза стали заметно после того, как ini файл стал превышать 1 мег. Но для сохранялки формы это не реально большие данные.
Типичный размер такого файл - 5 - 10 килобайт.

В этом случае - тут уже надо наверное самому переписать наследника от TFormPropertyStorage с требуемым вам поведением.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

Размер файла 1килобайт - задержка 1-2 сек., может и неболшая но в Delphi небило и потому клиенти ворчат.
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

А точно в этом дело? На таких размерах не должно тормозить. У меня практически на каждой форме этот компонент используется. Парк ПК очень различен (есть одноядерные ПК ещё). Но торможения такого не наблюдал.

Там ещё можно с параметром CacheUpdates поиграться у IniFile.
Я попробую.
kit
постоялец
Сообщения: 156
Зарегистрирован: 29.09.2016 08:39:07

Сообщение kit »

На форме 7 гридов - может в етом проблема?
Ответить