📄 theme.pas
字号:
unit theme;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,MapXLib_TLB, ComObj;
type
Tthemeform = class(TForm)
Label1: TLabel;
themelayer: TComboBox;
Label2: TLabel;
themefields: TListBox;
create: TButton;
cancle: TButton;
procedure FormCreate(Sender: TObject);
procedure themelayerChange(Sender: TObject);
procedure createClick(Sender: TObject);
procedure themefieldsClick(Sender: TObject);
procedure cancleClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
themeform: Tthemeform;
currentmap : Tmap;
fldname : string;
implementation
uses formmain;
{$R *.dfm}
procedure Tthemeform.FormCreate(Sender: TObject);
var
lyr:mapxlib_tlb.layer;
i:integer;
begin
currentmap := mainform.Map1;
themelayer.Clear;
for i:=1 to currentmap.Layers.Count do
begin
lyr:=currentmap.layers.item[i];
themelayer.items.Add(lyr.Name);
end;
end;
procedure Tthemeform.themelayerChange(Sender: TObject);
type
fldsname=array[1..20] of variant;
var
lyr : cmapxlayer;
fldsname1 : fldsname;
dst : mapxlib_tlb.dataset;
flds : mapxlib_tlb.fields;
i,j : integer;
begin
lyr := currentmap.Layers.Item[themelayer.Text];
dst := currentmap.Datasets.add(midatasetlayer,lyr,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);
flds := dst.fields;
for j := 1 to flds.Count do
begin
fldsname1[j] := flds.item[j].name;
//lyr.KeyField := fldsname1[j];
if flds.Item[j].Type_ = miTypeNumeric then
begin
themefields.Items.Add(fldsname1[j]);
end;
if flds.Item[j].Type_ = 3 then
begin
themefields.Items.Add(fldsname1[j]);
end;
if flds.Item[j].Type_ = miTypeSmallInt then
begin
themefields.Items.Add(fldsname1[j]);
end;
if flds.Item[j].Type_ = miTypeFloat then
begin
themefields.Items.Add(fldsname1[j]);
end;
end;
end;
procedure Tthemeform.createClick(Sender: TObject);
var
lyr : cmapxlayer;
flds : cmapxfields;
dst : cmapxdataset;
begin
currentmap.Datasets.RemoveAll;
flds := cofields.Create;
lyr := currentmap.Layers.Item[themelayer.Text];
flds.Add(fldname,fldname,miAggregationAverage,emptyparam);
dst := currentmap.Datasets.Add(midatasetlayer,lyr,emptyparam,emptyparam,emptyparam,emptyparam,flds,emptyparam);
dst.Themes.Add(miThemePieChart,flds,fldname,emptyparam);
dst.Themes.Item[fldname].themedlg(emptyparam,emptyparam);
dst.Themes.Item[fldname].legend.LegendDlg(emptyparam,emptyparam);
close;
end;
procedure Tthemeform.themefieldsClick(Sender: TObject);
var
I : integer;
begin
for i := 0 to themefields.Count-1 do
begin
if themefields.Selected[i] then
begin
fldname := themefields.Items.Strings[i];
end;
end;
end;
procedure Tthemeform.cancleClick(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -