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

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

?? mapx.pas

?? Delphi + MapX程序框架(地圖)源碼程序
?? 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一区二区三区免费野_久草精品视频
色妹子一区二区| 久久久久久免费网| 日韩你懂的在线观看| 国产精品女主播av| 青青国产91久久久久久| 成人免费看的视频| 精品卡一卡二卡三卡四在线| 亚洲视频你懂的| 国产精品一区二区久久精品爱涩 | 丁香另类激情小说| 欧美一区三区二区| 亚洲自拍偷拍图区| 99视频精品在线| 久久久美女毛片| 捆绑变态av一区二区三区| 欧美视频一二三区| 亚洲乱码国产乱码精品精98午夜| 色天使色偷偷av一区二区| 日韩欧美一区二区久久婷婷| 午夜av电影一区| 日本福利一区二区| 中文字幕一区二| 99视频一区二区| 中文字幕一区二区在线播放| 成人午夜电影久久影院| 久久久www成人免费无遮挡大片| 全国精品久久少妇| 欧美高清视频www夜色资源网| 亚洲曰韩产成在线| 欧美中文字幕不卡| 亚洲国产精品久久久男人的天堂| 色综合久久久久久久| 亚洲免费视频成人| 91麻豆swag| 一区二区三区在线视频观看| 99免费精品视频| 亚洲免费高清视频在线| 波波电影院一区二区三区| 自拍偷拍国产亚洲| 欧美三级韩国三级日本一级| 五月天婷婷综合| 日韩一区二区三区电影在线观看| 免费高清不卡av| 欧美精品一区二区三区在线 | 久久蜜桃av一区精品变态类天堂| 精品在线你懂的| 欧美国产激情一区二区三区蜜月| 风间由美性色一区二区三区| 国产精品进线69影院| 欧美在线观看一区二区| 日韩专区欧美专区| 久久综合狠狠综合久久激情 | 国产欧美一区二区精品性| 国产不卡在线一区| 亚洲男人电影天堂| 91九色02白丝porn| 美女国产一区二区| 中文乱码免费一区二区| 在线观看视频一区二区| 日韩不卡一二三区| 中文字幕av一区二区三区| 在线亚洲+欧美+日本专区| 日韩电影在线免费看| 久久综合九色综合欧美98 | 国产美女精品在线| 一区二区三区免费看视频| 欧美一区二区网站| 国v精品久久久网| 亚洲香肠在线观看| 日韩欧美国产不卡| 91亚洲精品乱码久久久久久蜜桃| 婷婷综合五月天| 国产精品青草综合久久久久99| 在线视频你懂得一区| 精东粉嫩av免费一区二区三区| 国产精品初高中害羞小美女文| 欧美日韩国产天堂| 成人免费毛片嘿嘿连载视频| 福利91精品一区二区三区| 亚洲男人的天堂av| 久久网站最新地址| 欧美精品精品一区| 99这里都是精品| 精品一二线国产| 亚洲成人激情自拍| 最新不卡av在线| 亚洲精品一区二区三区精华液| 91成人免费在线| 成人一级视频在线观看| 免费观看日韩电影| 亚洲国产毛片aaaaa无费看| 国产午夜一区二区三区| 欧美一级片在线观看| 91高清视频在线| 99视频在线精品| 不卡影院免费观看| 国产黄人亚洲片| 精品亚洲免费视频| 麻豆一区二区在线| 亚洲成av人片| 一二三区精品视频| 国产精品久久二区二区| 国产欧美精品一区二区色综合 | 国产一区二区久久| 美女任你摸久久| 美女视频黄a大片欧美| 日韩黄色片在线观看| 亚洲成人黄色小说| 夜夜嗨av一区二区三区| 亚洲另类在线一区| 亚洲裸体在线观看| 亚洲精品成人悠悠色影视| 亚洲视频小说图片| 一区二区三区在线观看视频| 18成人在线观看| 一区二区三区四区蜜桃| 日韩毛片一二三区| 又紧又大又爽精品一区二区| 亚洲精品久久嫩草网站秘色| 亚洲美女少妇撒尿| 亚洲高清三级视频| 日本不卡一二三| 久久99九九99精品| 国产精品一级在线| 夫妻av一区二区| 色哟哟一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美日韩中文国产| 欧美一级片免费看| 国产网站一区二区| 亚洲同性gay激情无套| 亚洲视频网在线直播| 午夜精品久久一牛影视| 麻豆国产精品视频| 国产91精品精华液一区二区三区 | www.欧美日韩国产在线| 在线免费亚洲电影| 91精品欧美一区二区三区综合在| 欧美岛国在线观看| 国产精品看片你懂得| 亚洲一区在线观看视频| 久久精品理论片| 91丨porny丨首页| 欧美精品自拍偷拍动漫精品| 精品国产一区二区三区av性色| 国产欧美日韩综合精品一区二区 | 久久综合中文字幕| 国产精品国产三级国产| 亚洲一区在线看| 麻豆91精品视频| 99久久久久免费精品国产| 在线欧美日韩精品| xfplay精品久久| 亚洲一区二区三区中文字幕| 国产在线播放一区二区三区| 91欧美激情一区二区三区成人| 日韩欧美一区二区久久婷婷| 中文字幕综合网| 韩国视频一区二区| 欧美综合一区二区三区| 久久精品在线观看| 亚洲成人1区2区| 丁香六月综合激情| 日韩欧美三级在线| 亚洲一区二区三区小说| 国产乱码精品一品二品| 色8久久人人97超碰香蕉987| 精品99一区二区| 午夜久久电影网| 色先锋资源久久综合| 久久九九国产精品| 另类中文字幕网| 欧美性生活大片视频| 中文字幕av不卡| 国产剧情一区在线| 欧美高清www午色夜在线视频| 中文字幕在线观看不卡| 国产精品夜夜嗨| 欧美岛国在线观看| 日韩综合在线视频| 欧美日韩免费一区二区三区| 中文字幕在线观看一区| 国产伦精品一区二区三区视频青涩| 91麻豆精品国产91久久久久久久久 | 欧美日韩一区二区三区免费看| 中文字幕一区二区在线观看| 成人免费的视频| 国产人妖乱国产精品人妖| 精品亚洲成a人在线观看| 91精品国产综合久久精品| 亚洲国产人成综合网站| 91黄色激情网站| 一区二区三区视频在线看| 99综合影院在线| 亚洲人成在线播放网站岛国 | 欧美一区二区在线不卡| 日韩电影网1区2区| 制服.丝袜.亚洲.另类.中文| 视频在线观看一区二区三区| 欧美男男青年gay1069videost|