В справке нашла функцию "Private Function object_Enabled() As Boolean", но я как то криво с ней работаю, что она у меня не работает (сори за тавтологию)
активность инструмента
- Шаки
- Активный участник
- Сообщения: 187
- Зарегистрирован: 02 июл 2008, 11:57
- Репутация: 1
- Контактная информация:
активность инструмента
Подскажите пожалуйста, как в UIControl управлять активностью инструментов (UIToolControl),т.е. при каком-то событии делать инструмент не активным.
В справке нашла функцию "Private Function object_Enabled() As Boolean", но я как то криво с ней работаю, что она у меня не работает (сори за тавтологию)
В справке нашла функцию "Private Function object_Enabled() As Boolean", но я как то криво с ней работаю, что она у меня не работает (сори за тавтологию)
-
Lforj
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 11 окт 2008, 19:12
- Репутация: 0
Re: активность инструмента
На самом деле, что бы на вопросы быстрее приходили ответы их надо ставить немного конкретнее. Не активным - в смысле «сереньким» или в смысле деактивировать инструмент (отщелкивать)?
Если делать «сереньким/не сереньким» =) это та функция, которую вы нашли
Если «щелкнуто/отщелкнуто», то:
Есть определенные нюансы использования. Я так полагаю вам необходимо «делать инструмент не активным» для ваших макросов, о которых вы интересовались несколькими топиками ниже. Так вот в макросах, эффект «серения» не будет виден в режиме отладки (т.е. когда открыт VBA). Функции о которых я говорил, вызываются в момент, когда пользователь убирает фокус с инструмента (отщелкивает), или пытается его деактивировать. По умолчанию в теле функции изменяется свойства object_Enabled и object_Deactivate соответственно.
Для того что бы менять состояние инструментов в интересующий вас момент:
Я бы сделал так 
Если делать «сереньким/не сереньким» =) это та функция, которую вы нашли
Код: Выделить всё
Private Function object_Enabled() As BooleanКод: Выделить всё
Private Function object_Deactivate() As BooleanКод: Выделить всё
Private Function object_Deactivate() As Boolean
object_Deactivate = True
End Function
Private Function object_Enabled() As Boolean
object_Enabled = True
End Function
- Объявить два флажка в пределах видимости класса
- В теле функции свойствам object _Deactivate и object_Enabled присваивать состояние флажков (в макросах параметры этих функций доопереопределить нельзя, а свойства, которые они меняют нельзя изменять за пределами функций, для этого используем флажки)
- В момент когда необходимо поменять состояние – меняем состояние флажка и вызываем соответствующую функцию
Код: Выделить всё
Public deactivateState as Boolean
Public enabledState as Boolean
‘бла-бла-бла
Private Function object_Deactivate() As Boolean
object_Deactivate = deactivateState
End Function
Private Function object_Enabled() As Boolean
object_Enabled = enabledState
End Function
‘бла-бла-бла
Private Sub MySub()
‘бла-бла-бла
if neobhodimo_deaktivirovat = true Then
‘если возникла необходимость снять фокус с инструмента
deactivateState = True
call object_Deactivate
End if
if neobhodimo_sdelat_serenkim = true Then
‘если возникла необходимость сделать инструмент «сереньким»
enabledState = FALSE
call object_Deactivate
End if
‘бла-бла-бла
End SubМожет показаться, что я ничего не делаю. Но на клеточном уровне я очень занят! =)
- Шаки
- Активный участник
- Сообщения: 187
- Зарегистрирован: 02 июл 2008, 11:57
- Репутация: 1
- Контактная информация:
Re: активность инструмента
Спасибо 
Последний раз редактировалось Шаки 12 окт 2008, 15:47, всего редактировалось 3 раза.
-
Lforj
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 11 окт 2008, 19:12
- Репутация: 0
Re: активность инструмента
Ну, что, получилось реализовать? =)
Может показаться, что я ничего не делаю. Но на клеточном уровне я очень занят! =)
- Шаки
- Активный участник
- Сообщения: 187
- Зарегистрирован: 02 июл 2008, 11:57
- Репутация: 1
- Контактная информация:
Re: активность инструмента
Да всё получилось, я использовала твои инструкции, большое спасибо , Лёшичка!!!
-
Lforj
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 11 окт 2008, 19:12
- Репутация: 0
Re: активность инструмента
Ты знаешь, зайчик, незачто =)
Может показаться, что я ничего не делаю. Но на клеточном уровне я очень занят! =)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя