-
Пробую работать с фотошопом как с COM-объектом. У интерфейса есть метод свойства Selection:
Select(Region: OleVariant; Type_: OleVariant; Feather: OleVariant; AntiAlias: OleVariant); dispid 1936483188;
Подскажите как мне описать параметр "Region : OleVariant" в Делфи (Остальные параметры по порядку это : (, (одна из const типа) PsSelectionType, 0, false).
Если я описываю Region как Array то при компиляции - "несовместимость типов". Если как вариантный массив типа varInteger - в прогоне "Неопознаная ошибка". При создании двумерного вариантого массива - в прогоне "Поддерживается одномерный массив". Вобщем мои знания на этом себя исчерпали.
-
Дополнение к вопросу, кто владеет языком JavaScript или VBScript.
В Scripting Guidе for Photoshop приводят такой пример
VBS
ShapeRef = Array(Array(0, 0), Array(0, 100), Array(100,100), Array(100,0)) docRef.Selection.Select ShapeRef
JS
var shapeRef = [ [0,0], [0,100], [100,100], [100,0] ] docRef.selection.select(shapeRef)
а как это описать на Delphi 7 ?
-
а какой тип у параметра shapeRef?
-
Вот так как есть. Просто объявляется переменная и заполняется величиной. Все. Я не знаю этих языков. но предполагаю. что компилятор сам определяет к какому типу относятся данные. В делфи тоже есть что подобное открытых процедурных массивов когда можно ввести параметры прямо в вызове процедуры. Я пробывал так и получил неверный аргумент.
-
а так
var ShapeRef: OleVariant;
ShapeRef := VarArrayCreate([0,3], varVariant); ShapeRef[0] := VarArrayOf([0, 0]); ShapeRef[1] := VarArrayOf([0, 100]); ShapeRef[2] := VarArrayOf([100, 100]); ShapeRef[3] := VarArrayOf([100, 0]);
-
Вы вернули меня к жизни! Две недели кашмакрных снов, и только мое тупое упорство , умные головы позволили дожить до "выдоха облегчения". ОГРОМНОЕ, ОГРОМНОЕ СПАСИБО!
|