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

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

?? mapxcontainer.pas

?? 此代碼是關于mapgis的在
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
end;

function TMapManager.GetCurrentToolObject: TBaseMapTool;
var
  aTempTool:TBaseMapTool;
begin
  Result:=nil;
  aTempTool:=SysTools.CurrentToolObject;
  if (aTempTool<>nil)and(MapX.CurrentTool=aTempTool.ToolId) then
  begin
    Result:=aTempTool;
    Exit;
  end;
  aTempTool:=UserTools.CurrentToolObject;
  if (aTempTool<>nil)and(MapX.CurrentTool=aTempTool.ToolId) then
    Result:=aTempTool;
end;

function TMapManager.GetSingleSelectedLayer: CMapXLayer;
var
  i:Integer;
  Count:Integer;
  TempLayer:CMapXLayer;
begin
  TempLayer:=nil;
  Count:=0;
  for i:=1 to MapX.Layers.Count do
  begin
    if MapX.Layers.Item[i].Selection.Count>0 then
    begin
      TempLayer:=MapX.Layers.Item[i];
      Inc(Count);
    end;
    if Count>1 then Break;
  end;
  if Count=1 then
    Result:=TempLayer
  else
    Result:=nil;
end;

function TMapManager.Copy:Boolean;
var
  ALyr:Layer;
begin
  Result:=False;
  ALyr:=GetFirstSelectLayer;
  if (ALyr=nil)or(ALyr.Selection.Count=0) then Exit;
  CopyFts:=ALyr.NoFeatures;
  CopyFts.Add(ALyr.Selection.Clone);
  Result:=True;
end;

function TMapManager.GetFirstSelectLayer: CMapXLayer;
var
  i:Integer;
begin
  Result:=nil;
  for i:=1 to MapX.Layers.Count do
    if MapX.Layers.Item[i].Selection.Count>0 then
    begin
      Result:=MapX.Layers.Item[i];
      Exit;
    end;
end;

procedure TMapManager.DoBeforeSelectionDeleted(ASender: TObject;
  EditLayer: CMapXLayer);
var
  i:Integer;
  pProc:TMapXSelectionDeleted;
begin
  for i:=0 to FSelectionDeletedEventProces.Count-1 do
  begin
    pProc:=TMapXSelectionDeleted(FSelectionDeletedEventProces.Items[i].Method);
    pProc(ASender, EditLayer);
  end;
end;

{ TFeatureClass }

constructor TFeatureClass.Create;
begin
  inherited Create;
  FFields:=TMapFieldList.Create;
  FFeatureList:=TBusinessFeatureList.Create;
  FParams:=TStringList.Create;
end;

destructor TFeatureClass.Destroy;
begin
  FFields.Free;
  FFeatureList.Free;
  FParams.Free;
  inherited Destroy;
end;

procedure TFeatureClass.LoadFromStream(Stream: TStream);
begin
  FeatureClassName:=ReadString(Stream);
  TableStructCanChanged:=ReadBoolean(Stream);
  FeatureListCanChanged:=ReadBoolean(Stream);
  Script:=ReadString(Stream);
  FFields.LoadFromStream(Stream);
  FFeatureList.LoadFromStream(Stream);
  ReadMemo(Stream, FParams);
end;

procedure TFeatureClass.SaveToStream(Stream: TStream);
begin
  WriteString(Stream, FeatureClassName);
  WriteBoolean(Stream, TableStructCanChanged);
  WriteBoolean(Stream, FeatureListCanChanged);
  WriteString(Stream, Script);  
  FFields.SaveToStream(Stream);
  FFeatureList.SaveToStream(Stream);
  WriteMemo(Stream, FParams);
end;

constructor TFeatureClassList.Create;
begin
  FList:=TList.Create;
end;

destructor TFeatureClassList.Destroy;
begin
  Clear;
  FList.Free;
  inherited Destroy;
end;

function TFeatureClassList.GetItemCount:Integer;
begin
  Result:=FList.Count;
end;

function TFeatureClassList.GetItem(Index:Integer):TFeatureClass;
begin
  Result:=FList.Items[Index];
end;

procedure TFeatureClassList.Add(Value:TFeatureClass);
begin
 FList.Add(Value);
end;

function TFeatureClassList.Add:TFeatureClass;
begin
 Result:=TFeatureClass.Create;
 Add(Result);
end;

procedure TFeatureClassList.Insert(const Index:Integer;Value:TFeatureClass);
begin
  FList.Insert(Index,Value);
end;

function TFeatureClassList.Insert(const Index:Integer):TFeatureClass;
begin
  Result:=TFeatureClass.Create;
  FList.Insert(Index,Result);
end;

procedure TFeatureClassList.Delete(const Index:Integer);
begin
  TFeatureClass(FList.Items[Index]).Free;
  FList.Delete(Index);
end;

procedure TFeatureClassList.Clear;
var
  i:Integer;
begin
  for i:=0 to FList.Count-1 do
    TFeatureClass(FList.Items[i]).Free;
  FList.Clear;
end;

procedure TFeatureClassList.LoadFromStream(Stream:TStream);
var
  i:Integer;
  myCount:Integer;
  AObj:TFeatureClass;
begin
  Clear;
  myCount:=ReadInteger(Stream);
  for i:=0 to myCount-1 do
  begin
    AObj:=Add;
    AObj.LoadFromStream(Stream);
  end;
end;

procedure TFeatureClassList.SaveToStream(Stream:TStream);
var
  i:Integer;
  AObj:TFeatureClass;
begin
  WriteInteger(Stream, FList.Count);
  for i:=0 to FList.Count-1 do
  begin
    AObj:=Items[i];
    AObj.SaveToStream(Stream);
  end;
end;

{ TLayersManager }

function TLayersManager.CreateUserDrawLayer(
  const LayerName: string): CMapXLayer;
begin
  Result:=MapX.Layers.AddUserDrawLayer(LayerName, 1);  
end;

function TLayersManager.CreateDefaultTempLayer(
  const LayerName: string; const Index:Integer): CMapXLayer;
var
  Position:OleVariant;
begin
  if Index=-1 then
    Position:=MapX.Layers.Count+1
  else
    Position:=Index;
  Result:=MapX.Layers.CreateLayer(LayerName, EmptyParam,Position,EmptyParam, EmptyParam);
  Result.Editable:=True;
end;

function TLayersManager.FindByName(const LayerName: string): CMapXLayer;
var
  Index:Integer;
begin
  Result:=nil;
  Index:=IndexByName(LayerName);
  if Index>-1 then
    Result:=MapX.Layers.Item[Index];
end;

function TLayersManager.GetActiveLayer: CMapXLayer;
begin
  Result:=MapX.Layers.AnimationLayer;
end;

procedure TLayersManager.GetLayerNames(List: TStrings);
var
  i:Integer;
begin
  List.Clear;
  for i:=1 to MapX.Layers.Count do
    List.Add(MapX.Layers.Item[i].Name);
end;

function TLayersManager.IndexByName(const LayerName: string): Integer;
var
  i:Integer;
begin
  Result:=-1;
  for i:=1 to MapX.Layers.Count do
    if CompareText(MapX.Layers.Item[i].Name, LayerName)=0 then
    begin
      Result:=i;
      Exit;
    end;
end;

function TLayersManager.CreateLayerFromFile(const LayerName, FileName: string;
  const Index:Integer; const bAddData:Boolean):CMapXLayer;
var
  Position:OleVariant;
begin
  if Index=-1 then
    Position:=MapX.Layers.Count+1
  else
    Position:=Index;
  Result:=MapX.Layers.Add(FileName,Position);
  Result.Name:=LayerName;
  if bAddData then
    MapX.Datasets.Add(miDataSetLayer, Result, Result.Name,
                      EmptyParam, EmptyParam, EmptyParam,
                      EmptyParam, EmptyParam);
end;

procedure TLayersManager.CreateLayersFromFiles(List: TStrings;
  const FromIndex:Integer; const bAddData:Boolean);
var
  i:Integer;
  Position:OleVariant;
  ALyr:Layer;
begin
  if FromIndex=-1 then
    Position:=MapX.Layers.Count+1
  else
    Position:=FromIndex;
  for i:=0 to List.Count-1 do
  begin
    ALyr:=MapX.Layers.Add(List.Strings[i],Position+i);
    if bAddData then
      MapX.Datasets.Add(miDataSetLayer, ALyr, ALyr.Name,
                        EmptyParam, EmptyParam, EmptyParam,
                        EmptyParam, EmptyParam);
  end;
end;

procedure TLayersManager.Merge(const LayerIndexes: string);
begin

end;

procedure TLayersManager.Move(const FromIndex, ToIndex: Integer);
begin
  MapX.Layers.Move(FromIndex, ToIndex);
end;

procedure TLayersManager.MoveToBottom(const Index: Integer);
begin
  MapX.Layers.Move(Index, MapX.Layers.Count);
end;

procedure TLayersManager.MoveToTop(const Index: Integer);
begin
  MapX.Layers.Move(Index, 1);
end;

procedure TLayersManager.Pack(const PackType:Integer);
var
  i: Integer;
begin
  for i := 1 to MapX.Layers.Count do
    MapX.Layers[i].Pack(PackType);
end;

procedure TLayersManager.Remove(const Index: Integer);
begin
  MapX.Layers.Remove(Index);
end;

procedure TLayersManager.RemoveAll;
begin
  MapX.Layers.RemoveAll;
end;

procedure TLayersManager.RemoveByName(const LayerName: string);
var
  i:Integer;
begin
  for i:=MapX.Layers.Count downto 1 do
  begin
    if CompareText(MapX.Layers.Item[i].Name, LayerName)=0 then
      MapX.Layers.Remove(i);
  end;
end;

procedure TLayersManager.SetActiveLayer(const Value: CMapXLayer);
begin
  MapX.Layers.AnimationLayer:=Value;
end;

function TLayersManager.CreateSymbolLayerFromDataSet(const LayerName,
  DataSetName, XFieldName, YFieldName, KeyFieldName, TabFileName: string;
  DS:TCustomADODataSet): CMapXLayer;
var
  oBLayer : BindLayer;
  MapDS:DataSet;
begin
  if FileExists(TabFileName) then
    DeleteFile(TabFileName);
  if not DS.Active then
    raise Exception.Create('系統基礎表沒有打開!');
  if DS.FindField(XFieldName)=nil then
    raise Exception.Create('橫坐標字段不存在!');
  if DS.FindField(YFieldName)=nil then
    raise Exception.Create('縱坐標字段不存在!');
  if DS.FindField(KeyFieldName)=nil then
    raise Exception.Create('編號字段不存在!');
  //創建BindLayer//
  oBLayer := coBindLayer.Create;
  oBLayer.LayerName := LayerName;
  oBLayer.FileSpec := TabFileName; 
  oBLayer.LayerType := miBindLayerTypeXY;//必須使用這個參數才能綁定XY坐標
  oBLayer.RefColumn1 := XFieldName;//橫坐標
  oBLayer.RefColumn2 := YFieldName;//縱坐標
  //添加數據集//
  MapDS:=MapX.Datasets.Add(miDataSetADO,//數據集類型,這是miDataSetADO,即ADO專用的
                           DS.Recordset,//使用這個方法獲得ADO中的_Recordset類型
                           DataSetName,//數據集名稱
                           KeyFieldName,//傳入的是Xunit表中的字段ID的名稱
                           EmptyParam,
                           oBLayer,//BindLayer
                           EmptyParam,
                           EmptyParam);
end;

function TLayersManager.CreateCustomTableLayer(const LayerName,
  FilePath: string; MapFields: TMapFieldList; const Index:Integer;
  const bAddData:Boolean): CMapXLayer;
var
  LyrInfo:LayerInfo;
  Flds:Fields;
  FileName:string;
  Position:OleVariant;
begin
  FileName:=FilePath+'\'+LayerName+'.TAB';
  if FileExists(FileName) then DeleteFile(FileName);
  if Index=-1 then
    Position:=MapX.Layers.Count+1
  else
    Position:=Index;
  LyrInfo:=CoLayerInfo.Create;
  Flds:=CoFields.Create;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看中文网站| 日韩欧美国产三级电影视频| 久久99精品一区二区三区三区| 综合久久综合久久| 国产午夜精品久久久久久久| 日韩免费观看高清完整版 | 免费高清在线一区| 国产欧美日韩精品在线| 欧美日本一道本| 国产精品二区一区二区aⅴ污介绍| 蜜桃视频一区二区| 蜜臀久久99精品久久久久久9 | 色综合天天综合| av成人老司机| 色欧美乱欧美15图片| 欧美性色综合网| 3d成人动漫网站| 欧美成人艳星乳罩| 中文字幕久久午夜不卡| 亚洲色图制服诱惑 | 成人免费视频免费观看| 一区二区三区在线免费| 综合在线观看色| 洋洋成人永久网站入口| 亚洲成人tv网| 久久狠狠亚洲综合| 不卡一区中文字幕| 在线亚洲一区二区| 日韩午夜在线影院| 日本一二三四高清不卡| 一个色综合网站| 久久国产精品区| 91免费版在线看| 91精品久久久久久蜜臀| 亚洲国产高清aⅴ视频| 亚洲美女偷拍久久| 精品一区二区三区免费视频| av欧美精品.com| 91麻豆精品国产91| 91亚洲精品久久久蜜桃网站| 国产精品麻豆欧美日韩ww| 欧美日韩大陆一区二区| 欧美精品一区二| 一区二区久久久| 国产一区二区三区国产| 在线中文字幕不卡| 国产欧美视频一区二区| 午夜激情综合网| 成人性生交大片免费看中文| 欧美一级黄色录像| 亚洲免费高清视频在线| 国产精品一区二区无线| 欧美理论片在线| 国产精品久久久久三级| 精品无人码麻豆乱码1区2区| 91国偷自产一区二区三区成为亚洲经典| 精品国一区二区三区| 亚洲综合一区二区精品导航| 成人精品在线视频观看| 91精品福利在线一区二区三区 | 蜜臀av一区二区在线免费观看| 国产一二精品视频| 欧美另类一区二区三区| 日本不卡一二三区黄网| 99视频一区二区三区| 26uuu欧美| 日本不卡中文字幕| 5月丁香婷婷综合| 亚洲欧美aⅴ...| 91在线观看地址| 国产精品久久久久一区| 成人手机电影网| 国产欧美一区二区精品性| 久久99国产精品久久| 狠狠色伊人亚洲综合成人| 欧美成人一区二区三区| 另类小说综合欧美亚洲| 欧美精选在线播放| 国产精品久久久久久久裸模| 国模大尺度一区二区三区| 日韩欧美黄色影院| 国模冰冰炮一区二区| 国产色一区二区| 不卡视频在线看| 中文字幕日本乱码精品影院| caoporn国产一区二区| 国产精品电影院| 91麻豆自制传媒国产之光| 亚洲精品你懂的| 欧美日本在线播放| 久久99久久久欧美国产| 国产亚洲欧美日韩在线一区| 成人免费毛片嘿嘿连载视频| 69堂精品视频| 欧美高清一级片在线观看| 欧美精品第一页| 久久99这里只有精品| 麻豆国产欧美日韩综合精品二区| 大桥未久av一区二区三区中文| 国产日韩av一区二区| 97精品久久久午夜一区二区三区 | 欧美日韩一区二区在线视频| 一区二区三区av电影| 3751色影院一区二区三区| 精品一区二区免费在线观看| 国产无人区一区二区三区| 91丝袜美腿高跟国产极品老师| 亚洲欧美日本韩国| 91麻豆精品国产91| 国产精品系列在线观看| 亚洲综合另类小说| 在线不卡一区二区| 国产成人精品三级| 亚洲乱码国产乱码精品精98午夜| 91免费观看视频在线| 日本亚洲最大的色成网站www| 久久久777精品电影网影网 | 色婷婷激情综合| 老司机精品视频线观看86| 国产精品国产精品国产专区不蜜| 欧美亚洲一区二区在线观看| 国产在线精品免费| 午夜私人影院久久久久| 国产精品欧美一区二区三区| 91精品福利在线一区二区三区| 国产91在线看| 免费一级欧美片在线观看| 亚洲色图色小说| 精品国一区二区三区| 欧美日韩免费观看一区二区三区| 国产成人免费av在线| 免费欧美日韩国产三级电影| 亚洲毛片av在线| 国产精品系列在线| 欧美精品一区二区久久久| 欧美日韩一二区| 91片在线免费观看| 懂色av中文字幕一区二区三区| 秋霞午夜鲁丝一区二区老狼| 亚洲午夜在线视频| 国产精品国产三级国产普通话蜜臀| 精品国产百合女同互慰| 在线不卡中文字幕播放| 欧美三级电影一区| 在线观看免费亚洲| 91麻豆高清视频| 成人免费视频免费观看| 天天影视涩香欲综合网| 日韩欧美第一区| 免费的成人av| 日韩精品三区四区| 亚洲最新在线观看| 亚洲亚洲人成综合网络| 亚洲伦在线观看| 亚洲久草在线视频| 亚洲欧美日韩成人高清在线一区| 国产精品成人一区二区艾草| 国产精品亲子伦对白| 国产精品久久午夜夜伦鲁鲁| 中文一区在线播放| 亚洲欧美在线视频| 亚洲乱码国产乱码精品精的特点| 亚洲欧美韩国综合色| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美日韩成人高清在线一区| 一区二区三区资源| 偷拍亚洲欧洲综合| 美女一区二区三区在线观看| 久久er精品视频| 国产一区二区三区在线观看免费视频| 久久精品国产秦先生| 国产在线播放一区二区三区| 岛国av在线一区| 在线一区二区视频| 日韩一区二区三区三四区视频在线观看| 欧美精品久久一区二区三区| 日韩精品最新网址| 国产女人水真多18毛片18精品视频| 欧美激情资源网| 97久久精品人人爽人人爽蜜臀| 懂色av中文字幕一区二区三区 | 国产九色sp调教91| 成人在线综合网站| 色综合色综合色综合 | 国产成人午夜高潮毛片| 99久久久精品| 91精品在线观看入口| 国产拍揄自揄精品视频麻豆 | 欧美精品少妇一区二区三区| 精品区一区二区| 亚洲同性gay激情无套| 日韩av电影免费观看高清完整版| 老司机一区二区| 成人avav在线| 日韩一卡二卡三卡四卡| 中文字幕一区二区三区在线播放| 婷婷久久综合九色国产成人| av亚洲产国偷v产偷v自拍| 日韩精品一区二区三区在线| 久久久精品中文字幕麻豆发布|