📄 formmain.~pas
字号:
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 + -