Страницы: 1
RSS
Как сохранить параметры Controls на форме
 
Добрый день,

подскажите пожалуйста, как проще сохранить параметры Controls на UserForm.
Ситуация следущая: Есть форма с отчетом, на ней есть картинки (Image) + текстовые поля (TextBox), пользователь может менять положение объектов на форме шрифт, размер картинок и сами картинки. Перед закрытием формы хочется сохранить параметры этих объектов (Top, Left, Tag и т.д.), чтобы при следующем открытии формы их восстановить. Но сохранять перебором выглядит как-то очень трудоемко, можно ли реализовать это как-то попроще. Сохранить желательно на лист в книгу из которой делается отчет.
 
Можно сохранить в виде текстовой строки в свойство Tag самого контрола. Перед закрытием/открытием формы восстанавливать нужные свойства из этой строки
Согласие есть продукт при полном непротивлении сторон
 
Цитата
YuryK80 написал: Сохранить желательно на лист в книгу из которой делается отчет.
А что не получается?
Код
ActiveWorkbook.Worksheets("ControlsSetting").Range("A1") = Me.TextBox1.Top
Согласие есть продукт при полном непротивлении сторон
 
Цитата
YuryK80 написал:
очень трудоемко
чего?
Код
Sub save()
i=2
for each ctr in Me.Controls
cells(i,1) = ctr.Name
cells(i,2) = ctr.Left
cells(i,3) = ctr.Top
cells(i,4) = ctr.Tag
'...
i = i+1
next
End sub

на код ушла минута.
Изменено: Dima S - 04.10.2018 19:14:38
 
Цитата
YuryK80 написал: Перед закрытием формы... сохранить параметры..., чтобы при следующем открытии формы их восстановить..
сохранять перебором выглядит как-то очень трудоемко.
Действительно, предлагают тут всякую ерунду. Не слушайте их.  
инструкция здесь

:)
 
Согласен с предыдущими ораторами!  Но вопрос так и не решен, хотя судя по ответам старших товарищей, простых решений похоже нет. :)

Решить "в лоб" перебором это:
- взять каждый контролл
- определить, что это за контролл, а как определить, что TextBox это TextBox, если он называется Itogo
- для каждого создать заранее набор сохраняемых параметров. А "завтра" на форму добавят MultiTab и снова что-то дописывать. А "послезавтра" фон на текстбоксах захотят менять и снова добавлять параметры. А предусмотреть все и сейчас - трудоемко :)

Суть вопроса сводилась в общем-то к простому предположению, что раз уж эксель хранить данные о форме, то как-то можно эти данные получить: все и сразу.

В любом случае спасибо всем кто откликнулся.

Если есть еще какие-то идеи, welcome
 
Стоп!
Цитата
пользователь может менять положение объектов на форме
Это как - в ручном режиме, в редакторе? Если да, то достаточно сохранить копию формы.
 
Цитата
vikttur написал: Это как - в ручном режиме...?
в том то и дело, что не в редакторе, а при активной форме, расставляет как надо, а потом это все на печать идет.
 
Тогда только перебор... Или другой путь решения задачи. Исходной задачи - что это за конструктор такой?
 
Тогда, остается перебор, а задачу придется упрощать за счет ограниченного набора параметров.

Не понял, что за конструктор? Если про практическое применение, то это таблица сделок. Каждая строка это набор параметров, и есть еще несколько картинок, относящихся к этой сделке. Пытался решить через сторонние приложения, но те что хорошо работают с картинками (увеличить, подрезать, расположить на листе) плохо работают с импортом из экселя, а в ручную все записывать не спортивно. Вот и решил сделать себе такой констуктор под конкретную задачу, проще всего показалось через UserForm.
 
Если интересно, создайте соответствующую тему. Может, придумается по-другому
Цитата
YuryK80 написал: проще всего показалось через UserForm.
Цитата
А "завтра" на форму добавят... А "послезавтра" фон на текстбоксах захотят менять...
Мне пока что видится, что это, наоборот, если не совсем тупиковый, то точно сложный вариант
 
Спасибо за идею,

правда у меня все это в надстройке хранится, так что сейчас попробую сделать файл с примером, а то я оказывается исходник грохнул уже
 
Цитата
YuryK80 написал: не в редакторе, а при активной форме, расставляет как надо
Вот это для меня загадка. Как это может быть? У меня подобное не получилось (перемещать контролы на активной форме)
Согласие есть продукт при полном непротивлении сторон
 
Спокойно! В другой теме нам все покажут  )
 
Цитата
vikttur написал:
нам все покажут
и это окажется лист с "контрами"  :D :-)  Чем не Used Form  ;)  
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх