Access 2002

Форма-пример frmchartevents


На  7.35 изображена форма-пример frmChartEvents. Вы можете поэкспериментировать с ней в режиме PivotChart. Обратите , что при движении указателя мыши по столбикам диаграммы изменяются как граница выбранного столбика, так и заголовок диаграммы. Кроме того, щелкнув на одном из рядов

данных, указанных в легенде, вы выбираете все значения этого ряда и в заголовке получаете общее значение по продажам блюд для такого ряда.

В приведенном примере код реагирует на события формы MouseMove и Click, выполняя определенные действия, зависящие от текущего положения указателя мыши. В связи с этим могут возникнуть два вопроса.

Ответ на первый вопрос очень прост. Access передает в обработчик события координаты местонахождения указателя мыши (в твипах) в момент возникновения события. Например, процедура обработки события MouseMove выглядит следующим образом:

Но существует одна небольшая проблема: в Access для передачи координат всегда используются твипы (1 твип = 1/1440 логического дюйма), тогда как в компонентах Office Web (а, следовательно, и в остальном коде этой формы) используются пиксели (переменная единица, зависящая от текущего разрешения экрана). Каким образом можно преобразовать значения из твипов в пиксели?

Эту задачу выполняет объект Access Info, который можно найти в базе данных к этой главе. В форме-примере приведенный код запускается обработчиком события Load, заполняя две переменные уровня модуля TwipsPerPixelX и TwipsPer- PixelY:

В дальнейшем, если в коде понадобится перевести значение из твипов в пиксели, достаточно просто разделить количество твипов на Twi psPerPi xel X и TwipsPer- PixelY соответственно.

Второй вопрос несколько сложнее. Как определить, на каком объекте находится указатель мыши, зная координаты х и у? Для решения этой задачи свойство ChartSpace представления PivotChart использует метод RangeFromPoint: вы указываете координаты х и у, а метод возвращает объект, соответствующий им.

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