📄 layer.txt
字号:
uunit layermanage;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, MapObjects2_TLB,CheckLst, Buttons;
type
TLayerManaFrm = class(TForm)
layernamechecklistbox: TCheckListBox;
btTop: TButton;
btUp: TButton;
btDown: TButton;
btBottom: TButton;
BbAddLayer: TBitBtn;
BbRemove: TBitBtn;
procedure FormActivate(Sender: TObject);
procedure layernamechecklistboxClickCheck(Sender: TObject);
procedure layernamechecklistboxClick(Sender: TObject);
procedure btTopClick(Sender: TObject);
procedure btUpClick(Sender: TObject);
procedure btDownClick(Sender: TObject);
procedure btBottomClick(Sender: TObject);
procedure BbRemoveClick(Sender: TObject);
procedure BbAddLayerClick(Sender: TObject);
private
{ Private declarations }
public
currentlayer: IMoMaplayer;
end;
var
LayerManaFrm: TLayerManaFrm;
implementation
uses Unitmain;
{$R *.DFM}
procedure TLayerManaFrm.FormActivate(Sender: TObject);
var
i: integer;
currentlayer: IMoMaplayer;
begin
layernamechecklistbox.Clear;
for i := 0 to mainfrm.mainmap.Layers.Count - 1 do
begin
currentlayer := CoMapLayer.Create;
currentlayer := IMoMapLayer(mainfrm.mainmap.Layers.Item(i));
layernamechecklistbox.Items.Add(currentlayer.name);
layernamechecklistbox.Checked[i] := currentlayer.Visible;
//图层显示控制
end;
layernamechecklistbox.ItemIndex:=0;
BbRemove.Enabled:=layernamechecklistbox.Items.Count >0;
btTop.Enabled:=layernamechecklistbox.ItemIndex>0;
btUp.Enabled:=layernamechecklistbox.ItemIndex>0;
btDown.Enabled:=layernamechecklistbox.ItemIndex<>MainFrm.MainMap.Layers.Count-1;
btBottom.Enabled:=layernamechecklistbox.ItemIndex<>MainFrm.MainMap.Layers.Count-1;
//按钮显示控制
end;
procedure TLayerManaFrm.layernamechecklistboxClickCheck(Sender: TObject);
begin
currentlayer:= IMoMapLayer(mainfrm.mainmap.Layers.Item(layernamechecklistbox.ItemIndex));
currentlayer.Visible:=layernamechecklistbox.checked[layernamechecklistbox.ItemIndex];
MainFrm.MainMap.Refresh;
end;
procedure TLayerManaFrm.layernamechecklistboxClick(Sender: TObject);
begin
BbRemove.Enabled:=MainFrm.MainMap.Layers.Count>=0;
btTop.Enabled:=layernamechecklistbox.ItemIndex>0;
btUp.Enabled:=layernamechecklistbox.ItemIndex>0;
btDown.Enabled:=layernamechecklistbox.ItemIndex<>MainFrm.MainMap.Layers.Count-1;
btBottom.Enabled:=layernamechecklistbox.ItemIndex<>MainFrm.MainMap.Layers.Count-1;
end;
procedure TLayerManaFrm.btTopClick(Sender: TObject);
begin
MainFrm.MainMap.Layers.MoveToTop(layernamechecklistbox.ItemIndex);
//图层上移到顶
LayerManaFrm.OnActivate(sender);
MainFrm.MainMap.Refresh;
end;
procedure TLayerManaFrm.btUpClick(Sender: TObject);
begin
MainFrm.MainMap.Layers.MoveTo(layernamechecklistbox.ItemIndex,layernamechecklistbox.ItemIndex-1);
//图层上移
LayerManaFrm.OnActivate(sender);
MainFrm.MainMap.Refresh;
end;
procedure TLayerManaFrm.btDownClick(Sender: TObject);
begin
MainFrm.MainMap.Layers.MoveTo(layernamechecklistbox.ItemIndex,layernamechecklistbox.ItemIndex+1);
//图层下移
LayerManaFrm.OnActivate(sender);
MainFrm.MainMap.Refresh;
end;
procedure TLayerManaFrm.btBottomClick(Sender: TObject);
begin
MainFrm.MainMap.Layers.MoveToBottom(layernamechecklistbox.ItemIndex);
//图层上移到底
LayerManaFrm.OnActivate(sender);
MainFrm.MainMap.Refresh;
end;
procedure TLayerManaFrm.BbRemoveClick(Sender: TObject);
begin
MainFrm.MainMap.Layers.Remove(layernamechecklistbox.ItemIndex);
//图层移出
MainFrm.MainMap.Refresh;
LayerManaFrm.OnActivate(sender);
end;
procedure TLayerManaFrm.BbAddLayerClick(Sender: TObject);
begin
MainFrm.OpenShapeFile.Click;
LayerManaFrm.OnActivate(sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -