themefrm.pas

来自「Delphi + MapX程序框架(地图)源码程序」· PAS 代码 · 共 96 行

PAS
96
字号
unit ThemeFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, MapX, ComCtrls, ToolWin, ImgList, MapXLib_TLB;

type
  TFtrSetStyle = (fssAll, fssSelected);

  TfrmTheme = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    cmbLayer: TComboBox;
    GroupBox3: TGroupBox;
    lstFeatures: TListBox;
    Label2: TLabel;
    cmbTable: TComboBox;
    GroupBox5: TGroupBox;
    lstRecords: TListBox;
    cmbLayerField: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    cmbTableField: TComboBox;
    Bevel1: TBevel;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ImageList1: TImageList;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    procedure cmbLayerChange(Sender: TObject);
    procedure cmbLayerFieldChange(Sender: TObject);
  private
    { Private declarations }
    FMapXTheme: TMapXTheme;
    FFtrSetStyle: TFtrSetStyle;
  public
    { Public declarations }
    procedure InitForm;
    procedure SetMapXTheme(AMapXTheme: TMapXTheme);
  end;


implementation

{$R *.dfm}

{ TfrmTheme }

procedure TfrmTheme.InitForm;
begin
  FMapXTheme.MapX.Get_Layers(TStringList(cmbLayer.Items));
  if cmbLayer.Items.Count > 0 then
  begin
    cmbLayer.ItemIndex:= 0;
    cmbLayer.OnChange(nil);
  end;
end;

procedure TfrmTheme.SetMapXTheme(AMapXTheme: TMapXTheme);
begin
  FMapXTheme:= AMapXTheme;
  InitForm;
end;

procedure TfrmTheme.cmbLayerChange(Sender: TObject);
begin
  FMapXTheme.MapX.Get_LayerFields(cmbLayer.Text,TStringList(cmbLayerField.Items));
  if cmbLayerField.Items.Count > 0 then
  begin
    cmbLayerField.ItemIndex:= 0;
    cmbLayerField.OnChange(nil);
  end;
end;

procedure TfrmTheme.cmbLayerFieldChange(Sender: TObject);
var
  I: Integer;
  Layer: CMapXLayer;
begin
  lstFeatures.Clear;
  FMapXTheme.MapX.BindLayerData(cmbLayer.Items.Strings[cmbLayer.ItemIndex]);
  FMapXTheme.MapX.SetLayerKeyField(cmbLayer.Items.Strings[cmbLayer.ItemIndex],
    cmbLayerField.Items.Strings[cmbLayerField.ItemIndex]);
  Layer:= FMapXTheme.MapX.GetLayerByName(cmbLayer.Items.Strings[cmbLayer.ItemIndex]);
  for I:= 1 to Layer.AllFeatures.Count do
  begin
    lstFeatures.Items.Add(Layer.AllFeatures.Item[I].KeyValue);
  end;
//
end;

end.

⌨️ 快捷键说明

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