
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
04.01.2007, 18:40
|
|||
|---|---|---|---|
|
|||
Много "нового", а как "управиться"? |
|||
|
#18+
Вопрос собственно: - Если на форме предполагается разместить неопределённое (на момент создания кода) количество контролов (пусть CommandButton будет), то как ловить события этих "новичков". Тут народ описывает ситуации когда известно сколько должно создаться контролов и пишут события этих ещё не созданных кнопок заранее. Не писать же мне события CommandButton999_Click по порядку , а если и так, то вдруг надо будет 1000 -ый создать . Весь этот кошмар в Excel.VBA произойти должен. Уже перерыл кучу информации, но народ как-то VBA игнорит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.01.2007, 21:11
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
Al_666, VBA или VB - в данном случае всё равно. Надо написать класс-оболочку для контрола, где контрол описан с WithEvents, плюс класс-коллекцию таких оболочек, который будет "принимать на себя" события от оболочек, и транслировать их (события) на уровень выше (передавая идентификатор или ссылку на объект-источник события), классу, в котором уже класс-коллекция описана с WithEvents. Для Excel таковым классом может быть лист или книга. Подробнее здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.01.2007, 15:47
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
Бенедикт + И еще: Желательно весь код создания и размещения на форме контрола разместить в классе CMyItem из примера Бенедикта. И обращаться к контролам через класс-оболочку. Это поможет избежать дублирования кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.01.2007, 15:56
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
А чем не нравится ControlArray - стандартно, просто и быстро.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.01.2007, 16:11
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
dvimА чем не нравится ControlArray - стандартно, просто и быстро....Нет ее в VBA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.01.2007, 16:24
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
dvim, как Worobjoff ужЕ заметил, это на MSForms.UserForm Control Array не организуешь. WorobjoffЖелательно весь код создания и размещения на форме контрола разместить в классе CMyItem из примера Бенедикта. И обращаться к контролам через класс-оболочку. Это поможет избежать дублирования кода. Worobjoff, в моём примере реализация CMyItem может быть недоступна программисту - в данном случае в роли CMyItem выступает MSForms.CommandButton. Класс-оболочка - это CMyItemNotifier. Впрочем, я уверен, что это описка. Но люди могут запутаться. :beer: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.01.2007, 17:35
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
Бенедикт, может быть я не внимательно ваш пример прочитал. Вообще-то я попытался предупредить от дублирования функционала. Новички в ООП обычно делают такую ошибку: Ведут параллельно иерархию классов и иерархию форм. Вместо того чтобы завернуть все в классы и работать только с ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2007, 09:25
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
Может стоит ещё раз подумать - это явный косяк архитектуры Al_666Если на форме предполагается разместить неопределённое (на момент создания кода) количество контролов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2007, 10:19
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
marvanМожет стоит ещё раз подумать - это явный косяк архитектуры Al_666Если на форме предполагается разместить неопределённое (на момент создания кода) количество контролов Ничего подобного, видимо это просто гибкая система, которая выстраивается динамически по описанию из БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2007, 13:50
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
Melkiades marvanМожет стоит ещё раз подумать - это явный косяк архитектуры Al_666Если на форме предполагается разместить неопределённое (на момент создания кода) количество контролов Ничего подобного, видимо это просто гибкая система, которая выстраивается динамически по описанию из БД.И делают эту систему в Excel.VBA ? Тогда это явный косяк архитектуры мозга. А автор, похоже, уже забил на эту проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2007, 14:25
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
AntonariyА автор, похоже, уже забил на эту проблему. А мы и без него развлекаемся . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.01.2007, 22:24
|
|||
|---|---|---|---|
|
|||
Много "нового", а как "управиться"? |
|||
|
#18+
Про архитектуру мозга очень понравилось, но ИМХО это решают на форумах психиатров - не гоже кухарке государством управлять... А касательно решения вопроса - ответ найден, но!!! Есть ещё один вопрос: - если кнопку или фрейм на форме создать можно и отлавливать их события тоже оказывается не сложно, то создать Label с WithEvents - нет возможности, однако, если события Label_Click() существуют, то как быть с метками? - Нужно создать Label RealTime и поймать событие Click. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2007, 10:51
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
Как решил проблему, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2007, 11:32
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
Al_666Есть ещё один вопрос: - если кнопку или фрейм на форме создать можно и отлавливать их события тоже оказывается не сложно, то создать Label с WithEvents - нет возможности, однако, если события Label_Click() существуют, то как быть с метками?Private WithEvents sss As MSForms. Label 'О, чудо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.01.2007, 11:36
|
|||
|---|---|---|---|
Много "нового", а как "управиться"? |
|||
|
#18+
"Чудо", кстати, объясняется просто: в библиотеке Excel есть скрытый класс Label, а библиотека Excel в списке подключённых библиотек стоит раньше Microsoft Forms. Проверить можно по нажатию F2 и включению опции "Show Hidden Members". Мораль всё та же: полностью квалифицируйте имена объектных типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=60&mobile=1&tid=2164708]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 424ms |

| 0 / 0 |
