Access 2002

Значения, элементы легенды, оси


К сожалению, возникает еще один вопрос. Диаграмма состоит из объектов различных типов (значения, элементы легенды, оси, свободное пространство и т. д.). Как определить тип выбранного объекта? Для этого применяется функция TypeName, встроенная в VBA. Эта функция возвращает тип объекта, на котором находится указатель мыши (то есть значение метода RangeFromPoint). В нашем примере код ищет объекты типа ChPoint (точки данных) или ChLegendEntry. Когда тип объекта известен, в коде происходит «осмысленный» выбор дальнейших действий.

Посмотрите на процедуру обработки события MouseMove, код которой приведен  7.28. В коде объявлен объект objSelection, устанавливающий ссылку на возвращенное значение метода RangeFromPoint. Код передает параметры х и у методу RangeFromPoint, преобразовывая их из твипов в пиксели. Если функция TypeName, передаваемая объекту objSelection, возвращает значение "ChPoint", значит, объект является точкой данных, и для его обработки в коде вызывается метод Sel ectltem (о котором можно узнать в следующем разделе).

Процедура обработки события MouseDown (мы не могли использовать процедуру обработки события Cl ick, поскольку она не передает координаты обработчику событий), код которой приведен  7.29, выполняет те же действия, но в ней осуществляется поиск элементов легенды — объектов типа "ChLegendEntry". Если найден именно такой объект, объект objSelection устанавливает ссылку на всю коллекцию ряда данных (при помощи свойства диаграммы SeriesCol lection), связанное с элементом легенды, а затем вызывается метод Selectltem, для того чтобы выбрать весь ряд данных.

Комментарии закрыты