|
3 / 2 / 1
Регистрация: 15.04.2019
Сообщений: 33
|
||||||||||||||||
Сохранение состояния элементов управления на форме21.01.2020, 21:27. Показов 1784. Ответов 6
Метки нет (Все метки)
Добрый вечер!
В программе, форма является владельцем визуальных компонентов. Используя этот факт, пишу код для сохранения состояния визуальных компонентов:
На одном из англоязычных форумах, говорят, что эти предупреждения являются следствием отсутствия регистрации классов TToolButton и TTabSheet в поточной системе VCL. После регистрации этих классов.
Но появилось новое при повторном открытии файла "A component named ToolButton1 already exists". Что может являться причиной этого предупреждения? Как от него избавиться? Какие есть идиомы сохранения состояния элементов формы VCL в С++ Builder?
0
|
||||||||||||||||
| 21.01.2020, 21:27 | |
|
Ответы с готовыми решениями:
6
Сохранение состояния элементов... Сохранение и загрузка элементов управления
|
|
10 / 6 / 6
Регистрация: 26.06.2017
Сообщений: 206
|
|||||||||||
| 26.01.2020, 12:06 | |||||||||||
|
Сохранение состояния компонентов я делал записью нужных свойств компонентов тупо в виде текста. Есть возможность проверить правильно ли сохранилось, и если неправильно загрузилось - выявить где ошибка.
сохранение
1
|
|||||||||||
|
3 / 2 / 1
Регистрация: 15.04.2019
Сообщений: 33
|
|
| 26.01.2020, 12:11 [ТС] | |
|
Да, это возможный вариант. В этом случае надо писать достаточно много кода и, при добавлении/удалении элементов управления, его изменять. Хотелось бы задействовать поточную систему VCL, который применяется при сохранении формы в файл *.dfm.
0
|
|
|
10 / 6 / 6
Регистрация: 26.06.2017
Сообщений: 206
|
|
| 26.01.2020, 12:21 | |
|
изменять код придется если добавить компонент типа, который не был предусмотрен, или если надо сохранить свойство, которое раньше не сохранялось, а если добавился тот, который уже есть, то можно сделать без изменения
это у меня от ComboBox1 до ComboBox100, а можно делать перебор всех компонентов и в зависимости от типа сохранять тип, имя и нужные свойства, потом читать, искать компонент, в зависимости от типа выставлять нужные свойства... Но правильней конечно так, как вы хотите, а у меня велосипед) напишите пожалуйста в посте решение если найдете
0
|
|
|
Супер-модератор
|
||
| 26.01.2020, 12:42 | ||
|
Кроме этого, если нужно именно состояние компонент в текущий момент - этот метод вообще не подходит: скажем, для StringGrid-а не будет сохранено содержимое ячеек. Ну, и на кой такое сохранение нужно? Я делал сохранение в TIniFile вручную. Больше писанины, но надежнее, будет сохраняться именно то, что нужно, а не то, что заложено разработчиками, и потом сиди и думай, "а сохранится ли вот это свойство, а вот это не забудут ли?"...
0
|
||
|
3 / 2 / 1
Регистрация: 15.04.2019
Сообщений: 33
|
|
| 26.01.2020, 13:04 [ТС] | |
|
volvo Remy Lebeau, MVP C++Builder, посоветовал очистить, от элементов управления форму, а также убрать регистрацию TToolButton и TTabSheet http://bcbj.org/forums/viewtop... e727b9bb89. После этого, ошибки типа "A component named ToolButton1 already exists" исчезли. Но, возникли другие ошибки, видимо, восстановление компонентов идёт не в правильном порядке (пока разбираюсь с эти). В общем, я прихожу к Вашему и roma2415 заключению, что процессом я не управляю и, нет уверенности, что после добавления какого-нибудь элемента, "лаконичный" код, использующий поточную систему VCL, продолжит работать правильно.
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 26.01.2020, 23:24 | ||||||
|
maksim_volodin, , я аналогичное проделывал с формой Form1, используя блок dfm из ресурсов: RCData-TForm1__
0
|
||||||
| 26.01.2020, 23:24 | |
|
Помогаю со студенческими работами здесь
7
Перебор элементов управления на форме
Мерцание элементов управления на форме Анимация элементов управления на форме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|