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

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

?? searchunit.pas

?? mapx + delphi 實現SEARCH
?? PAS
字號:
// This sample application and corresponding sample code is provided
// for example purposes only.  It has not undergone rigorous testing
// and as such should not be shipped as part of a final application
// without extensive testing on the part of the organization releasing
// the end-user product.

unit searchUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, Menus, StdCtrls, ComObj, MapXLib_TLB;

type
  TMainForm = class(TForm)
    MainMenu1: TMainMenu;
    fileMenuItem: TMenuItem;
    layerCntrlMenuItem: TMenuItem;
    exitMenuItem: TMenuItem;
    toolMenuItem: TMenuItem;
    zoomInToolMenuItem: TMenuItem;
    zoomOutToolMenuItem: TMenuItem;
    panToolMenuItem: TMenuItem;
    searchToolsMenuItem: TMenuItem;
    searchWithingDistanceMenuItem: TMenuItem;
    SearchWithinRectangleMenuItem: TMenuItem;
    SearchWithinFeatureMenuItem: TMenuItem;
    SearchAtPointMenuItem: TMenuItem;
    Add2SelectionmenuItem: TMenuItem;
    searchLayerLabel: TLabel;
    searchLayerCombo: TComboBox;
    featureListLabel: TLabel;
    featureSearchLayerCombo: TComboBox;
    searchResultsLabel: TLabel;
    searchResultsList: TListBox;
    Map1: TMap;
    procedure layerCntrlMenuItemClick(Sender: TObject);
    procedure exitMenuItemClick(Sender: TObject);
    procedure zoomInToolMenuItemClick(Sender: TObject);
    procedure zoomOutToolMenuItemClick(Sender: TObject);
    procedure panToolMenuItemClick(Sender: TObject);
    procedure searchWithingDistanceMenuItemClick(Sender: TObject);
    procedure SearchWithinRectangleMenuItemClick(Sender: TObject);
    procedure SearchWithinFeatureMenuItemClick(Sender: TObject);
    procedure SearchAtPointMenuItemClick(Sender: TObject);
    procedure Add2SelectionmenuItemClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure searchLayerComboClick(Sender: TObject);
    procedure Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1, Y1, X2,
      Y2, Distance: Double; Shift, Ctrl: Wordbool;
      var EnableDefault: Wordbool);
  private
    { Private declarations }
    procedure updateControls;
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;
  searchLayer : Variant;

Const
     // Constants to be used for search tools
     SEARCH_DISTANCE_TOOL = 1;
     SEARCH_RECTANGLE_TOOL = 2;
     SEARCH_FEATURE_TOOL = 3;
     SEARCH_POINT_TOOL = 4;
     
implementation

{$R *.DFM}

procedure TMainForm.layerCntrlMenuItemClick(Sender: TObject);
var
   unusedParam: OleVariant;
begin
     TVarData(unusedParam).vType := varError;
     TVarData(unusedParam).vError := 2147614724; // DISP_E_PARAMNOTFOUND;
     Map1.Layers.LayersDlg(unusedParam, unusedParam);
     updateControls;
end;

procedure TMainForm.exitMenuItemClick(Sender: TObject);
begin
     close;
end;

procedure TMainForm.zoomInToolMenuItemClick(Sender: TObject);
begin
     // Set zoomIn tool to be active tool
     Map1.CurrentTool := miZoomInTool;
end;

procedure TMainForm.zoomOutToolMenuItemClick(Sender: TObject);
begin
     // Set zoomOut tool to be active tool
     Map1.CurrentTool := miZoomOutTool;
end;

procedure TMainForm.panToolMenuItemClick(Sender: TObject);
begin
     // Set pan tool to be active tool
     Map1.CurrentTool := miPanTool;
end;

procedure TMainForm.searchWithingDistanceMenuItemClick(Sender: TObject);
begin
     // Set Distance Search tool to be active tool
     Map1.CurrentTool := SEARCH_DISTANCE_TOOL;
end;

procedure TMainForm.SearchWithinRectangleMenuItemClick(Sender: TObject);
begin
     // Set Rectangle Search tool to be active tool
     Map1.CurrentTool := SEARCH_RECTANGLE_TOOL;
end;

procedure TMainForm.SearchWithinFeatureMenuItemClick(Sender: TObject);
begin
     // Set Feature Search tool to be active tool
     Map1.CurrentTool := SEARCH_FEATURE_TOOL;
end;

procedure TMainForm.SearchAtPointMenuItemClick(Sender: TObject);
begin
     // Set Point Search tool to be active tool
     Map1.CurrentTool := SEARCH_POINT_TOOL;
end;

procedure TMainForm.Add2SelectionmenuItemClick(Sender: TObject);
begin
     // Reset Menu Item each time it is chosen
     if Add2SelectionMenuItem.checked = True then
         Add2SelectionMenuItem.checked := False
     else
         Add2SelectionMenuItem.checked := True;
end;

procedure TMainForm.updateControls;
var
   i : integer;
begin
     If Map1.Layers.Count > 0 Then
        begin
             searchLayerCombo.Clear;
             featureSearchLayerCombo.Clear;
             for i := 1 to Map1.Layers.Count do
                begin
                   searchLayerCombo.Items.Add(Map1.Layers.Item[i].Name);
                   featureSearchLayerCombo.Items.Add(Map1.Layers.Item[i].Name);
                end;
             searchLayerCombo.ItemIndex := 0;
             featureSearchLayerCombo.ItemIndex := 0;
        end;
end;

procedure TMainForm.FormActivate(Sender: TObject);
var
   unusedParam: OleVariant;
begin
     TVarData(unusedParam).vType := varError;
     TVarData(unusedParam).vError := 2147614724; // DISP_E_PARAMNOTFOUND;
     Map1.CreateCustomTool(SEARCH_DISTANCE_TOOL, miToolTypeCircle, miRadiusSelectCursor, miArrowToolCursor, miArrowToolCursor, unusedParam);
     Map1.CreateCustomTool(SEARCH_RECTANGLE_TOOL, miToolTypeMarquee, miRectSelectCursor,miArrowToolCursor, miArrowToolCursor, unusedParam);
     Map1.CreateCustomTool(SEARCH_FEATURE_TOOL, miToolTypePoint, miRegionSelectCursor, miArrowToolCursor, miArrowToolCursor, unusedParam);
     Map1.CreateCustomTool(SEARCH_POINT_TOOL, miToolTypePoint, miSelectCursor, miArrowToolCursor, miArrowToolCursor, unusedParam);
     updateControls;
     searchLayer := Map1.Layers.Item[searchLayerCombo.text];
end;

procedure TMainForm.searchLayerComboClick(Sender: TObject);
begin
     searchLayer := Map1.Layers.Item[searchLayerCombo.text];
end;

procedure TMainForm.Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1,
  Y1, X2, Y2, Distance: Double; Shift, Ctrl: Wordbool;
  var EnableDefault: Wordbool);

Var
   i : Integer;
   fID : String;
   searchType : Integer;
   dist : OleVariant;
   pt : Variant;
   curFeatures : Variant;
   rc : Variant;
   obj : Variant;
   featureSearchLayer : Variant;
begin
     pt := CreateOleObject('MapX.Point.5');
     // Clear Search Results list
     searchResultsList.Clear;
     if ToolNum <> SEARCH_POINT_TOOL then
        begin
           // Set SearchType based on what key user may have down
           if (Shift And Not Ctrl) then
              searchType := miSearchTypePartiallyWithin
           else if (Ctrl And Not Shift) then
              searchType := miSearchTypeEntirelyWithin
           else
              searchType := miSearchTypeCentroidWithin;
        end;
     Case ToolNum of
        SEARCH_DISTANCE_TOOL :
           begin
              dist := Map1.OleObject.Distance(X1, Y1, X2, Y2);
              pt.Set(X1,Y1);
              curFeatures := searchLayer.SearchWithinDistance(pt, dist, miUnitMile, searchType);
              for i := 1 to curFeatures.Count do
                 begin
                    obj := curFeatures.Item[i];
                    Str(obj.FeatureID:4:0, fID);
                    searchResultsList.Items.Add(obj.Name + ' id: ' + fID);
                 end;
              if Add2SelectionMenuItem.Checked = True then
                 searchLayer.Selection.Replace(curFeatures);
           end;
        SEARCH_RECTANGLE_TOOL :
           begin
              rc := CreateOleObject('MapX.Rectangle.5');
              rc.Set(X1, Y1, X2, Y2);
              curFeatures := searchLayer.SearchWithinRectangle(rc, searchType);
              for i := 1 to curFeatures.Count do
                 begin
                    obj := curFeatures.Item[i];
                    Str(obj.FeatureID:4:0, fID);
                    searchResultsList.Items.Add(obj.Name + ' id: ' + fID);
                 end;
              if Add2SelectionMenuItem.Checked = True then
                 searchLayer.Selection.Replace(curFeatures);
           end;
        SEARCH_FEATURE_TOOL :
           begin
              featureSearchLayer := Map1.Layers.Item[featureSearchLayerCombo.Text];
              pt.Set(X1,Y1);
              curFeatures := featureSearchLayer.SearchAtPoint(pt);
              if curFeatures.Count > 0 then
                 obj := curFeatures.Item[1]
              else
                 exit;
              curFeatures := searchLayer.SearchWithinFeature(obj, searchType);
              for i := 1 to curFeatures.Count do
                 begin
                    obj := curFeatures.Item[i];
                    Str(obj.FeatureID:4:0, fID);
                    searchResultsList.Items.Add(obj.Name + ' id: ' + fID);
                 end;
              if Add2SelectionMenuItem.Checked = True then
                 searchLayer.Selection.Replace(curFeatures);
           end;
        SEARCH_POINT_TOOL :
           begin
              pt.Set(X1,Y1);
              curFeatures := SearchLayer.SearchAtPoint(pt);
              for i := 1 to curFeatures.Count do
                 begin
                    obj := curFeatures.Item[i];
                    Str(obj.FeatureID:4:0, fID);
                    searchResultsList.Items.Add(obj.Name + ' id: ' + fID);
                 end;
              if Add2SelectionMenuItem.Checked = True then
                 searchLayer.Selection.Replace(curFeatures);
           end;
     end;

end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国成人在线视频| 成人综合婷婷国产精品久久蜜臀| 日本女人一区二区三区| 国产精一区二区三区| 欧美日韩一区不卡| 国产欧美日韩综合| 日韩中文欧美在线| 色婷婷精品久久二区二区蜜臀av | av在线一区二区| 欧美哺乳videos| 婷婷综合久久一区二区三区| 99精品视频免费在线观看| 日韩精品一区二区三区四区 | 欧美人狂配大交3d怪物一区| 中文字幕一区二区三区不卡| 久久狠狠亚洲综合| 7777精品伊人久久久大香线蕉的 | 亚洲欧洲日韩女同| 国产精品亚洲а∨天堂免在线| 制服丝袜一区二区三区| 有坂深雪av一区二区精品| 不卡av免费在线观看| 国产三级一区二区| 黄页网站大全一区二区| 日韩午夜在线影院| 男女视频一区二区| 精品区一区二区| 九九九久久久精品| 国产视频一区二区在线观看| 国产毛片一区二区| 国产欧美一区二区三区网站 | 91啪九色porn原创视频在线观看| 久久久久久久免费视频了| 久久国内精品自在自线400部| 日韩午夜电影在线观看| 婷婷中文字幕一区三区| 91精品视频网| 精品一区二区三区久久久| 久久综合九色综合欧美亚洲| 激情图区综合网| 国产视频不卡一区| 91麻豆国产福利精品| 樱花影视一区二区| 欧美三区免费完整视频在线观看| 亚洲欧美电影院| 欧美视频精品在线观看| 日韩国产精品91| 日韩欧美一区二区免费| 国产精品18久久久久久久久| 久久久不卡网国产精品一区| 成人午夜短视频| 亚洲一线二线三线久久久| 欧美精品丝袜中出| 九九**精品视频免费播放| 中文乱码免费一区二区| 91久久精品网| 麻豆极品一区二区三区| 日本一区二区三区国色天香 | 亚洲成av人**亚洲成av**| 91精品欧美综合在线观看最新| 日本免费在线视频不卡一不卡二 | 日韩欧美在线综合网| 成人深夜福利app| 亚洲成在线观看| 久久精品欧美日韩| 欧美专区日韩专区| 国产主播一区二区三区| 亚洲精品高清在线| 日韩三级精品电影久久久 | 国产传媒欧美日韩成人| 欧洲中文字幕精品| 国产精品一品视频| 91麻豆国产福利在线观看| 成人免费观看视频| 国产精品一区二区视频| 国产精品一区在线观看你懂的| 极品少妇xxxx精品少妇偷拍| 美女被吸乳得到大胸91| 经典一区二区三区| 国产91丝袜在线播放0| 国产精品一区专区| 成人精品国产免费网站| 波多野结衣欧美| 99久久免费视频.com| 97aⅴ精品视频一二三区| 成人av免费网站| 91日韩精品一区| 欧美精品aⅴ在线视频| 337p亚洲精品色噜噜| 精品国产乱码久久久久久久久| 久久婷婷国产综合精品青草| 国产欧美一二三区| 亚洲色欲色欲www在线观看| 亚洲欧美激情一区二区| 性感美女久久精品| 老汉av免费一区二区三区 | 亚洲综合免费观看高清完整版| 一区二区三区在线影院| 五月婷婷激情综合| 激情文学综合网| 99国产精品一区| 制服.丝袜.亚洲.另类.中文| 精品国产免费人成在线观看| 国产精品人成在线观看免费| 一区二区三区精品在线观看| 日精品一区二区| 国产成人一级电影| 91色porny| 日韩视频在线观看一区二区| 中文字幕av免费专区久久| 一区二区三区成人在线视频| 免费看日韩精品| eeuss鲁一区二区三区| 在线电影国产精品| 亚洲国产高清在线| 日日夜夜精品免费视频| 成人免费视频国产在线观看| 欧美在线观看禁18| 国产亚洲制服色| 亚洲国产cao| 成人深夜视频在线观看| 日韩情涩欧美日韩视频| 亚洲男人天堂一区| 国产一区二区看久久| 欧美午夜免费电影| 欧美国产1区2区| 久久精品国产一区二区三| 色哟哟国产精品| 国产亚洲精品bt天堂精选| 亚洲尤物视频在线| av亚洲精华国产精华| 精品国产亚洲在线| 五月天激情综合| 91天堂素人约啪| 久久人人97超碰com| 日韩电影在线观看网站| 色综合中文字幕| 日韩精品一区二区三区中文不卡 | 884aa四虎影成人精品一区| 国产日产亚洲精品系列| 久久99久久精品欧美| 欧美三级中文字幕在线观看| 日韩一区中文字幕| 国产不卡视频在线播放| 精品国产123| 美女视频一区在线观看| 欧美在线观看一区| 成人欧美一区二区三区白人| 国产成人丝袜美腿| 精品sm在线观看| 日本vs亚洲vs韩国一区三区二区| 色老头久久综合| 亚洲色图一区二区| 99久免费精品视频在线观看| 久久嫩草精品久久久久| 国内成人精品2018免费看| 91精品久久久久久久99蜜桃| 亚洲五码中文字幕| 欧美在线一区二区| 一区二区三区在线视频观看| 99视频一区二区三区| 亚洲国产成人一区二区三区| 国产伦精品一区二区三区视频青涩 | 91麻豆精品国产91久久久更新时间 | 亚洲综合另类小说| 欧美亚洲一区二区在线| 一区二区三区欧美亚洲| 在线视频国内自拍亚洲视频| 一区二区免费在线| 91久久精品国产91性色tv| 亚洲主播在线播放| 欧美视频一区二区三区| 无码av免费一区二区三区试看| 欧美日韩国产首页在线观看| 天天做天天摸天天爽国产一区| 欧美人妖巨大在线| 麻豆国产精品777777在线| 精品第一国产综合精品aⅴ| 韩国精品久久久| 中文欧美字幕免费| 色哟哟精品一区| 日欧美一区二区| 久久久激情视频| 91免费观看国产| 天天综合网天天综合色| 精品国产乱码久久久久久蜜臀| 国产成人自拍网| 中文字幕一区在线观看视频| 91黄色在线观看| 日本中文字幕一区二区视频| 欧美电影免费观看高清完整版在| 韩国av一区二区三区在线观看| 久久久www成人免费无遮挡大片| 99免费精品视频| 午夜精品一区二区三区三上悠亚| 日韩女优av电影| av色综合久久天堂av综合| 亚洲成精国产精品女| 26uuu精品一区二区在线观看| 成人高清视频在线|