|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.08.2010, 16:11 | #1 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Программное изменение свойств UserForm по умолчанию
Уважаемые профессионалы, хотелось бы услышать Ваш приговор
Возможно ли при закрытии книги (надстройки) с UserForm сохранить и внесенные программно изменения свойств ее Controls? В частности, свойств Visible и Enabled? При закрытии книги с сохранением, независимо от того, выгружалась ли форма (немодальная, имеется ввиду), она все-равно выгрузится и при новом пуске ее Controls получат свойства, прописанные в окне свойств vba. Может есть возможность программно менять свойства в этом окне? Проблема актуальна в случаях, когда для универсальности создается форма (или совокупность форм) для некоего максимального варианта, а для меньших - вид формы регулируется видимостью и доступом к элементам. Приходится при каждом пуске проги эти свойства заново устанавливать, что ощутимо сказывается на быстродействии. У меня, например, 6 форм с общим количеством элементов около 1000. Соответственно, и адресация к элементам не прямая, по имени, а поиском, по типу и индексированным именам Подскажите, плиз |
13.08.2010, 16:18 | #2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Я думаю,что есть 2 варианта.
1.Запись параметров в реестр. 2.Создать INI файл и записывать читать данные с него
Анализ,обработка данных Недорого
|
13.08.2010, 16:26 | #3 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Спасибо, doober!
Что-то такое видел у Уокенбаха, надо глянуть. Вдруг въеду - я совсем профан по реестру и ini Неужели это и всё? |
13.08.2010, 16:29 | #4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Будет сегодня время.сделаю простенький пример
Анализ,обработка данных Недорого
|
13.08.2010, 16:33 | #5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Всё.
При закрытии формы перебираем в цикле все контролы, и записываем значения нужных свойств в реестр. При открытии формы - обратная операция (считываем все значения из ветки реестра, ищем соответствующие контролы, и назначаем свойствам нужные значения) Цитата:
Кода будет меньше - но на скорости работы макроса это не скажется. |
|
13.08.2010, 16:38 | #6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Там всего-то три команды: GetSetting, SetSetting и GetAllSettings, если работать с реестром. Т.е. в реестр тебе нужно записывать, например индекс или имя контрола и его значение, а потом читать сохранённые значения. Не думаю, что это очень убыстрит
Лучше день потерять — потом за пять минут долететь!©
|
13.08.2010, 16:43 | #7 | |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
Цитата:
если после инсталляции я сохраню введенные изменения в реестре, то при последующих пусках проги системы защиты верещать не будут, поскольку я только считываю данные, не меняя их? |
|
13.08.2010, 16:47 | #8 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
А почему системы защиты будут верещать? Ведь ты пишешь в ветку HKEY_CURRENT_USER\Software\VB and VBA Program Settings
Лучше день потерять — потом за пять минут долететь!©
|
13.08.2010, 16:47 | #9 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
|
13.08.2010, 16:48 | #10 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Работа с реестром ведется в ветке HKEY_CURRENT_USER\Software\VB and VBA Program Settings, и пользователь Windows даже с самыми ограниченными правами имеет право на запись в этом разделе реестра. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MS Outlook: изменение свойств автоархивации папки | aviette | Фриланс | 11 | 20.12.2009 00:50 |
массовое изменение свойств компонентов | CraZZy RabbIt | Компоненты Delphi | 1 | 15.03.2009 23:13 |
Изменение свойств файла | dimonbest | Win Api | 7 | 23.02.2009 20:42 |
Изменение свойств компонентов | jocry | Общие вопросы Delphi | 9 | 10.02.2009 10:27 |
изменение формата всех Label на UserForm | Иван Иванович | Microsoft Office Excel | 1 | 01.12.2008 14:30 |