TMapDataView.OnMapBeforePaintTMapDataView |
Вызывается перед перерисовкой карты.
TMapPaintEvent = procedure (Sender : TObject; aCanvas : TCanvas; MapPaintRect : TRect) of object; property OnMapPaint: TMapPaintEvent;
Описание: Событие генерируется перед перерисовкой участка карты.
Как правило, обработка данного события используется с целью удаления пользовательской информации, наложенной поверх картографического изображения электронной карты, чтобы после перерисовки вновь ее нанести на канву карты и при этом не осталось не стертых участков пользовательских объектов.
Канва компонента TMapDataView доступна только в обработчике этого события.
Параметры события:
Sender - объект типа TMapDataView.
MapPaintRect - содержит координаты области прорисовки в пикселях в системе координат карты. Имеет единицы измерения того устройства, для которого выполняется прорисовка карты.
aCanvas - указатель на канву компонента Sender. Внимание! Объект aCanvas в момент вызова события имеет нестандартное начало координат: оно смещено относительно начала окна на –MapLeft, -MapTop. Например, для того чтобы нарисовать линию с оконными координатами 0,0; 10,20 необходимо реально послать координаты MapLeft, MapTop; MapLeft + 10, MapTop + 20. Другой пример: необходимо нарисовать квадрат с координатами на местности X1, Y1, X2, Y2 в метрах. Для пересчета координат на форме разместим компонент Point:TcompMapPoint. Point.PlaceInp := PP_PLANE; Point.PlaceOut := PP_PICTURE; Point.SetPoint(X1, Y1); Point.GetPoint(Rect1.Left, Rect1.Top); Point.SetPoint(X2, Y2); Point.GetPoint(Rect1.Right, Rect1.Bottom); aCanvas.FrameRect(Rect1); |