亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unitshellapis.pas

?? 此代碼是關于mapgis的在
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
      if TLayerTreeNodeRecord(ANode.Data).FtClassType=FtClassType then
      begin
        Result:=MyGIS.GMapTools.MapX.Layers.Item[i];
        LayerNode:=ANode;
        Exit;
      end;
  end;
end;

procedure MoveLayer(MapX:TMapXObject; const FromIndex, ToIndex: Integer);
var
  SNode, DNode:TTreeNode;
  iState_SNode, iState_DNode:Integer;
begin
  MapX.Layers.Move(FromIndex, ToIndex);
  SNode:=FindLayerNode(FromIndex);
  DNode:=FindLayerNode(ToIndex);
  iState_SNode:=SNode.StateIndex;
  iState_DNode:=DNode.StateIndex;
  SNode.MoveTo(DNode, naInsert);
  DNode.StateIndex:=-1;
  SNode.StateIndex:=-1;
  DNode.StateIndex:=iState_DNode;
  SNode.StateIndex:=iState_SNode;
end;

procedure SetLayerVisible(MapX:TMapXObject; 
  const Index: Integer; const Visible:Boolean);
var
  ANode:TTreeNode;
  iState:Integer;
  aLyr:Layer;
begin
  ANode:=FindLayerNode(Index);
  aLyr:=MyGIS.GMapTools.m_Layers.FindByName(TLayerTreeNodeRecord(ANode.Data).Name);
  aLyr.Visible:=Visible;
  if Visible then
    iState:=TREENODESTATE_SUBCHECKEDALL
  else
    iState:=TREENODESTATE_NOTCHECKED;
  SetNodeState(ANode, iState, True, nil);
end;

procedure SetLayerEditable(MapX:TMapXObject;
  const Index: Integer; const Editable: Boolean);
var
  i:Integer;
  ANode:TTreeNode;
  aLyr:Layer;
begin
  ANode:=FindLayerNode(Index);
  MapX.Layers.InsertionLayer:=nil;
  EditLayer:=nil;
  for i:=1 to MapX.Layers.Count do
  begin
    if IsCustomLayer(MapX.Layers.Item[i]) then
      MapX.Layers.Item[i].Editable:=False;
  end;
  aLyr:=MyGIS.GMapTools.m_Layers.FindByName(TLayerTreeNodeRecord(ANode.Data).Name);
  if aLyr<>nil then
  begin
    aLyr.Editable:=Editable;
    if Editable then
    begin
      EditLayer:=aLyr;
      MapX.Layers.InsertionLayer:=aLyr;
    end;
  end;
end;

procedure SetLayerSelectable(MapX:TMapXObject; 
  const Index: Integer; const Selectable: Boolean);
var
  ANode:TTreeNode;
  aLyr:Layer;
begin
  ANode:=FindLayerNode(Index);
  aLyr:=MyGIS.GMapTools.m_Layers.FindByName(TLayerTreeNodeRecord(ANode.Data).Name);
  aLyr.Selectable:=Selectable;
end;

procedure SetLayerAutoLabel(MapX:TMapXObject; SysTreeRoot:TTreeNode;
  const Index: Integer; const AutoLabel: Boolean);
var
  ANode:TTreeNode;
  aLyr:Layer;
begin
  ANode:=FindLayerNode(Index);
  aLyr:=MyGIS.GMapTools.m_Layers.FindByName(TLayerTreeNodeRecord(ANode.Data).Name);
  aLyr.AutoLabel:=AutoLabel;
end;

procedure RemoveuserLayer(MapX:TMapXObject; const Index: Integer);
var
  ANode:TTreeNode;
  aLayerInfo:TLayerTreeNodeRecord;
  aLyr:Layer;
begin
  ANode:=FindLayerNode(Index);
  aLayerInfo:=ANode.Data;
  if (aLayerInfo.NodeType<>LTN_LAYER)or(aLayerInfo.IsSystem) then
    WarningAbort('提示', '只有用戶圖層可以被移出!');
  aLyr:=MyGIS.GMapTools.m_Layers.FindByName(aLayerInfo.Name);
  if aLyr=EditLayer then EditLayer:=nil;
  MyGIS.GMapTools.m_Layers.Remove(Index);
  DeleteNode(ANode);
end;

procedure RemoveAllNodes;

  procedure RemoveAllSubNodes(ANode:TTreeNode);
  var
    ASubNode:TTreeNode;
    aLayerInfo:TLayerTreeNodeRecord;
    aLyr:Layer;
  begin
    while ANode.Count>0 do
    begin
      ASubNode:=ANode.Item[0];
      aLayerInfo:=ASubNode.Data;
      if aLayerInfo.NodeType<>LTN_LAYER then
        RemoveAllSubNodes(ASubNode)
      else begin
        aLyr:=MyGIS.GMapTools.m_Layers.FindByName(aLayerInfo.Name);
        if aLyr=EditLayer then EditLayer:=nil;
        MyGIS.GMapTools.m_Layers.Remove(GetLayerIndex(MyGIS.GMapTools.MapX, aLayerInfo.Name));
      end;
      DeleteNode(ASubNode);
    end;
  end;
  
begin
  RemoveAllSubNodes(SysTreeRoot);
end;

function SetCurrentMapTool(const ToolClassName:string;
  TurnEvent:TNotifyEvent):TBaseMapTool;
var
  Index:Integer;
  AToolObj:TBaseMapTool;
begin
  MyGIS.GMapTools.m_Layer.Layer:=EditLayer;
  Index:=MyGIS.GMapTools.m_Map.UserTools.IndexByClassName(ToolClassName);
  if Index=-1 then
    WarningAbort('錯誤', '沒有找到名稱為 "'+ToolClassName+'" 的地圖工具!!');
  Result:=MyGIS.GMapTools.m_Map.UserTools.Items[Index];
  Result.MsgHandle:=AppMsgHandle;
  if Result is TLayerMapTool then
    with TLayerMapTool(Result) do
    begin
      LayerManager:=MyGIS.GMapTools.m_Layer;
      TrackLayer:=UserLayer;
    end;
  MyGIS.GMapTools.m_Map.UserTools.SetCurrentTool(Result);
  Result.OnTurnTool:=TurnEvent;
end;

procedure CheckEditLayer;
begin
  if EditLayer=nil then
    WarningAbort('提示', '請設置編輯圖層!');
  if not editlayer.Editable then
    WarningAbort('提示', '圖層沒有處于編輯狀態!');
end;

function MapFieldTypeToLogicalFieldName(AFieldType:TMapFieldType):string;
begin
  case AFieldType of
    mftString    : Result:='字符串';
    mftInteger   : Result:='整型';
    mftSmallint  : Result:='整型';
    mftBoolean   : Result:='布爾型';
    mftFloat     : Result:='浮點型';
    mftBCD       : Result:='浮點型';
    mftDateTime  : Result:='日期\時間';
    mftBinary    : Result:='二進制';
    else           Result:='';
  end;
end;

function LogicalFieldNameToMapFieldType(const FieldName:string):TMapFieldType;
begin
  Result:=mftUnknown;
  if AnsiCompareText(FieldName, '字符串')=0 then
    Result:=mftString
  else if AnsiCompareText(FieldName, '整型')=0 then
    Result:=mftInteger
  else if AnsiCompareText(FieldName, '布爾型')=0 then
    Result:=mftBoolean
  else if AnsiCompareText(FieldName, '浮點型')=0 then
    Result:=mftFloat
  else if AnsiCompareText(FieldName, '日期\時間')=0 then
    Result:=mftDateTime
  else if AnsiCompareText(FieldName, '二進制')=0 then
    Result:=mftBinary;
end;

const
  ShapeTypeNames:array [TShapeType] of string=
    (
    '未知',
    '標記',
    '線段',
    '折線',
    '矩形',
    '圓形',
    '多邊形',
    '正多邊形',
    '橢圓',
    '圓弧',
    '文字'
    );

function GetShapeTypeName(AShapeType:TShapeType):string;
begin
  Result:=ShapeTypeNames[AShapeType];
end;

function GetShapeTypeByName(const TypeName:string):TShapeType;
var
  i:Integer;
begin
  Result:=stUnknown;
  for i:=0 to 10 do
    if AnsiCompareText(ShapeTypeNames[TShapeType(i)], TypeName)=0 then
    begin
      Result:=TShapeType(i);
      Exit;
    end;
end;

function GetLayerFromTreeNode(ANode:TTreeNode):Layer;
begin
  Result:=nil;
  if (ANode<>nil)and(ANode.Level>0) then
    if TLayerTreeNodeRecord(ANode.Data).NodeType=LTN_LAYER then
      Result:=MyGIS.GMapTools.m_Layers.FindByName(TLayerTreeNodeRecord(ANode.Data).Name);
end;

function IsCustomLayer(Lyr:Layer):Boolean;
begin
  Result:=(Lyr.type_=miLayerTypeNormal)and(Lyr.Name<>'_YHB_SYS_TRACKLAYER');
end;

function GetCustomLayerIndex(MapX:TMapXObject; const ComboIndex:Integer):Integer;
var
  i, j:Integer;
begin
  Result:=-1;
  j:=-1;
  for i:=1 to MapX.Layers.Count do
    if IsCustomLayer(MapX.Layers.Item[i]) then
    begin
      Inc(j);
      if j=ComboIndex then
      begin
        Result:=i;
        Break;
      end;
    end;
end;

function GetCustomLayerComboIndex(MapX:TMapXObject; const LayerIndex:Integer):Integer;
var
  i, j:Integer;
begin
  Result:=-1;
  j:=-1;
  for i:=1 to MapX.Layers.Count do
  begin
    if IsCustomLayer(MapX.Layers.Item[i]) then
      Inc(j);
    if i=LayerIndex then
    begin
      Result:=j;
      Break;
    end;
  end;
end;

function GetBoundsString(Bounds:CMapXRectangle):string;
begin
  Result:=FloatToStr(Bounds.XMin)+','+FloatToStr(Bounds.YMin)+','+
          FloatToStr(Bounds.XMax)+','+FloatToStr(Bounds.YMax);
end;

function CreateBoundsUseBoundsString(const BoundsStr:string):CMapXRectangle;
var
  List:TStringList;
begin
  List:=TStringList.Create;
  try
    Trans2(BoundsStr, ',', List);
    Result:=CoRectangle.Create;
    Result.Set_(StrToFloat(List.Strings[0]), StrToFloat(List.Strings[1]),
                StrToFloat(List.Strings[2]), StrToFloat(List.Strings[3]));
  finally
    List.Free;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91同城在线观看| 精品国产91乱码一区二区三区| 欧美伊人精品成人久久综合97| 日韩一二三区不卡| 亚洲裸体在线观看| 国产精品一区免费视频| 欧美日韩在线直播| 久久国产生活片100| 91久久国产最好的精华液| 久久婷婷色综合| 日本麻豆一区二区三区视频| 一道本成人在线| 国产精品久久久久久妇女6080| 免费高清不卡av| 3d动漫精品啪啪| 亚洲电影中文字幕在线观看| 成人精品视频一区| 国产亚洲欧美一级| 国产精品影视网| 欧美sm极限捆绑bd| 日韩高清不卡在线| 欧美欧美欧美欧美| 亚洲高清中文字幕| 欧美日韩你懂得| 亚洲国产日韩a在线播放性色| eeuss鲁片一区二区三区在线观看| 久久久久久久久蜜桃| 国内精品视频666| 精品久久国产97色综合| 日本不卡视频在线观看| 在线综合视频播放| 美女视频网站久久| 精品乱码亚洲一区二区不卡| 老司机午夜精品99久久| 欧美变态tickling挠脚心| 六月丁香婷婷久久| 久久这里只有精品视频网| 久草在线在线精品观看| 精品理论电影在线观看| 久久66热偷产精品| 亚洲国产成人在线| 99国产精品久久久久久久久久| 一区免费观看视频| 欧美午夜在线一二页| 丝袜诱惑制服诱惑色一区在线观看| 欧美日韩成人一区二区| 日本人妖一区二区| 久久午夜电影网| 99国产欧美另类久久久精品| 亚洲综合网站在线观看| 欧美日韩国产免费| 国模冰冰炮一区二区| 国产日韩欧美精品在线| 91亚洲精品久久久蜜桃| 午夜影院在线观看欧美| 欧美va亚洲va香蕉在线| 大陆成人av片| 亚洲国产日韩精品| xvideos.蜜桃一区二区| 成人免费的视频| 亚洲激情图片qvod| 欧美一区二区三区四区高清| 国产美女精品在线| 一区二区三区欧美日| 日韩一级完整毛片| 北条麻妃国产九九精品视频| 亚洲成人av福利| 久久久久久久久伊人| 在线看一区二区| 精品一区二区三区久久久| 国产精品三级久久久久三级| 欧美日韩美少妇| 国产成人免费av在线| 亚洲成人av一区二区| 日本一二三不卡| 亚洲欧洲精品一区二区三区不卡| 欧美日韩一区二区三区在线| 国产精品亚洲一区二区三区妖精| 一区二区三区视频在线看| 2020国产精品| 678五月天丁香亚洲综合网| 成人在线一区二区三区| 五月天一区二区三区| 亚洲国产精品国自产拍av| 欧美日韩国产一区二区三区地区| 成人午夜激情影院| 青青国产91久久久久久| 亚洲美女屁股眼交3| 久久精品免费在线观看| 51精品国自产在线| 日本高清免费不卡视频| 国产激情一区二区三区桃花岛亚洲| 亚洲18影院在线观看| 综合色中文字幕| 国产亚洲人成网站| 日韩视频免费观看高清完整版在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 2023国产精品自拍| 欧美日韩你懂得| 91网站黄www| 成人涩涩免费视频| 韩国三级中文字幕hd久久精品| 日韩精品电影在线| 亚洲一区二区三区不卡国产欧美| 国产日韩欧美一区二区三区乱码 | 蜜桃av一区二区三区电影| 亚洲一区二区av电影| 亚洲日本丝袜连裤袜办公室| 国产欧美一区二区三区鸳鸯浴| 日韩欧美一区电影| 日韩欧美激情在线| 日韩一级欧美一级| 精品国产乱码久久久久久久久| 欧美一级欧美一级在线播放| 欧美高清dvd| 欧美精品黑人性xxxx| 6080午夜不卡| 欧美一区二区性放荡片| 欧美一区二区三区四区久久| 日韩午夜激情电影| 2024国产精品| 欧美激情一区二区三区在线| 国产精品女主播av| 亚洲乱码国产乱码精品精98午夜| 亚洲黄网站在线观看| 日韩中文字幕91| 奇米影视一区二区三区| 久久aⅴ国产欧美74aaa| 国产福利一区在线观看| 不卡在线视频中文字幕| 欧美自拍偷拍一区| 欧美精品久久久久久久多人混战| 日韩欧美亚洲另类制服综合在线| 精品国产污网站| 中文字幕一区二区三区在线播放 | 91视视频在线观看入口直接观看www | 色香蕉成人二区免费| 欧美日韩免费高清一区色橹橹 | 亚洲成av人片| 美女免费视频一区二区| 国产一区二区三区四区五区美女| 国产成人精品一区二区三区四区 | 亚洲一区二区三区四区在线观看| 五月天久久比比资源色| 麻豆一区二区99久久久久| 国产91色综合久久免费分享| 91色porny在线视频| 在线不卡免费av| 国产欧美日韩精品在线| 伊人夜夜躁av伊人久久| 捆绑变态av一区二区三区| av一二三不卡影片| 日韩精品一区二区在线| 中文字幕一区二区5566日韩| 午夜在线电影亚洲一区| 成人自拍视频在线观看| 欧美猛男gaygay网站| 欧美国产精品一区二区| 午夜激情综合网| 成人午夜av电影| 欧美一区二区三区四区视频| 1000精品久久久久久久久| 日本亚洲三级在线| 色综合网色综合| 国产欧美一区二区精品仙草咪| 亚洲欧洲日韩女同| 裸体一区二区三区| 91日韩精品一区| 久久中文字幕电影| 日本亚洲视频在线| 日本道在线观看一区二区| 久久久久久久久岛国免费| 天堂av在线一区| 色成人在线视频| 日本一区二区成人| 极品少妇xxxx偷拍精品少妇| 欧美日韩精品系列| 亚洲美女在线一区| 成人免费三级在线| 久久久综合精品| 麻豆精品国产91久久久久久| 欧美午夜精品一区| 亚洲人成网站影音先锋播放| 国产乱一区二区| 日韩网站在线看片你懂的| 亚洲国产美女搞黄色| 一本一本大道香蕉久在线精品| 国产精品人人做人人爽人人添| 国模冰冰炮一区二区| 日韩一级黄色片| 久久精品国产99| 精品国产一区二区三区四区四 | 一区二区三区在线免费观看| 国产精品一区免费在线观看| 精品日韩在线观看| 日本成人在线不卡视频| 欧美久久一区二区| 肉色丝袜一区二区| 亚洲一区二区黄色| 欧美三级午夜理伦三级中视频|