|
|
|
| Если я копирую, допустим кнопку, и переношу ее в пределах даже одной формы из одной вкладки в другую, то кнопка копируется без кода.
Если с копированием более или менее все понятно, так как при копировании кнопка получает иное наименование и соответственно код уже не будет работать на новой кнопке до тех пор, пока в коде не будут изменены все ссылки на новую кнопку.
Что касается перемещения, то здесь сложнее. Ясно, что причины те же. Если вдруг на форме, куда мы переносим кнопку окажется кнопка с таким же названием, то перемещаемая кнопка изменит свое наименование.
Но все равно, можно ли как-то кнопки и иные элементы формы переносить вместе с кодом? Код я согласна подправить. Это было бы удобнее, чем переносить кнопку, а потом в бейсике этот код переносить на новую кнопку. БОльше действий, неудобно.
Я почти понимаю, что я тут, наверное, снова не туда лезу. Но может меня кто поддержит в моей проблеме? Или даже кто подскажет, как быстро и просто переносить кнопку уже вместе с кодом?
Спасибо | |
|
| |
|
|
|
| На форме не могет быть двух контролов с одинаковым именем, как было замечено выше. Посему код править все равно придется. Посему можно предложить следующее:
Например весь код помещать в отдельные процедуры или функции, а на события клик и прочее вешается просто название этих процедур и ф-ций. | |
|
| |
|
|
|
| Не совсем понятна проблема.
Что мешает программно считать свойства контрола, создать контрол в другой форме и задать значения свойств (если необходимо перемещение, то в первой форме контрол удаляется)?
Можно и по другому: выбрать нужный контрол с помощью InSelection = True (не забыв сделать InSelection = False для других контролов) и выполнить
docmd.RunCommand accmdcopy
Все контрол скопирован в память.
Код тоже можно копировать: составляете список процедур - например список свойств, значение которых = "[Event Procedure]". Для правильного определения названия процедуры пригодится свойство EventProcPrefix.
Далее надо для каждой процедуры найти код.
Для этого можно использовать свойства объекта CodeModule: ProcStartLine (или ProcBodyLine надо уточнить) и ProcCountLines.
Теперь, зная начальную строку и число строк процедуры, находим текст процедуры, используя свойство Lines....
Если интересно, потом продолжу, сейчас дела .есть.. | |
|
| |
|
|
|
| Аленка, посмотрите примочку "MZTools3VBA", может понравится.
тынц | |
|
| |
|