![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Azzy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.3.2003 Репутация: нет Всего: нет |
Вопсрос вот в чём: можно ли, и если можно, то как, сохранить изменение свойств компонента во время выполнения программы без использования дополнительных файлов или реестра? F. e. у проги в меню есть настройки, я там настраиваю, настраивю, закрываю прогу, а когда открываю, всё настроеное мною теряется... так вот надо сохранить изменения компонентов (f. e. TRadioButton ).
Это сообщение отредактировал(а) Azzy - 5.3.2003, 06:50 |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
В глобальные переменные и т.д.
-------------------- |
|||
|
||||
Azzy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.3.2003 Репутация: нет Всего: нет |
Всмысле... т.е. а по подробнее ... Я конечно не спец, но все с чего-то начинали.
|
|||
|
||||
dr.ZmeY |
|
|||
![]() Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
Делаешь файлик *.ini, это самое простое, обзываешь его, например config.cfg (я так обычно делаю) и туда записываются все настройки... При их изменении - автоматически... Когда прогу загружаешь, то значения из этого файла присваиваются глобальным переменным и флагам, отвечающим за настройку твоего меню... Всё очень просто...
|
|||
|
||||
Azzy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.3.2003 Репутация: нет Всего: нет |
Спасибо за совет, я попробую, но есл сущ. другой способ( без файлов и без реестра) то напишите о нём, плииииз
|
|||
|
||||
Medved |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Но абсолютно противоречит вопросу....
Глобальные переменные - это переменные, которые видны в любом месте программы, т.е. в любой процедуре любого модуля. Их можно объявить в разделе Var глобального модуля. -------------------- |
||||
|
|||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Самый простой способ
1) Ставим библиотеку RxLib 2) Ставим на форму компонент FormStorage 3) Делаем двойной щелчёк на комоненте, в открывшемся окне выбираем те свойства которые надо запомнить Всё - теперь программа будет "вспоминать" при загрузке те настройки, что были при её включении (физически она их будет хранить в INI или реестре, но руками делать ничего не надо будет) -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
dr.ZmeY |
|
|||
![]() Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
А, сорри, мимо ушей пропустил... Для этих целей даже удобней будет свой тип создать:
|
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Согласен... -------------------- |
|||
|
||||
Azzy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 5.3.2003 Репутация: нет Всего: нет |
Ещё раз феньнкс.
|
|||
|
||||
Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Сомнительно... Скорее процедуру, да не перечислять настройки, а через RTTI - в общем строк 40 кода, но это если умеешь это всё делать, а если нет, то тогда готовый компонент самое оно. А по поводу того где хранить есть несколько вариантов: 1) INI файл или ещё какой-нибудь файл. Достоинства: легко найти, стереть, редактировать, перенести. Недостатки: не обеспечивает разделение глобальных настроек и настроек каждого пользователя (или это надо специально организовывать), стандартные INI файлы имеют большие ограничесния на сохраняемые типы и объём инфы, самопальные - довольно долго писать интерфейс... 2) Реестр. Достоинства: стандарт хранения такой инфы в среде виндов, поддержка глобальных и локальных для пользователя установок, готовая древовидная структура. Недостатки - ограничение по объёму инфы, трудность удаления и редактирования, при большом объеме - замедление работы винды, замусоривание системы. 3) Базы данных - очень удобный и быстрый способ хранения инфы, но к сожалению обычно необходимо тащить кучу драйверов. Я использую VolgaDB для этих целей - очень удобно и быстро, драйверов не требуется, поддержка очень многих типов, но интерфейс прийдётся писать самому - я писал целую библиотеку классов (около 30 классов) для автоматического хранения свойств, языковых настроек и т.п. но это для серьёзной работы, для простых проектов это не надо, достаточно простых вещей 4) Хранение в оперативной памяти - например в атомах - будет хранится до перезагрузки системы 5) Хранение на физическом диске и в с собственном exe - хаккерские методы, реализовать можно, но не рекомендуется.... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
Позволю себе не согласиться. Класс TStrings упрощает написание интерфейса до 20 минут максимум. К тому же это самый быстрый и легковесный способ. |
|||
|
||||
Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Если ты имеешь ввиду только лишь запись в файл то да, а реализация записи всех типов через RTTI займёт немного больше времени - для меня часа 2-3, для того кто с RTTI не работал, возможно разбираться надо будет несколько дней... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
А поподробнее вот про exe можно? Все мы в душе хацкеры.... ![]() Это сообщение отредактировал(а) serious - 8.3.2003, 23:32 -------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
1) Например мы знаем что размер EXE 300Kb 2) Создаём файл с настройками 3) Вычленяем из EXE файла первые 300Kb в отдельный файл 3) Создаём BAT файл который пытается слить EXE и файл настроек в один файл 4) Запускаем BAT 5) Закрываем программу 6) Как только программа закроется то BAT файл изменит EXE на новый файл с настройками. У этого способа есть недостаток - чтобы изменить свойства и запомнить их необходима перезагрузка программы. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |