При автоматизации Adobe Illustrator CS3 с помощью VBA я обнаружил, что назначение логической переменной логическому свойству всегда приводит к присвоению False:
Dim New_Path As Illustrator.PathItem
Dim v As Boolean
' ...
v = True
New_Path.Filled = v ' ERROR: New_Path.Filled is False
v = False
New_Path.Filled = v ' New_Path.Filled remains False
Присвоение константе отлично работает:
Dim New_Path As Illustrator.PathItem
' ...
New_Path.Filled = True ' New_Path.Filled is True
New_Path.Filled = False ' New_Path.Filled is False
Проверено для различных логических свойств AI, таких как PathItem.Stroked
, Layer.Visible
и т. д.
Проверено для Photoshop.ArtLayer.Visible
.
Проверено для VB6.
Итак, я считаю, что такое поведение характерно для продуктов Adobe Adobe Creative Suite.
Это баг или фича?
Dim New_Path As New Illustrator.PathItem
. Можешь попробоватьNew_Path.Filled = Cbool(v)
- person   schedule 15.12.2014CBool()
решение в качестве ответа? - person   schedule 15.12.2014