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

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

?? mapx.pas

?? mapx+Delephi程序 以前做的一個MapX程序框架,實現了很多mapX功能,并且使用起來很方便,可在此基礎上繼續開發. 現在本人不基本不搞mapx,搞ArcEngine了,現代碼全部貢獻了
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
  I: Integer;
begin
  if AList <> nil then
  begin
    AList.Clear;
    for I:= 1 to FMap.Layers.Count do
      AList.Add(FMap.Layers.Item[I].Name);
  end;
end;

procedure TMapX.Get_VisibleLayers(AList: TStringList);
var
  I: Integer;
begin
  if AList <> nil then
  begin
    AList.Clear;
    for I:= 1 to FMap.Layers.Count do
      if FMap.Layers.Item[I].Visible then
        AList.Add(FMap.Layers.Item[I].Name);
  end;
end;

procedure TMapX.Get_LayerFields(ALayer: string; AList: TStringList);
var
  I: Integer;
begin
  if (LayerExist(ALayer)) and (AList <> nil) then
  begin
    AList.Clear;
    BindLayerData(ALayer);
    for I:= 1 to FMap.DataSets.Item[ALayer].Fields.Count do
      AList.Add(FMap.DataSets.Item[ALayer].Fields.Item[I].Name);
  end;
end;

function TMapX.LayerExist(ALayer: string): Boolean;
var
  I: Integer;
begin
  Result:= False;
  for I:= 1 to FMap.Layers.Count do
    if FMap.Layers.Item[I].Name = ALayer then
    begin
      Result:= True;
      Break;
    end;
end;

function TMapX.LayerSelectable(ALayer: string): Boolean;
begin
  Result:=
    LayerExist(ALayer) and FMap.Layers.Item[ALayer].Visible and FMap.Layers.Item[ALayer].Selectable;
end;

function TMapX.LayerVisible(ALayer: string): Boolean;
var
  I: Integer;
begin
  Result:= False;
  for I:= 1 to FMap.Layers.Count do
    if FMap.Layers.Item[I].Name = ALayer then
    begin
      Result:= FMap.Layers.Item[I].Visible;
      Break;
    end;
end;

function TMapX.DataExist(AData: string): Boolean;
var
  i: Integer;
begin
  Result:= False;
  for i:= 1 to FMap.DataSets.Count do
    if FMap.DataSets.Item[i].Name = AData then
    begin
      Result:= True;
      Break;
    end;
end;

procedure TMapX.BindLayerData(ALayer: string);
begin
  if not DataExist(ALayer) then
    FMap.Datasets.Add(miDataSetLayer,FMap.Layers.Item[ALayer], ALayer, EmptyParam,
                  EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

procedure TMapX.MapXOnMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FCurrentTool = mttRulerTool then
    FRulerTool.Execute(X,Y,Button,mmDown);
end;




procedure TMapX.MapXOnMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  MyPoint: CMapXPoint;
  X1,Y1: Single;
  Fs: CMapXFeatures;

begin
  FMouseScreenX:= X;
  FMouseScreenY:= Y;
  X1:= X/1.0; Y1:= Y/1.0;
  FMap.MapUnit:= 1; //miUnitKilometer
  FMap.ConvertCoord(X1,Y1,FMouseX,FMouseY,1); //miScreenToMap
  MyPoint:= CoPoint.Create;
  MyPoint.Set_(FMouseX,FMouseY);
  if LayerVisible(FWorkLayer) then
    Fs:= FMap.Layers.Item[FWorkLayer].SearchAtPoint(MyPoint,miSearchResultDefault)
  else
    Fs:= nil;
  if (Fs <> nil) and (Fs.Count > 0) then
    FFeatureUnderMouse:= Fs.Item[1]
  else
    FFeatureUnderMouse:= nil;

  if (FeatureUnderMouse <> nil) and (FCurrentTool in [mttPointSelectTool, mttLabelTool, mttInforTool]) then
    Screen.Cursor:= crHandPoint
  else
    Screen.Cursor:= crDefault;

  if FCurrentTool = mttRulerTool then
    FRulerTool.Execute(X,Y,mbLeft,mmMove);//mbLeft沒有實際意義,只是作為參數
end;

procedure TMapX.MapXOnMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
end;

procedure TMapX.MapXOnPolyToolUsed(ASender: TObject; ToolNum: Smallint;
  Flags: Integer; const Points: IDispatch; bShift, bCtrl: WordBool;
  var EnableDefault: WordBool);
begin
  case ToolNum of
    Ord(mttPolygonSelectTool): if flags = 1 then FPolygonSelectTool.Execute(Points,bShift,bCtrl);
    Ord(mttRulerTool): if flags = 1 then FRulerTool.FRulerMode:= rmFinished;
    Ord(mttAreaTool): FAreaTool.Execute(Points);
  end;
  {
  if (ToolNum = 121) and (Flags = 0) then
    FAddPolyLineTool.Timer.Enabled:= True;
  if (ToolNum = 121) and (Flags = 1) then
  begin
    FAddPolyLineTool.Execute(Points);
    FAddPolyLineTool.Timer.Enabled:= False;
  end;
  }
  {
  if (ToolNum = 122) and (Flags = 1) then
    FAddPolygonTool.Execute(Points);
  }
end;

procedure TMapX.MapXOnToolUsed(ASender: TObject; ToolNum: Smallint; X1, Y1,
  X2, Y2, Distance: Double; Shift, Ctrl: WordBool;
  var EnableDefault: WordBool);
begin
  case ToolNum of
    Ord(mttPointSelectTool): FPointSelectTool.Execute(X1,Y1,Shift,Ctrl);
    Ord(mttRadiusSelectTool): FRadiusSelectTool.Execute(X1,Y1,Distance,Shift,Ctrl);
    Ord(mttRectSelectTool): FRectSelectTool.Execute(X1,Y1,X2,Y2,Shift,Ctrl);
    Ord(mttInforTool): FInforTool.Execute(X1,Y1);
    Ord(mttLabelTool): FLabelTool.Execute(X1,Y1);
    //120: FAddPointTool.Execute(X1, Y1);
  end; //  case
end;

procedure TMapX.OpenFile(AFileName: string);
begin
  if AFileName <> FFileName then
  begin
    FMap.GeoSet:= AFileName;
    FFileName:= AFileName;
  end;
end;

procedure TMapX.SetCurrentTool(const Value: TMapXToolType);
begin
  if FCurrentTool <> Value then
  begin
    FCurrentTool := Value;
    FMap.CurrentTool:= Ord(FCurrentTool);
    if Assigned(FOnCurrentToolChanged) then
      FOnCurrentToolChanged(Self, FCurrentTool);
  end;
end;

procedure TMapX.SetFileName(const Value: string);
begin
  OpenFile(Value);
end;

procedure TMapX.SetLayerSelection(Shift, Ctrl: boolean; Fs: CMapxFeatures;
  ALayer: String);
begin
  if (not(Ctrl)) and (not(Shift)) then
  begin
    FMap.Layers.ClearSelection;
    FMap.Layers.Item[ALayer].Selection.Add(Fs);
  end
  else if (Ctrl) and (not(Shift)) then
    FMap.Layers.Item[ALayer].Selection.Add(Fs)
  else if (not(Ctrl)) and (Shift) then
    FMap.Layers.Item[ALayer].Selection.Remove(Fs);
end;

procedure TMapX.SetLayerVisible(ALayer: string; IsVisible: Boolean);
var
  I: Integer;
begin
  for I:= 1 to FMap.Layers.Count do
    if FMap.Layers.Item[I].Name = ALayer then
    begin
      FMap.Layers.Item[I].Visible:= IsVisible;
      Break;
    end;
end;

procedure TMapX.SetWorkLayer(const Value: string);
begin
  if FWorkLayer <> Value then
  begin
    if LayerExist(Value) then
      FWorkLayer:= Value
    else
      FWorkLayer:= '';
    if Assigned(FOnWorkLayerChanged) then
      FOnWorkLayerChanged(Self, FWorkLayer);
  end;
end;

procedure TMapX.TitleSetting;
var
  frmTitle: TfrmTitle;
begin
  frmTitle:= TfrmTitle.Create(nil);
  frmTitle.SetMap(FMap);
  frmTitle.SetTitle(FMap.Title.Caption);
  frmTitle.setTitleVisible(FMap.Title.Visible);
  frmTitle.SetTitleBorder(FMap.Title.Border);
  frmTitle.ShowModal;
  if frmTitle.ModalResult = mrOK then
  begin
    FMap.Title.Caption:= frmTitle.GetTitle;
    FMap.Title.Visible:= frmTitle.GetTitleVisible;
    FMap.Title.Border:= frmTitle.GetTitleBorder;
  end;
  frmTitle.Free;
end;

procedure TMapX.LayerSetting;
var
  I: Integer;
begin
  for I:= 1 to FMap.Layers.Count do
    BindLayerData(FMap.Layers.Item[I].Name);
  FMap.Layers.LayersDlg(EmptyParam, EmptyParam);
end;

procedure TMapX.ThemeSetting;
var
  frmTheme: TfrmTheme;
begin
  frmTheme:= TfrmTheme.Create(nil);
  frmTheme.SetMapXTheme(FMapXTheme);
  frmTheme.ShowModal;
  if frmTheme.ModalResult = mrOK then
  begin

  end;
  frmTheme.Free;
end;

procedure TMapX.SaveAsGstFile;
const
  Filter = 'GST|*.gst';
var
  SaveDialog: TSaveDialog;
  FileName: string;
begin
  SaveDialog:= TSaveDialog.Create(nil);
  SaveDialog.Filter:= Filter;
  if SaveDialog.Execute then
  begin
    FileName:= SaveDialog.FileName;
    FileName:= FileName+'.gst';
    FMap.SaveMapAsGeoset(ExtractFileName(FileName),FileName);
  end;
  SaveDialog.Free;
end;

function TMapX.GetLayerCount: Integer;
begin
  Result:= FMap.Layers.Count;
end;

procedure TMapX.SaveAsGraph;
const
  Filter = 'JPG|*.jpg|BMP|*.bmp|TIF|*.tif|GIF|*.gif';
var
  SaveDialog: TSaveDialog;
  frmSave: TfrmSave;
  Ext: Integer;
  FileName: string;
begin
  SaveDialog:= TSaveDialog.Create(nil);
  SaveDialog.Filter:= Filter;
  if SaveDialog.Execute then
  begin
    FileName:= SaveDialog.FileName;
    case SaveDialog.FilterIndex of
      1: begin
           Ext:= 3;
           if Pos('.jpg', FileName) = 0 then
             FileName:= FileName+'.jpg';
         end;
      2: begin
           Ext:= 1;
           if Pos('.bmp', FileName) = 0 then
             FileName:= FileName+'.bmp';
         end;
      3: begin
           Ext:= 4;
           if Pos('.tif', FileName) = 0 then
             FileName:= FileName+'.tif';
         end;
      4: begin
           Ext:= 2;
           if Pos('.gif', FileName) = 0 then
             FileName:= FileName+'.gif';
         end;
    end;
    frmSave:= TfrmSave.Create(nil);
    frmSave.SetMap(FMap);
    frmSave.ShowModal;
    if frmSave.ModalResult = mrOK then
      FMap.ExportMap(FileName, Ext, StrToFloat(frmSave.Edit1.Text), StrToFloat(frmSave.Edit2.Text));
    frmSave.Free;
  end;
  SaveDialog.Free;
end;

procedure TMapX.PrintMap;
var
  frmPrint: TfrmPrint;
begin
  frmPrint:= TfrmPrint.Create(nil);
  frmPrint.SetMap(FMap);
  frmPrint.ShowModal;
  if frmPrint.ModalResult = mrOK then
  begin
    Printer.BeginDoc;
    FMap.PrintMap(Printer.Handle, 0, 0, StrToInt(frmPrint.Edit1.Text), StrToInt(frmPrint.Edit2.Text));
    Printer.EndDoc;
  end;
  frmPrint.Free;
end;

procedure TMapX.SearchSetting;
var
  frmSearch: TfrmSearch;
begin
  frmSearch:= TfrmSearch.Create(nil);
  frmSearch.SetBuddyMap(Self);
  try
    frmSearch.ShowModal;
  finally
    frmSearch.Free;
  end;
end;

function TMapX.GetDataSetCount: Integer;
begin
  Result:= FMap.DataSets.Count;
end;

function TMapX.GetDataSetByName(AName: string): CMapXDataSet;
begin
  Result:= FMap.DataSets.Item[AName];
end;

function TMapX.GetSearchResult(ALayer, AField, AText: string;
  SearchType: TSearchType): CMapxfeatures;
var
  SearchSQL: string;
begin
  case SearchType of
    stExact:        begin
                      AText:= '"'+AText+'"';
                      SearchSQL:= AField+' = '+AText;
                    end;
    stRightDim:     begin
                      AText:= '"'+'%'+AText+'"';
                      SearchSQL:= AField+' like '+AText;
                    end;
    stLeftDim:      begin
                      AText:= '"'+AText+'%'+'"';
                      SearchSQL:= AField+' like '+AText;
                    end;
    stArbitraryDim: begin
                      AText:= '"'+'%'+AText+'%'+'"';
                      SearchSQL:= AField+' like '+AText;
                    end;
  end; //case
  Result:= FMap.Layers.Item[ALayer].Search(SearchSQL,EmptyParam);
end;

function TMapX.GetCombinedFeature(Fs: CMapXFeatures): CMapXFeature;
var
  i: Integer;
begin
  if (Fs.Count <> 0) then
    if (Fs.Item[1].type_ = 0) or (Fs.Item[1].type_ = 1)  then
      if Fs.Count = 1 then result:= Fs.Item[1]
      else
      begin
        result:= Fs.Item[1];
        for i:= 2 to Fs.Count do
          Result:= FMap.FeatureFactory.CombineFeatures(Result,Fs.Item[i]);
      end;
end;

function TMapX.GetAnalyseResult(AnalyseType: TAnalyseType;
  SourceF: CMapXFeature; DesLyr: string; Dis: Double): CMapXFeatures;
begin
  case AnalyseType of
    atSelected:   Result:= FMap.Layers.Item[DesLyr].Selection.Clone;
    atInRegion:   Result:= FMap.Layers.Item[DesLyr].SearchWithinFeature(
                    SourceF,0);
    atAroundPoint,
    atAlongLine:  Result:= FMap.Layers.Item[DesLyr].SearchWithinDistance(
                    SourceF,Dis,0,0);
  end;
end;

function TMapX.GetAnalyseTypes(SourceFs: CMapXFeatures): TAnalyseTypes;
begin
  Result:= [];
  if (SourceFs <> nil) and (SourceFs.Count > 0) then
  begin
    Result:= Result+[atSelected];
    case SourceFs.Item[1].type_ of
      miFeatureTypeRegion : Result:= Result+[atInRegion];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线观看一区二区| 午夜伦欧美伦电影理论片| 国产99久久精品| 国产欧美视频一区二区三区| 国产黄人亚洲片| 中文乱码免费一区二区| av一区二区不卡| 亚洲欧美综合网| 欧洲另类一二三四区| 性感美女极品91精品| 51精品国自产在线| 国内偷窥港台综合视频在线播放| 久久天堂av综合合色蜜桃网| 国产suv精品一区二区883| 中文字幕日韩欧美一区二区三区| 色诱亚洲精品久久久久久| 亚洲成人av中文| 日韩欧美一区二区不卡| 国产精品自拍三区| 亚洲三级在线免费观看| 欧美日本免费一区二区三区| 美国欧美日韩国产在线播放| 久久久一区二区| 日本韩国欧美一区| 免费精品视频在线| 国产精品天干天干在线综合| 欧洲精品一区二区三区在线观看| 日本不卡高清视频| 国产精品欧美一区喷水| 欧美三级午夜理伦三级中视频| 激情综合色丁香一区二区| 国产精品伦理一区二区| 欧美亚洲国产一区二区三区va| 麻豆精品视频在线| 国产精品五月天| 欧美一区二区三区视频免费播放| 岛国精品一区二区| 日本不卡1234视频| 一区二区三区在线免费| 久久丝袜美腿综合| 欧美日韩久久久| 99这里只有精品| 国产综合色产在线精品| 亚洲一二三区视频在线观看| 国产日韩v精品一区二区| 欧美一区二区三区在| 色婷婷亚洲精品| 韩国成人福利片在线播放| 亚洲bdsm女犯bdsm网站| 综合在线观看色| 精品国产不卡一区二区三区| 欧美卡1卡2卡| 高潮精品一区videoshd| 久久激情五月婷婷| 舔着乳尖日韩一区| 一区二区三区**美女毛片| 国产三级精品三级在线专区| 日韩欧美专区在线| 日本精品一区二区三区高清| av亚洲产国偷v产偷v自拍| 国产精品亚洲成人| 韩国女主播一区二区三区| 久久精品国产精品青草| 轻轻草成人在线| 日韩精品一区第一页| 亚洲午夜电影在线| 亚洲国产综合在线| 亚洲一区二区三区免费视频| 亚洲天堂av一区| 国产精品成人免费精品自在线观看 | 亚洲一区二区三区四区在线 | 99精品欧美一区| 国产91精品精华液一区二区三区| 美女网站色91| 日韩精品久久理论片| 日韩中文字幕麻豆| 秋霞影院一区二区| 久久福利视频一区二区| 免费高清在线视频一区·| 麻豆精品一区二区av白丝在线| 午夜精品久久久久久久99水蜜桃| 天天综合天天做天天综合| 亚洲国产另类av| 丝袜美腿亚洲综合| 日本aⅴ亚洲精品中文乱码| 婷婷成人激情在线网| 日产欧产美韩系列久久99| 美日韩一区二区三区| 久久精品av麻豆的观看方式| 精品一区二区三区免费毛片爱| 毛片av一区二区| 国产在线精品视频| 成人黄色在线视频| 欧美在线看片a免费观看| 欧美影视一区在线| 337p亚洲精品色噜噜狠狠| 日韩精品一区二区三区三区免费| 精品久久国产97色综合| 中文字幕乱码久久午夜不卡| 中文字幕在线不卡| 亚洲va韩国va欧美va| 久久99精品久久久久| 成人在线综合网站| 欧美自拍丝袜亚洲| 日韩三级视频在线观看| 国产日韩欧美一区二区三区乱码| 国产精品成人一区二区艾草| 亚洲午夜一区二区| 免费观看日韩av| 99精品国产99久久久久久白柏| 在线精品亚洲一区二区不卡| 日韩欧美国产一区二区在线播放| 日本一区二区成人| 一区二区三区色| 精品一区二区三区久久| 99久久精品99国产精品| 日韩一区国产二区欧美三区| 国产片一区二区三区| 亚洲一区二区在线视频| 国产精品123| 在线免费视频一区二区| 2欧美一区二区三区在线观看视频| 中文字幕一区二区三区色视频| 青青草国产精品亚洲专区无| www.欧美日韩| 日韩欧美123| 伊人夜夜躁av伊人久久| 国产精品正在播放| 欧美日韩国产另类一区| 国产精品乱人伦一区二区| 久久精品国产色蜜蜜麻豆| 日本精品免费观看高清观看| 久久综合丝袜日本网| 亚洲成人黄色小说| 99久久免费视频.com| 欧美zozozo| 亚洲成av人片一区二区三区| 成人永久免费视频| 日韩午夜在线播放| 一区二区三区不卡视频| 97成人超碰视| 日本一区二区高清| 国产伦理精品不卡| 日韩一区二区三区观看| 亚洲人成人一区二区在线观看| 国产老妇另类xxxxx| 欧美一级一级性生活免费录像| 亚洲免费av网站| 成人av片在线观看| 国产欧美视频一区二区| 毛片基地黄久久久久久天堂| 欧美区一区二区三区| 亚洲一区二区免费视频| 91在线视频网址| 国产精品动漫网站| 福利一区福利二区| 国产亚洲欧洲997久久综合| 看电视剧不卡顿的网站| 在线不卡的av| 午夜电影久久久| 欧美性视频一区二区三区| 亚洲三级视频在线观看| av午夜精品一区二区三区| 国产精品美女一区二区三区| 成人h动漫精品一区二区| 国产丝袜美腿一区二区三区| 国产毛片精品国产一区二区三区| 精品国产一区二区三区忘忧草 | 一级中文字幕一区二区| 91免费国产在线| 亚洲免费毛片网站| 欧美视频一二三区| 亚洲成人免费观看| 欧美老肥妇做.爰bbww视频| 国产在线播精品第三| 精品少妇一区二区三区免费观看 | 91免费看片在线观看| 亚洲少妇最新在线视频| 欧美一区二区久久| 日本精品一区二区三区四区的功能| 久久99热99| 亚洲综合色区另类av| 久久精品免费在线观看| 91黄色免费网站| 久久精品国产精品青草| 亚洲国产视频在线| 成人欧美一区二区三区小说 | 亚洲美女屁股眼交3| 欧美精品自拍偷拍| 豆国产96在线|亚洲| 国产麻豆9l精品三级站| 美女视频黄频大全不卡视频在线播放| 欧美国产成人在线| 欧美激情中文字幕| 久久亚洲精品小早川怜子| 欧美一区二区三区日韩| 欧美区一区二区三区| 91官网在线观看| 在线精品视频免费观看| av日韩在线网站|