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

📄 theme.pas

📁 delphi+mapx应用实例,包含MAPX所有功能!值得下载学习!
💻 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 + -