⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.~pas

📁 delphi+mapx应用实例,包含MAPX所有功能!值得下载学习!
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit formmain;

interface

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

type
  Tmainform = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    Map1: TMap;
    OpenDialog1: TOpenDialog;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    layerinfo1: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N36: TMenuItem;
    N37: TMenuItem;
    N38: TMenuItem;
    N39: TMenuItem;
    N40: TMenuItem;
    ODBC1: TMenuItem;
    N33: TMenuItem;
    SaveDialog1: TSaveDialog;
    N41: TMenuItem;
    N42: TMenuItem;
    IF1: TMenuItem;
    N43: TMenuItem;
    EXCEL1: TMenuItem;
    N44: TMenuItem;
    ID1: TMenuItem;
    procedure N8Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure N25Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1, Y1, X2,
      Y2, Distance: Double; Shift, Ctrl: WordBool;
      var EnableDefault: WordBool);
    procedure N22Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N27Click(Sender: TObject);
    procedure N28Click(Sender: TObject);
    procedure N29Click(Sender: TObject);
    procedure N30Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure N32Click(Sender: TObject);
    procedure layerinfo1Click(Sender: TObject);
    procedure N35Click(Sender: TObject);
    procedure N36Click(Sender: TObject);
    procedure N38Click(Sender: TObject);
    procedure N39Click(Sender: TObject);
    procedure N40Click(Sender: TObject);
    procedure ODBC1Click(Sender: TObject);
    procedure N33Click(Sender: TObject);
    procedure N41Click(Sender: TObject);
    procedure IF1Click(Sender: TObject);
    procedure N43Click(Sender: TObject);
    procedure EXCEL1Click(Sender: TObject);
    procedure N44Click(Sender: TObject);
    procedure ID1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


const
  POINT_DRAW_TOOL = 500;
  CRICLE_DRAW_TOOL = 501;
  RECT_DRAW_TOOL = 502;

  INFO_POINT_TOOL = 400;


  MOVE_FEATURE_TOOL = 300;

  SEARCH_RECTANGLE_TOOL = 200;

  DRAG_DRAW_TOOL = 100;

var
  mainform: Tmainform;
  copyftrs : variant;//Cmapxfeatures;

implementation

uses layeradd, addlayerinfo, search, forminfo, theme, idform;

{$R *.dfm}

procedure Tmainform.N8Click(Sender: TObject);
begin
  addlayer.show;
end;

procedure Tmainform.N9Click(Sender: TObject);
begin
  map1.Layers.LayersDlg(emptyparam,emptyparam);
end;

procedure Tmainform.N2Click(Sender: TObject);
begin
  opendialog1.Filter:='mapinfo files(*.gst)|*.gst|(*.txt)|*.txt|(*.*)|*.*';
  opendialog1.FilterIndex:=0;
  if opendialog1.Execute then
    if opendialog1.FileName<>'*.gst' then

      map1.geoset:=opendialog1.FileName;

end;

procedure Tmainform.N3Click(Sender: TObject);
begin
  close;
end;

procedure Tmainform.N5Click(Sender: TObject);
var
  lyr,lyrtemp : Cmapxlayer;
  ftrs : variant;//mapxlib_tlb.features;
  select : variant;
  ftr : variant;
  i,j : integer;
begin
  //对于单个图层的对象
  lyr := map1.Layers.Item['us capitals'];
  select := lyr.selection;
  copyftrs := select.clone;

  //showmessage(copyftrs.item(i).name);
  for i := 1 to copyftrs.count do
  begin
    showmessage(copyftrs.item[i].name);
    //copyftrs.add(ftrs.item(i));
  end;


  //对于任意个图层的对象
  {lyrtemp := map1.Layers.CreateLayer('temp','temp',1,emptyparam,emptyparam);
  lyrtemp.Editable := true;
  map1.Layers.InsertionLayer := lyrtemp;
  for i := 1 to map1.Layers.Count do
  begin
    lyr := map1.Layers.Item(i);
    copyftrs := lyr.NoFeatures;
    ftrs := lyr.Selection;
    select := ftrs.clone;
    for j := 1 to select.count do
    begin
      ftr := select.item(j);
      copyftrs.Add(ftr);
    end;
    lyrtemp.AddFeature(copyftrs,emptyparam);
  end;
  }
end;

procedure Tmainform.N6Click(Sender: TObject);
var
  lyr : mapxlib_tlb.layer;
  I : integer;
begin
  map1.AutoRedraw := false;
  lyr := map1.Layers.Item[1];
  lyr.Editable := true;
  for i := 1 to copyftrs.count do
  begin
    showmessage(copyftrs.item(i).name);
    lyr.AddFeature(copyftrs.item(i),emptyparam);
  end;
  map1.AutoRedraw := true;
  map1.Update;
  //lyr.Editable := false;
end;

procedure Tmainform.N10Click(Sender: TObject);
var
  select : variant;//cmapxselection;
  i,j : integer;
  lyr : cmapxlayer;
begin
  {lyr := map1.Layers.Item('us capitals');
  lyr.Editable := true;
  select := lyr.Selection;
  for i := 1 to select.count do
  begin
    showmessage(select.item(i).name);
    lyr.DeleteFeature(select.item(i));
  end;
  lyr.editable := false;
  }


  for i := 1 to map1.Layers.Count do
  begin
    lyr := map1.Layers.Item[i];
    lyr.Editable := true;;
    select := lyr.Selection;
    for j := 1 to select.count do
    begin
      showmessage(select.item(j).name);
      lyr.DeleteFeature(select.item(j));
    end;
    lyr.Editable := false;
  end;

end;

procedure Tmainform.N12Click(Sender: TObject);
begin
  map1.CurrentTool := mizoomintool;
end;

procedure Tmainform.N13Click(Sender: TObject);
begin
  map1.CurrentTool := mizoomouttool;
end;

procedure Tmainform.N14Click(Sender: TObject);
begin
  map1.CurrentTool := mipantool;
end;

procedure Tmainform.N15Click(Sender: TObject);
begin
  map1.CurrentTool := micentertool;
end;

procedure Tmainform.N17Click(Sender: TObject);
begin
  map1.CurrentTool := miaddpointtool;
end;

procedure Tmainform.N18Click(Sender: TObject);
begin
  map1.CurrentTool := miaddlinetool;
end;

procedure Tmainform.N19Click(Sender: TObject);
begin
  map1.CurrentTool := miaddregiontool;
end;

procedure Tmainform.N20Click(Sender: TObject);
begin
  map1.CurrentTool := miaddpolylinetool;
end;

procedure Tmainform.N25Click(Sender: TObject);
begin
  map1.CurrentTool := POINT_DRAW_TOOL;
end;

procedure Tmainform.FormCreate(Sender: TObject);
begin
  map1.CreateCustomTool(POINT_DRAW_TOOL,mitooltypepoint,miarrowcursor);
  map1.CreateCustomTool(CRICLE_DRAW_TOOL,mitooltypecircle,miarrowcursor);
  map1.CreateCustomTool(RECT_DRAW_TOOL,mitooltypeline,miarrowcursor);
  Map1.CreateCustomTool(INFO_POINT_TOOL,mitooltypepoint,miarrowcursor);
  map1.CreateCustomTool(MOVE_FEATURE_TOOL,mitooltypeline,misizecursor);
  map1.CreateCustomTool(SEARCH_RECTANGLE_TOOL,miToolTypeMarquee, miRectSelectCursor);
end;

procedure Tmainform.Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1,
  Y1, X2, Y2, Distance: Double; Shift, Ctrl: WordBool;
  var EnableDefault: WordBool);
type
  fldsname=array[1..20] of variant;
var
  pnt : mapxlib_tlb.point;
  pnts : mapxlib_tlb.points;
  feafrc : mapxlib_tlb.featurefactory;
  ftr : mapxlib_tlb.feature;
  ftrs : cmapxfeatures;
  newstyle : mapxlib_tlb.style;
  lyr : mapxlib_tlb.layer;
  dst : mapxlib_tlb.dataset;
  flds : mapxlib_tlb.fields;
  i,j : integer;
  fldsname1 : fldsname;

⌨️ 快捷键说明

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