![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Марат |
|
|||
|
Unregistered |
Кто подскажет, как можно восстановить положение и состояние объектов при повторном запуске программы?
|
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
Вобще существуют специализированные компоненты, которые сохраняют состояние формы в реестр, в JEDI помоему есть, но я честно говоря никогда ими не пользовался, если надо было вручную в реестр (или Ини-файл) записывал
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Poseidon |
|
||||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Вот, держи универсальный алгоритм сохранения настроек:
SaveSettings первое, что делает функция, это создает поток данных в памяти, он как раз и будет тем буфером, в котором и будут храниться все настройки. Далее функция начинает перебор всех компонентов на форме. Если очередной компонент является TCheckBox или TEdit (можно добавить и другие компоненты), то в буфер записываются их основные свойства, т.е. Checked и Text соответственно (можно записывать и другие свойства). Далее мы записываем буфер как двоичные данные в реестр. LoadSettings сначала получаем размер записанных настроек, выделяем под них память, считываем, переносим для удобства в TMemoryStream. Порядок не нарушается, т.к. пробег по контролам всегда идет по строго определенной последовательности указанной TabOrder. Все! Теперь можно добавлять новые настройки и компоненты (TCheckBox и TEdit в данном примере), удалять старые и не изменять код. В данном случае код упрошен, необходимо предусмотреть также обход контролов на панелях (TPanel), группах (TGroupBox) и т.п. PS. В параметр Form передается имя формы на каторой "лежат" компопенты, параметры каторых мы хотим сохранить. Вызываются функции:
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||||
|
|||||||
| Марат |
|
|||
|
Unregistered |
Огромное спасибо, попробуем применить на практике. |
|||
|
||||
![]()
|
| Правила форума "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. |