Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CommandBarButton.OnAction, Передача значения в процедуру 
:(
    Опции темы
Naghual
Дата 23.2.2005, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Здравствуйте уважаемые.

Циклом создается N кнопок на панели инструментов. Все они могут быть обработанны в одной процедуре, если знать какая кнопка была нажата.
Возможно ли передавать параметр в процедуру через свойство OnAction?

Очень не хочется делать N количество процедур! Это и грустно, и ограничивает возможности.



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Jureth
Дата 24.2.2005, 06:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 23.11.2004
Где: где-то в Западной Сибири

Репутация: 1
Всего: 3



Можно, например так:
Код
btn.OnAction="test(""string value"", number)"

соответственно описываем процедуру:
Код
sub test(s$, n%)
'...
end sub


Это сообщение отредактировал(а) Jureth - 24.2.2005, 06:27
PM   Вверх
Akina
Дата 24.2.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Naghual @ 23.2.2005, 14:51)
Циклом создается N кнопок на панели инструментов

Заранее создаем управляющий массив и юзаем его.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Naghual
Дата 24.2.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Jureth, если бы все было так просто - я бы вопрос не задавал.
Дело в том, что как только процедура test требует для себя параметры, она перестает быть видимой как глобальный макрос Екселя, в следствии чего, ее нельзя использовать для OnAction.

Akina, я как раз от этого и хочу уйти!


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Akina
Дата 24.2.2005, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Naghual
Если ты от этого пытаешься уйти, то зачем тогда ведешь речь о единой процедуре обработки? Либо ты имеешь кучу независимых кнопок - у каждой уникальное имя и набор процедур реакции на события, либо имеешь массив кнопок - с одним именем, набором процедур и управляющим массивом. Промежуточных вариантов нет. Нельзя быть немножко беременной... Но если уж тебе непременно конпки независимые, а процедура одна, то каждая индивидуальная процедура реакции на событие делает единственную вещь - вызов общей процедуры со специфичными для данной кнопки параметрами:

Код

Sub SomeKnob_OnAction(SomeParameter As SomeType)
Call Common_OnAction(SomeParameter, "SomeKnob")
End Sub

Sub AnotherKnob_OnAction(SomeParameter As SomeType)
Call Common_OnAction(SomeParameter, "AnotherKnob")
End Sub

Sub Common_OnAction(SomeParameter As SomeType, KnobName As String)
...
End Sub


PS. SomeKnob_OnAction может и не иметь параметров. Есссно. Это я к тому что как только процедура test требует для себя параметры, она перестает быть видимой как глобальный макрос Екселя - но по-любому каждому кнопу своя начальная процедура...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Naghual
Дата 24.2.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Цитата
по-любому каждому кнопу своя начальная процедура...
Вот от этого и хотел уйти. Но так как
Цитата
Нельзя быть немножко беременной...
то наверное прийдется.
smile


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1034 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.