uniteagleeye.~pas

来自「在delphi下基于MapX5.0的GIS程序」· ~PAS 代码 · 共 73 行

~PAS
73
字号
unit UnitEagleEye;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, MapXLib_TLB, ExtCtrls;

type
  TFrmEagleEye = class(TForm)
    PanelEagleEye: TPanel;
    MapEagleEye: TMap;
    procedure MapEagleEyeMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure MapEagleEyeMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure MapEagleEyeMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmEagleEye: TFrmEagleEye;

implementation

uses UnitCommonModule, UnitMain;

{$R *.dfm}

procedure TFrmEagleEye.MapEagleEyeMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MapEagleEye.Cursor := crHandPoint;
  EagleEye_CanMove := True;
end;

procedure TFrmEagleEye.MapEagleEyeMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  MapEagleEye.Cursor := crDefault;
  EagleEye_CanMove := False;  
end;

procedure TFrmEagleEye.MapEagleEyeMouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
var
  Map_X, Map_Y: Double;
  X_X, Y_Y: Single;
begin
  if EagleEye_CanMove then
  begin
  //把屏幕坐标转换为地图坐标
    X_X := X;  Y_Y := Y;
    MapEagleEye.ConvertCoord(X_X, Y_Y, Map_X, Map_Y, miScreenToMap);
  //设置主图的中心x坐标和y坐标
    FrmMain.Map1.CenterX := Map_X;
    FrmMain.Map1.CenterY := Map_Y;
  end;
end;

procedure TFrmEagleEye.FormShow(Sender: TObject);
begin
  Top := 90;
  Left := 10;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?