Цитата |
---|
Andrey Gheleznyakov написал: Origin это экземпляр класса TCompMapPoint и его надо создавать прежде чем использовать.Положите на форму компонент TMapPoint. В нем уже будет настроенный экземпляр TCompMapPoint . |
но затем решил не отходить от первоисточника.
Теперь так:
procedure Tform_main.mvMapMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
Var
// tp1 : TPoint;
// Origin : TCompMapPoint;
fX,fY : double;
X9,Y9 : double;
begin
ShowMessage ('1');
X9 := mvMap.MapLeft;
ShowMessage ('X9 = '+FloatToStr(X9));
Y9 := mvmap.MapTop;
ShowMessage ('Y9 = '+FloatToStr(Y9));
MapPoint1.SetPoint(X9,Y9); // Здесь ошибка в ходе выполнения программы не выдается, все хорошо
ShowMessage ('2');
form_main.mvMap.ScaleInPoint(Round(form_main.mvMap.ViewScale*2), MapPoint1); // А здесь выдает ошибку уже при компиляции: не совместимые типы TCompMapPoint и TMapPoint
// Мне нужно, чтобы карта при масштабировании, всегда масштабировалась, устанавливая в центр карты ту точку карты, в которой сейчас находится указатель мыши
{
With form_main.mvMap.ScreenToClient(MousePos) do MapPoint1.SetPoint(X9+form_main.mvMap.MapLeft,Y9+form_main.mvMap.MapTop);
case Sign(WheelDelta)of
-1:
form_main.mvMap.ScaleInPoint(Round(form_main.mvMap.ViewScale*2), MapPoint1);
+1:
form_main.mvMap.ScaleInPoint(Round(form_main.mvMap.ViewScale/2), MapPoint1);
end;
}
MapPoint1.GetPoint(fX, fY);
Handled:= True;