Не срабатывает программное изменение ActiveTool'а...

Статус
Закрыто для дальнейших ответов.

Cyrax

Топикстартер
10 лет на форуме
Сообщения
588
Реакции
4
(1) В Help'е указано следующее:
Application.ActiveTool
Property ActiveTool As cdrTools
Application
Description
The ActiveTool property returns or sets the active tool in CorelDRAW.

Example
The following example changes the active tool from the Pick tool to the Eye Dropper tool.

Sub ToolActive()
If ActiveTool = cdrToolPick Then
ActiveTool = cdrToolEyeDropper
End If
End Sub

Аналогично, выполняю в коде:
ActiveTool = cdrToolNodeEdit
или ActiveTool = cdrToolPick
Но при выполнении макроса ничего не происходит - ActiveTool не меняется...
___________________________________________
(2) И ещё одна проблема.
В том же help'е указано:
cdrToolNone
0
cdrToolPick
1
cdrToolNodeEdit
2

cdrToolKnife
64
cdrToolBezierKnife
81
cdrToolEraser
68
cdrToolDrawRectangle
3
...
Согласно help'у, константе cdrToolNodeEdit соответствует число 2.
Но в реальности эта константа равна 22 - проверил в режиме отладки. Возможно, и сдругими Tool'ами подбные аномалии. при этом если присваивать ActiveTool'у не константу cdrToolNodeEdit, а число 22, то по-прежнему ActiveTool на NodeEdit не изменяется, т.е. даже в этом случае имеет место проблема (1)...
Аналогично, в режиме редактирования текста ActiveTool = 101, тогда как в help'е такого значения у ActiveTool'а вообще нет...

Откуда все эти фокусы ?
Пробовал после изменения ActiveTool'а выполнять Application.Refresh - не помогает...
 

dizzy

Участник
Сообщения
425
Реакции
1
Ответ: Не срабатывает программное изменение ActiveTool'а...

Да, есть такой неприятный баг. Можно считать что ActiveTool read-only.

Для этого мне Woxoom подсказал использовать Invoke

Application.FrameWork.Automation.Invoke "a4561afd-624f-4943-bb8e-feb4e7bb89b7" - к примеру. Вот это сложная комбинация в кавычках, и есть типа ID команды. Остается вам это число найти. C:\Program Files\Corel\CorelDRAW Graphics Suite 13\Programs\UIConfig\CorelDRAW\DrawUI.xml тама полный список их. Ищите по поиску название необходимого тула и будет вам счастье.
 

dizzy

Участник
Сообщения
425
Реакции
1
Ответ: Не срабатывает программное изменение ActiveTool'а...


Не по теме:
А если не секрет над чем работаете?
 
Статус
Закрыто для дальнейших ответов.