亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产成人亚洲精品青草天美| 国产美女在线精品| 在线视频中文字幕一区二区| 国产精品久久久久婷婷| 国产在线看一区| 亚洲国产成人午夜在线一区| 一本到高清视频免费精品| 亚洲激情欧美激情| 欧美三电影在线| 国产成人精品亚洲午夜麻豆| 亚洲精品日韩一| 精品久久国产老人久久综合| 青娱乐精品视频在线| 中文字幕在线一区| 精品国免费一区二区三区| 国产精品中文字幕一区二区三区| 91视频一区二区三区| 亚洲欧美激情一区二区| 51精品视频一区二区三区| 91美女片黄在线| 99国产精品国产精品毛片| 久久99精品久久久久婷婷| 中文字幕一区二区三区不卡在线 | 99久久精品一区二区| 亚洲电影欧美电影有声小说| 久久久噜噜噜久久人人看 | 日韩一级片在线观看| 丁香一区二区三区| 国产999精品久久久久久绿帽| 日本不卡中文字幕| 久久国产剧场电影| 免费在线看一区| 亚洲一二三区在线观看| 亚洲免费高清视频在线| 国产精品卡一卡二卡三| 国产精品久久久久四虎| 一卡二卡欧美日韩| 夜夜爽夜夜爽精品视频| 午夜视黄欧洲亚洲| 久久国产精品72免费观看| 精品一区二区三区在线观看| 天堂久久一区二区三区| 美女任你摸久久| 国产精品综合二区| a亚洲天堂av| 欧美日本乱大交xxxxx| 国产精品久久久爽爽爽麻豆色哟哟| 中文字幕一区在线观看视频| 亚洲一区二区三区四区在线观看| 亚洲电影第三页| 国产成人丝袜美腿| 欧美日韩一区二区电影| 欧美电影免费观看高清完整版在线 | 欧美一级欧美三级在线观看| 日韩一区二区三区观看| www国产精品av| 亚洲色图一区二区三区| 亚洲成人自拍偷拍| 久久福利资源站| 色综合天天性综合| 日韩手机在线导航| 亚洲天堂成人在线观看| 亚洲午夜视频在线| 91在线观看地址| 欧美一区二区观看视频| 国产精品久久久一本精品| 首页亚洲欧美制服丝腿| 成人v精品蜜桃久久一区| 一本到不卡免费一区二区| 国产无人区一区二区三区| 一区二区三区四区蜜桃| 国产精品夜夜嗨| 欧美日本在线观看| 亚洲欧美偷拍三级| 成人免费精品视频| 久久午夜羞羞影院免费观看| 五月婷婷激情综合| 欧美日韩精品一区视频| 一区二区三区日韩欧美精品| 国产精品亚洲人在线观看| 久久综合九色综合97婷婷女人 | 色哟哟精品一区| 一区二区三区免费| 欧美午夜精品一区二区三区| 免费看日韩a级影片| 精品国精品国产| 免费观看91视频大全| www精品美女久久久tv| 91亚洲午夜精品久久久久久| www久久精品| 91黄色小视频| 日精品一区二区三区| 制服.丝袜.亚洲.中文.综合| 韩国女主播成人在线| 亚洲人成人一区二区在线观看| 欧洲日韩一区二区三区| 麻豆国产欧美日韩综合精品二区| 国产精品久久久久久久午夜片| 91丨porny丨中文| 香蕉久久一区二区不卡无毒影院 | 偷窥国产亚洲免费视频| 欧美一级精品大片| 成人免费高清在线| 亚洲午夜视频在线| 亚洲美女视频在线观看| 91香蕉视频在线| 国产自产v一区二区三区c| 久久久久久久久97黄色工厂| www.日韩av| 久久不见久久见中文字幕免费| 亚洲电影你懂得| 中文字幕一区在线| 亚洲一线二线三线久久久| 亚洲日韩欧美一区二区在线| 色综合久久综合| 在线播放亚洲一区| 99re这里只有精品首页| 色香蕉久久蜜桃| 在线免费观看日韩欧美| 99re亚洲国产精品| 成人午夜伦理影院| 激情深爱一区二区| 国产精品18久久久久久久久久久久 | 欧美日韩国产欧美日美国产精品| 欧美视频一区在线观看| 欧美美女bb生活片| 99在线视频精品| 欧美日韩美少妇| 久久蜜桃一区二区| 国产精品久久久久久一区二区三区| 亚洲国产精品国自产拍av| 欧美丰满少妇xxxxx高潮对白| 欧美日韩不卡在线| 久久精品日产第一区二区三区高清版| 久久影院午夜论| 亚洲综合图片区| 中文字幕一区二区在线观看| 亚洲国产精品v| 日韩高清国产一区在线| 成人激情免费视频| 日韩午夜在线影院| 亚洲久本草在线中文字幕| 亚洲成a人片综合在线| 毛片av一区二区三区| 成人av在线观| 欧美成人一区二区| 亚洲五月六月丁香激情| 日本在线不卡视频一二三区| 国产精品亚洲专一区二区三区| 99re这里只有精品视频首页| 99久久精品免费看国产免费软件| 精品少妇一区二区三区 | 日本伦理一区二区| 欧美精品一区二区高清在线观看| 国产精品福利av| 日本91福利区| 日韩精品一区二区三区swag| 日本亚洲免费观看| 国产人伦精品一区二区| 91天堂素人约啪| 久久久久亚洲蜜桃| 欧美在线观看一区| 亚洲电影视频在线| 国产亚洲精品中文字幕| 国内久久婷婷综合| 中文字幕在线观看不卡| 欧美国产一区二区在线观看| 国产精品一区二区果冻传媒| 久久久亚洲高清| 欧美日本精品一区二区三区| 成人免费高清视频在线观看| 精品粉嫩超白一线天av| 国产精品系列在线观看| 美女视频网站久久| 蜜桃91丨九色丨蝌蚪91桃色| 日韩理论电影院| 国产精品久久久久永久免费观看| 欧美性感一区二区三区| 国产成人激情av| 日本视频中文字幕一区二区三区| 2023国产精华国产精品| 日韩欧美精品三级| 日韩视频免费观看高清完整版在线观看| 色中色一区二区| 欧美亚洲尤物久久| 欧美日韩久久一区| 欧美日韩免费一区二区三区视频| 北条麻妃一区二区三区| 99久久综合国产精品| 成人激情av网| 色婷婷综合中文久久一本| 91麻豆精品在线观看| 911精品产国品一二三产区| 欧美岛国在线观看| 亚洲欧美激情一区二区| 精品一区二区三区免费视频| 日本道精品一区二区三区| 日韩欧美区一区二| 91麻豆精品国产91久久久久久| 国产精品美女久久久久久久|