![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
У меня есть форма. На форме грид. Пользователь волен менять размеры столбцов в гриде. Изменённые размеры автоматически сохраняются при закрытии формы и загружаются при старте.
Я хочу добавить возможность сброса размеров установленных пользователем. Т.е. иметь возможность установить размеры, заданные при создании программы(в Design-time). Единственный вариант, который мне пока приходит в голову - это удаление сохранённых данных и перезапуск формы. Но этот вариант не представляется удобным. Кто-нибудь может подсказать другой способ? |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
А почему бы не сохранять это все в запись и потом читать из нее все нужные поля?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
ну смотри.. если ты сохраняеш настройки с помощью класса TiniFiles, то на верное используеш так
т.е. ты можеш просто удалить значение str1 в секции 'section' и в итоге если значение этого нет то подставиться по умолчанию 'пусто' ну и при закрытии формы просто переписывать ini файл. другой вариант (самый ламерский), создать процедуру где будут прописаны все натройки которые по умочанию. Это сообщение отредактировал(а) Elfebet - 20.9.2006, 13:07 -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
Bose |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
alexeis1, не совсем понял... Ты предлагаешь, запоминать текущие установки перед загрузкой сохранённых? И если нужно сбросить сохранённые установки, то и присваивать их контролам(в смысле гриду)?
Первый вариант - потребует закрытия и открытия формы, что неприемлимо. Второй вариант не подходит - форм много, свойств тоже много. Всё меняется. Я не готов убивать кучу времени на поддержание процедур в актуальном состоянии. Наверное всё-таки стоит уточнить. Грид я привёл в качестве примера. Сохраняется положение формы, положения сплиттеров, размеры контролов, привязанных к сплиттеру, размеры столбцов в гридах, и ещё несколько свойств. Моя идея в следующем: ведь при старте программы все размеры контролов инициализируются данными из Executable файла. Неужели нельзя запустить процедуру инициализации ещё раз - вручную? ![]() |
||||
|
|||||
Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
ну дык вызови процедуру сохранения и потом загрузки, не закрывая форму. -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
До загрузки исходные значения можно же сохранить! -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Тогда получится, что сохранятся текущие размеры. Если же я просто загружу сохранённые размеры, то получится, что я загружу размеры сохранённые в предыдущий раз. Если же я очищё секцию с сохранёнными размерами, а потом попробую их загрузить, то получится, что размеры останутся такие же как и есть ![]() Добавлено @ 13:43 точно! ![]() Просто создам второй файл с установками, куда буду записывать Default'ные настройки перед загрузкой пользовательских настроек. И в случае необходимости читать оттуда. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Дефолтовые значения сидят в ресурсах.
Если очень захотеть, можно их оттуда вытащить. Но проще автомат - пересоздание |
|||
|
||||
Elfebet |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
я понял ты применяеш параметры для сохранения только по закрытии формы.
ну тада так: перед тем как загрузить рамеры при открытии формы сохрани куда нить рамеры текущие (т.е. которые в дизайн-тайме), ну потом если нада сбросить рамеры ты загружаеш те размеры которые сохранил для котрых они по умолчанию ![]() -------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Да тогда уж лучше создавать его один раз инсталятором, чем при каждом запуске. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Я же говорю, что я сегодня непонятливый какой то, так что не обессутьте
![]() Может просто создать ещё один экземпляр формы (или чего там нужно...) и прочитать нужные значения? Они должны быть "поумолчанию". |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Elfebet, да - именно так.
![]()
Чем лучше? Мнусы я вижу такие: для инсталлятора этот файл придётся создать мне самому. когда изменятся сохраняемые свойства, этот файл придётся обновлять. Если же о сохраняемых свойствах будет заботиться само приложение, то у отпадает масса проблем: Во-первых, данные всегда будут соответствовать самым последним изменениям в билде. Во-вторых, контроль будет происходить автоматом. В-третьих, не придётся делать инсталлятор ![]() Добавлено @ 14:11 Yanis, к сожалению не подходит. Некоторые формы создаются и инициализируются довольно долго. Заставлять пользователя со слабым компьютером ждать пару минут пока сбросятся установки, садизм ![]() В принципе, решение, которое меня устраивает найдено. Но если кто-то предложит более гибкий способ - то Добро пожаловать! С удовольствием выслушаю! Всем спасибо! ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вариант Snowy самый изящный вот например фрагмент ресурса одного из проектов
Если подумать, то можно написать процедурку, для поиска значений всех нужных свойств. Т.е. вообще не нужно будет ничего сохранять. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
||||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Snowy, alexeis1 - спасибо, вариант действительно интересный!
Правда, судя по-всему, более трудоёмкий, чем сохранение данных в Ini. Буду думать. Yanis, спасибо за наводку! Нашёл в хелпе пример. ![]() p.s. вот, StringToComponent ещё упоминается здесь Это сообщение отредактировал(а) Bose - 20.9.2006, 14:53 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |