Форум: "Начинающим";
Текущий архив: 2009.09.20;
Скачать: [xml.tar.bz2];
ВнизКак лучше хранить в реестре настройки нескольких форм ? Найти похожие ветки
← →
b/@. © (2009-07-14 12:56) [0]Добрый день.
Вопрос скорее не по функционалу, а по дизайну...
Есть несколько форм, каждая из которых хранит свои настройки в реестре и на данный момент в каждой из них находится функция такого вида:
procedure T_main.LoadParams();
begin
with TRegistry.Create(KEY_READ) do try
RootKey := REG_RootKey;
if OpenKey(REG_ParamKey, false)
then try
Left := ReadInteger(REG_Left);
Top := ReadInteger(REG_Top);
finally
CloseKey();
end else ;
finally
Free();
end;
end;
Как вы думаете, как лучше поступить - оставить как есть и в каждой новой форме делать свою отдельную функцию, или же свести функцию по чтению настроек в другой юнит и читать настройки для всех форм за один раз ?
PS: Не нравятся мне эти множественные обращения к реестру и создания/удаления TRegistry :(
← →
clickmaker © (2009-07-14 12:59) [1]если есть вероятность, что юзер никогда не откроет какую-то из форм, то есть смысл в каждой новой форме делать свою отдельную функцию. Имя ключа, кстати, может быть именем формы, тогда функцию можно вынести в утилитарный юнит.
Если же формы по-любому появятся, есть смысл сразу прочесть
← →
QAZ (2009-07-14 13:09) [2]Людии !!!
Сколько можно засирать реестр своими "опциями" и "параметрами" ?
все опции можно загнать в один большой record и за один раз писать\читать в файл
← →
Dennis I. Komarov © (2009-07-14 13:24) [3]
> Людии !!!
> Сколько можно засирать реестр своими "опциями" и "параметрами"
> ?
> все опции можно загнать в один большой record и за один
> раз писать\читать в файл
Можно... :)
В некоторых случиях это действительно оправдано... Но если уж пишем в реестр, то обязательно заботимся об удалении того, чего написали если удаляем прогу...
← →
Anatoly Podgoretsky © (2009-07-14 13:27) [4]> b/@. (14.07.2009 12:56:00) [0]
Я не знаю как лучше, могу сказать как у меня.
У меня размазано, локализировано по формам. На входе считывание, относящее только к этой форме, на выходе сохранение.
Мне не надо нафиг читать все настройки разом, мудрить с именованиями и возможно, вероятность практически единица, что большинство настроек никогда не потребуются во время работы программы.
← →
QAZ (2009-07-14 13:47) [5]
> В некоторых случиях это действительно оправдано...
интересно в каких
← →
ZAQ (2009-07-14 13:50) [6]> QAZ (14.07.09 13:09) [2]
1. Зачем кричать?
2. Существуют опции и параметры, которые ОБЯЗАНЫ быть в реестре, потому что именно оттуда они читаются служебными системными программами. Не приходилось писать мультиязычные сервисы, например?
← →
b/@. © (2009-07-14 14:03) [7]
> QAZ (14.07.09 13:09) [2]
> Людии !!!
> Сколько можно засирать реестр своими "опциями" и "параметрами" ?
> все опции можно загнать в один большой record и за один раз писать\читать в файл
Вы это лучше расскажите вашему администратору домена и групповых политик...
> Anatoly Podgoretsky © (14.07.09 13:27) [4]
> Я не знаю как лучше, могу сказать как у меня.
Именно это и имел ввиду :\
> clickmaker © (14.07.09 12:59) [1]
> если есть вероятность, что юзер никогда не откроет какую-то из форм, то есть смысл в каждой новой форме делать свою отдельную функцию. Имя ключа, кстати, может быть именем формы, тогда функцию можно вынести в утилитарный юнит. Если же формы по-любому появятся, есть смысл сразу прочесть
Можно было бы сделать и общую функцию, но у каждой формы есть свойства, которые могут понадобиться при следующем запуске... кажеться подсказали интерсную идейку, сделать нужные свойства published и писать в форму одним циклом :)
← →
QAZ (2009-07-14 14:20) [8]
> Существуют опции и параметры, которые ОБЯЗАНЫ быть в реестре,
> потому что именно оттуда они читаются служебными системными
> программами. Не приходилось писать мультиязычные сервисы,
> например?
это какиеш такие параметры интересно :)
> Вы это лучше расскажите вашему администратору домена и групповых
> политик...
а какие у вашего проблемы возникают ?
← →
b/@. © (2009-07-14 14:34) [9]
> а какие у вашего проблемы возникают ?
А такие, что мест для хранения настроек программы всего два:
в реестре в HKCU\Software\ и на диске <username>\Application Data\.
Не вижу особой разницы, чем засирание реестра отличается от засирания диска :)
← →
Dennis I. Komarov © (2009-07-14 14:46) [10]
> А такие, что мест для хранения настроек программы всего
> два:
> в реестре в HKCU\Software\ и на диске <username>\Application
> Data\.
>
> Не вижу особой разницы, чем засирание реестра отличается
> от засирания диска :)
Не ваша правда, это лишь места для хранения юзерских настроек.
> интересно в каких
Ну к примеру, есть некая настройка, которая доступна юзеру(ам) только для чтения. Где ее будем хранить?
← →
ZAQ (2009-07-14 14:47) [11]> QAZ (14.07.09 14:20) [8]
> это какиеш такие параметры интересно :)
Регистрация сервисов.
Регистрация библиотек сообщений.
Регистрация листенеров журнала событий.
Регистрация апплетов Панели Управления.
Регистрация COM-серверов.
Регистрация расширений имен файлов и операций с ними.
И другие.
← →
b/@. © (2009-07-14 14:51) [12]
> Dennis I. Komarov © (14.07.09 14:46) [10]
> Не ваша правда, это лишь места для хранения юзерских настроек.
Поясните, в чём я не прав ?
← →
Игорь Шевченко © (2009-07-14 15:06) [13]
> Ну к примеру, есть некая настройка, которая доступна юзеру(ам)
> только для чтения.
это как ?
← →
QAZ (2009-07-14 15:06) [14]
> Регистрация сервисов.
> И другие.
путаете теплое с мягким, это "опции" не проги ,а ОС
> Не вижу особой разницы, чем засирание реестра отличается
> от засирания диска :)
с учетом того что реестр частично либо полностью загружается в память,
то после установки и спользования десятка прог, авторы которых не видят разницы, она, эта разница кокраз и проявляется.
кроме того писать в файл просто занимает мало кода
> Ну к примеру, есть некая настройка, которая доступна юзеру(ам)
> только для чтения. Где ее будем хранить?
в файле :)
проблемма то в чем ?
← →
MonoLife © (2009-07-14 15:13) [15]Имхо, в 90% случаев хватает ini файла в каталоге программы...
← →
clickmaker © (2009-07-14 15:14) [16]> [15] MonoLife © (14.07.09 15:13)
медленно, и размер ограничен
но если настроек немного, то хватает. К тому же на флэшке таскать можно. Как и xml, впрочем
← →
Игорь Шевченко © (2009-07-14 15:21) [17]
> с учетом того что реестр частично либо полностью загружается
> в память
да ну ?
← →
ZAQ (2009-07-14 15:22) [18]> QAZ (14.07.09 15:06) [14]
> путаете теплое с мягким, это "опции" не проги ,а ОС
А Вам о чем говорят?
>> Существуют опции и параметры, которые ОБЯЗАНЫ быть
>> в реестре, потому что именно оттуда они читаются служебными
>> системными программами.
О том же самом и говорят. И никто ничего не путает.
И потом - что такое "ОС"? Вот, например, написал я чисто прикладную программу, которая графики строит, а хранит их в файлах с расширением GRF. И зарегистрировал операции open, edit и print для расширения GRF.
И что? После этого моя программа, которая всего лишь строит графики, перестала быть прикладной и стала системной? Блокнот регистрирует расширение TXT - он, выходит, тоже системная программа?
Сдается, что теплое с мягким не я путаю. А кто-то другой.
← →
b/@. © (2009-07-14 15:27) [19]
> QAZ (14.07.09 15:06) [14]
> с учетом того что реестр частично либо полностью загружается в память,то после установки и спользования десятка прог, авторы которых не видят разницы, она, эта разница кокраз и проявляется.
Ключевое слово выделено.
С учётом того, что размер реестра свежеустановленной Windows XP порядка десятка мегабайт, а размер всех настроек моей программы в лучшем случае 1 килобайт. То получается, чтобы засрать реестр так как это делает Microsoft понадобиться по меньшей мере 10 000 таких вот незадачливых программ :)
← →
QAZ (2009-07-14 16:58) [20]
> ZAQ
в теме реч идет об опциях прикладной мпрограммы
а не об опциях проводника\оболочки чем и является регистрация расширений например
такчто ничо я не путаю
Microsoft к сожалению сам открыл ящик пандоры, дав возможность кому ни лень, неограниченно использовать реестр
← →
clickmaker © (2009-07-14 17:28) [21]> неограниченно использовать реестр
да щас. Простой смертный очень даже ограничен. Разделом current-user.
Просто мы, программеры, привыкли, что имеем локальноадминские права обычно
← →
Inovet © (2009-07-14 17:54) [22]> [20] QAZ (14.07.09 16:58)
> Microsoft к сожалению сам открыл ящик пандоры, дав возможность
> кому ни лень, неограниченно использовать реестр
Этот ящик открыли после другого: ini в каталог системы. Потом ещё ящик есть, выше писали.
← →
QAZ (2009-07-14 17:56) [23]
> Разделом current-user.
я имел ввиду не доступ к разделам а объем хлама который можно туда залить
и прочие Runы
а под админом сидят 90% людей на планете замля
← →
Loginov Dmitry © (2009-07-14 21:36) [24]
> Как вы думаете, как лучше поступить
Думаю, что не стоит страдать фигней. Бери библиотеку RxLib. Там есть компонент TFormStorage. Просто кидаешь его на форму, указываешь:
UseRegistry=True
RegistryRoot=prCurrentUser
IniFileName=КлючРеестра
и все! Он сам все великолепно сделает. Причем отработает правильно при любом разрешении экрана. Никакой головной боли.
← →
Германн © (2009-07-14 21:48) [25]
> и все! Он сам все великолепно сделает. Причем отработает
> правильно при любом разрешении экрана. Никакой головной
> боли.
Были с ним проблемы. :(
← →
b/@. © (2009-07-15 10:51) [26]
> QAZ (14.07.09 17:56) [23]
> а под админом сидят 90% людей на планете замля
Возможно у вас есть данные по планете Земля, у меня таких данных нет :(
Но по нашему предприятию могу сказать - под админом сидят 4%, если исключить юниксоидов, которые под админом сидят карне неругулярно - то 2,5% :)
> Loginov Dmitry © (14.07.09 21:36) [24]
> Думаю, что не стоит страдать фигней.
Думаю, я не страдаю фигнёй. Потому как кроме свойств форм, есть и другие поля, которые нужно сохранять. Притом TFormStorage действительно делает с реестра мусорку...
> clickmaker © (14.07.09 17:28) [21]
> Просто мы, программеры, привыкли, что имеем локальноадминские права обычно
Привыкли, но при этом не отвыкаем тестировать програмки у юзеров :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.09.20;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.004 c