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

📄 label.txt

📁 校园GIS系统——介绍校园个部门
💻 TXT
字号:
unit MapLabel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls ,MapObjects2_TLB, ComCtrls, OleCtrls, ComObj, ActiveX;

type
  TLabelFrm = class(TForm)
    CbbLayer: TComboBox;
    CbbField: TComboBox;
    CbbFontType: TComboBox;
    EdtSize: TEdit;
    BtApp: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    UpDown1: TUpDown;
    procedure FormActivate(Sender: TObject);
    procedure CbbLayerChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtAppClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  LabelFrm: TLabelFrm;

implementation

uses Unitmain;

{$R *.dfm}

procedure TLabelFrm.FormActivate(Sender: TObject);
var
  MapLayers: ImoMapLayer;
  i: Integer;
begin
  CbbLayer.Clear;
  for i := 0 to mainfrm.mainmap.Layers.Count - 1 do
  begin
    MapLayers := ImoMapLayer(mainfrm.mainmap.Layers.Item(i));
    CbbLayer.items.add(MapLayers.Name);
  end;
  CbbLayer.ItemIndex := 0; ///why?
  CbbLayer.OnChange(Sender);
end;

procedure TLabelFrm.CbbLayerChange(Sender: TObject);
var
MyTableDesc:imoTableDesc;
i:integer;
begin
  MyTableDesc:=CoTableDesc.Create;
  Currentlayer:=ImoMaplayer(MainFrm.MainMap.Layers.Item(CbbLayer.Text));
  MyTableDesc:=Currentlayer.Records.TableDesc;
  CbbField.Clear;
  for i:=0 to MyTableDesc.FieldCount-1 do
    begin
       CbbField.Items.Add(MyTableDesc.FieldName[i]);
       //添加字段
    end;
    CbbField.ItemIndex:=0;

end;

procedure TLabelFrm.FormCreate(Sender: TObject);
begin
   CbbFontType.Items:=Screen.Fonts;
   CbbFontType.ItemIndex:=0;
   UpDown1.Position:=1;
end;

procedure TLabelFrm.BtAppClick(Sender: TObject);
var
  ly: IMoMapLayer;
  lblren: IMoLabelRenderer;
  lyrs: Layers;
  ft: TFont;
  oleFt: variant;
  LayerName: string;
  FieldName: string;
begin

  LayerName := CbbLayer.Text;
  FieldName := CbbField.Text;

  ft := TFont.Create;
  ft.name := CbbFontType.Text;
  ft.size := UpDown1.Position;
  oleFt := FontToOleFont(ft);
  lyrs := IMoLayers(mainfrm.mainmap.layers);
  ly := CoMaplayer.Create;
  ly := IMoMapLayer(lyrs.item(LayerName));


  lblren :=CoLabelRenderer.Create;
  lblren.field := FieldName;
  lblren.SymbolField := FieldName;
  lblren.symbol[0].font := IFontDisp(IDispatch(oleFt));
  lblren.AllowDuplicates := false;
  ly.renderer := lblren;
  mainfrm.mainmap.refresh;
  ft.Free;
end;

end.

⌨️ 快捷键说明

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