Шаг 4 - Проверка выделения объекта и функции

Вообщем-то часто скрипты пишут для того, чтобы сделать с объектом какие-то действия, которые надо повторять часто и лениво это делать. Так вот нам надо проверить есть ли выделенный объект. Вот так это можно сделать:

WITHOBJECT "CorelDraw.Automation.8" 

ON ERROR RESUME NEXT

DIM ObjType AS LONG	 
ObjType& = .GetObjectType()
IF (ObjType& <= 0) OR (ERRNUM > 0) THEN
	retval%=MESSAGEBOX("Not Select Object","Info",1)
END IF

END WITHOBJECT

Здесь ON ERROR RESUME NEXT важен в том плане, что если мы захотим получить тип объекта, а он не выделен, то результатом работы будет ошибка. Программа остановится, а чтобы этого не было мы и написали двигаться всегда вперед. Идея проверки, что объект выделен заключается в том, что мы используем функцию .GetObjectType:

GetObjectType (DRAW)
ReturnValue& = .GetObjectType()

Она вернет тип объекта и если его нет, то значение меньше нуля. Вот это мы и проверяем. Но в таком виде работать не удобно, может быть нам придется проверять сотни объектов. Поэтому лучше организовать все это в виде функции вот так:

DECLARE FUNCTION CheckForSelection() AS BOOLEAN

WITHOBJECT "CorelDraw.Automation.8" 

IF NOT CheckForSelection() THEN
	retval%=MESSAGEBOX("Not Select Object","Info",1)
END IF

FUNCTION CheckForSelection AS BOOLEAN
	DIM ObjType AS LONG
	ON ERROR RESUME NEXT
	ObjType& = .GetObjectType()
	IF (ObjType& <= 0) OR (ERRNUM > 0) THEN
		ERRNUM = 0
		CheckForSelection = FALSE
	ELSE
		CheckForSelection = TRUE
	ENDIF
END FUNCTION

END WITHOBJECT

Сначала функцию с использованием DECLARE нужно объявить и написать код используя FUNCTION и END FUNCTION.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.