📄 usaodbc.~pas
字号:
unit usaodbc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, MapXLib_TLB,comobj;
type
TForm1 = class(TForm)
Map1: TMap;
odbc: TButton;
infomation: TButton;
theme: TButton;
zoomin: TButton;
zoomout: TButton;
exit: TButton;
procedure odbcClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure infomationClick(Sender: TObject);
procedure Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1, Y1, X2,
Y2, Distance: Double; Shift, Ctrl: WordBool;
var EnableDefault: WordBool);
procedure zoominClick(Sender: TObject);
procedure zoomoutClick(Sender: TObject);
procedure exitClick(Sender: TObject);
procedure themeClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
dst : cmapxdataset;
end;
const
MAP_TOOL_INFO = 501;
var
Form1: TForm1;
//dst : cmapxdataset;
implementation
uses information, themeedit;
{$R *.dfm}
procedure TForm1.odbcClick(Sender: TObject);
var
flds : cmapxfields;
parm : variant;
begin
parm := createoleobject('mapx.odbcqueryinfo.5');
parm.sqlquery := 'select * from usa';
parm.ConnectString := 'ODBC;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Program Files\MapInfo\MapX 5.0\Data\MapStats.mdb;';
parm.datasource :='';
flds := cofields.Create;
flds.Add('GEONAME','GEONAME',miaggregationauto,mitypestring);
flds.Add('GEOABBR','GEOABBR',miaggregationauto,mitypestring);
flds.Add('TOTPOP','TOTPOP',miaggregationauto,mitypenumeric);
flds.Add('FEMPOP','FEMPOP',miaggregationauto,mitypenumeric);
flds.Add('MALEPOP','MALEPOP',miaggregationauto,mitypenumeric);
flds.Add('POP14','POP14',miaggregationauto,mitypenumeric);
flds.Add('POP14_64','POP14_64',miaggregationauto,mitypenumeric);
flds.Add('POP65','POP65',miaggregationauto,mitypenumeric);
flds.Add('CAUC','CAUC',miaggregationauto,mitypenumeric);
flds.Add('BLACK','BLACK',miaggregationauto,mitypenumeric);
flds.Add('AM_INDIAM','AM_INDIAM',miaggregationauto,mitypenumeric);
flds.Add('ASIAN','ASIAN',miaggregationauto,mitypenumeric);
flds.Add('HISP','HISP',miaggregationauto,mitypenumeric);
flds.Add('OTHERETH','OTHERETH',miaggregationauto,mitypenumeric);
flds.Add('TOTHOUS','TOTHOUS',miaggregationauto,mitypenumeric);
flds.Add('AVEHOUS','AVEHOUS',miaggregationauto,mitypenumeric);
dst := map1.DataSets.Add(miDataSetODBC, parm, 'ODBC Dataset',EmptyParam, EmptyParam, 'USA', flds, EmptyParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MAP1.CreateCustomTool(MAP_TOOL_INFO,mitooltypepoint,miarrowcursor);
end;
procedure TForm1.infomationClick(Sender: TObject);
begin
map1.CurrentTool := MAP_TOOL_INFO;
end;
procedure TForm1.Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1, Y1,
X2, Y2, Distance: Double; Shift, Ctrl: WordBool;
var EnableDefault: WordBool);
var
pnt : cmapxpoint;
flds1,flds2 : cmapxfields;
features : cmapxfeatures;
feature : cmapxfeature;
lyr : cmapxlayer;
i,j : integer;
rvs : cmapxrowvalues;
rv : cmapxrowvalue;
str : string;
begin
case toolnum of
MAP_TOOL_INFO:
begin
lyr := map1.Layers.Item['usa'];
//dst := map1.DataSets.Add(miDataSetLayer,lyr,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);
flds1 := dst.Fields;
//dst := map1.DataSets.Add(miDataSetLayer,lyr,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);
//flds2 :=dst.Fields;
{for i :=1 to flds.Count do
begin
showmessage(flds.Item[i].Name);
showmessage(lyr.KeyField);
end;
}
pnt := copoint.Create;
pnt.Set_(x1,y1);
features := lyr.SearchAtPoint(pnt,miSearchResultRegion);
for I := 1 to features.Count do
begin
feature := features.Item[i];
infor.fieldslist.clear;
infor.valueslist.clear;
rvs := map1.DataSets.Item[i].RowValues[feature];
for j := 1 to flds1.Count do
begin
str := flds1.Item[j].Name;
rv := rvs.Item[j];
//lyr.KeyField := str;
infor.fieldslist.items.add(flds1.Item[j].Name);
infor.valueslist.items.add(rv.Value);
end;
end;
infor.Show;
end;
end;
end;
procedure TForm1.zoominClick(Sender: TObject);
begin
map1.CurrentTool := miZoomInTool;
end;
procedure TForm1.zoomoutClick(Sender: TObject);
begin
map1.CurrentTool := miZoomOutTool;
end;
procedure TForm1.exitClick(Sender: TObject);
begin
close;
end;
procedure TForm1.themeClick(Sender: TObject);
begin
themeinfo.Show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -