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

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

?? mainmapform.pas

?? Mapx Delphi 用于地圖對象編輯的設置與開發
?? PAS
字號:
unit mainMapForm;

interface

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

type
  TMainMap = class(TForm)
    MainMenu1: TMainMenu;
    FileMenuItem: TMenuItem;
    exitMenuItem: TMenuItem;
    layersMenuItem: TMenuItem;
    layerControlMenuItem: TMenuItem;
    addNewLayerMenuItem: TMenuItem;
    toolsMenuItem: TMenuItem;
    panToolMenuItem: TMenuItem;
    zoomInToolMenuItem: TMenuItem;
    selectToolMenuItem: TMenuItem;
    editLyrCombo: TComboBox;
    editLayerLabel: TLabel;
    drawToolsMenuItem: TMenuItem;
    lineSubMenuItem: TMenuItem;
    pointSubMenuItem: TMenuItem;
    polygonSubMenuItem: TMenuItem;
    polylineSubMenuItem: TMenuItem;
    stylesMenuItem: TMenuItem;
    symbolStyleMenuItem: TMenuItem;
    lineStyleMenuItem: TMenuItem;
    regionStyleMenuItem: TMenuItem;
    infoMenuItem: TMenuItem;
    Objects1: TMenuItem;
    DeleteSelection1: TMenuItem;
    zoomOutToolMenuItem: TMenuItem;
    BufferSelection1: TMenuItem;
    ftrLayerCombo: TComboBox;
    lblFtrLayer: TLabel;
    CombineSelection1: TMenuItem;
    Map1: TMap;
    procedure layerControlMenuItemClick(Sender: TObject);
    procedure exitMenuItemClick(Sender: TObject);
    procedure addNewLayerMenuItemClick(Sender: TObject);
    procedure panToolMenuItemClick(Sender: TObject);
    procedure zoomInToolMenuItemClick(Sender: TObject);
    procedure selectToolMenuItemClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure editLyrComboChange(Sender: TObject);
    procedure pointSubMenuItemClick(Sender: TObject);
    procedure lineSubMenuItemClick(Sender: TObject);
    procedure polylineSubMenuItemClick(Sender: TObject);
    procedure polygonSubMenuItemClick(Sender: TObject);
    procedure symbolStyleMenuItemClick(Sender: TObject);
    procedure lineStyleMenuItemClick(Sender: TObject);
    procedure regionStyleMenuItemClick(Sender: TObject);
    procedure Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1, Y1, X2,
      Y2, Distance: Double; Shift, Ctrl: Wordbool;
      var EnableDefault: Wordbool);
    procedure infoMenuItemClick(Sender: TObject);
    procedure DeleteSelection1Click(Sender: TObject);
    procedure zoomOutToolMenuItemClick(Sender: TObject);
    procedure BufferSelection1Click(Sender: TObject);
    procedure ftrLayerComboChange(Sender: TObject);
    procedure CombineSelection1Click(Sender: TObject);
    procedure Map1PolyToolUsed(Sender: TObject; ToolNum: Smallint;
      Flags: Integer; Points: IDispatch; bShift, bCtrl: WordBool;
      var EnableDefault: WordBool);
  private
    { Private declarations }
    procedure upDate_EditCombo;
  public
    { Public declarations }
  end;

var
  MainMap: TMainMap;
  // Layer variable to hold current edit layer
  EditLayer : Variant;
  // Global value to hold selected feature for Info Tool
  infoFeature : Variant;
  // Layer variable to hold current feature layer
  ftrLayer : Variant;

Const
     // Custom Tool Constants
     CUSTOM_POINT_TOOL = 1;
     CUSTOM_LINE_TOOL = 2;
     CUSTOM_POLYGON_TOOL = 3;
     CUSTOM_POLYLINE_TOOL = 4;

     CUSTOM_INFO_TOOL = 9;
     CUSTOM_SELECT_TOOL = 10;

implementation

uses newLayerDialog, featureInfo;

{$R *.DFM}

procedure TMainMap.layerControlMenuItemClick(Sender: TObject);
var
   unusedParam: OleVariant;
begin
     TVarData(unusedParam).vType := varError;
     TVarData(unusedParam).vError := 2147614724; // DISP_E_PARAMNOTFOUND;
     // Display the Stock MapX Layer Control Dialog
     Map1.Layers.LayersDlg(unusedParam, unusedParam);
     upDate_EditCombo;
end;

procedure TMainMap.exitMenuItemClick(Sender: TObject);
begin
     Close;
end;

procedure TMainMap.addNewLayerMenuItemClick(Sender: TObject);
begin
     // Display form to add a new layer
     newLayerForm.ShowModal;
     upDate_EditCombo;
end;

procedure TMainMap.panToolMenuItemClick(Sender: TObject);
begin
     // Make Pan tool the current tool
     map1.currentTool := miPanTool;
end;

procedure TMainMap.zoomInToolMenuItemClick(Sender: TObject);
begin
     // Make Zoom In tool current Tool
     map1.currentTool := miZoomInTool;
end;

procedure TMainMap.selectToolMenuItemClick(Sender: TObject);
begin
     // Make Selection Tool the current tool
     map1.currentTool := miSelectTool;
end;

procedure TMainMap.FormActivate(Sender: TObject);
var empty: Variant;
begin
     // Create custom tools and update combo box control
     upDate_EditCombo;
     TVarData(empty).vType := varError;
     TVarData(empty).vError := 2147614724; // DISP_E_PARAMNOTFOUND;
     Map1.CreateCustomTool(CUSTOM_POINT_TOOL, miToolTypePoint, miSymbolCursor, miArrowCursor, miArrowCursor, empty);
     Map1.CreateCustomTool(CUSTOM_LINE_TOOL, miToolTypeLine, miCrossCursor, miArrowCursor, miArrowCursor, empty);
     Map1.CreateCustomTool(CUSTOM_POLYGON_TOOL, miToolTypePoly, miCrossCursor, miArrowCursor, miArrowCursor, empty);
     Map1.CreateCustomTool(CUSTOM_POLYLINE_TOOL, miToolTypePoly, miCrossCursor, miArrowCursor, miArrowCursor, empty);
     Map1.CreateCustomTool(CUSTOM_INFO_TOOL, miToolTypePoint, miCrossCursor, miArrowCursor, miArrowCursor, empty);
end;

procedure TMainMap.upDate_EditCombo;
var i : integer;
begin
     // Loop through all layers and put their names in the combo box
     // Set editing layer to be first layer in list
     editLyrCombo.Clear;
     ftrLayerCombo.Clear;
     for i := 1 to Map1.Layers.Count do
       begin
         editLyrCombo.Items.Add(Map1.Layers.Item[i].Name);
         ftrLayerCombo.Items.Add(Map1.Layers.Item[i].Name);
       end;
     EditLyrCombo.ItemIndex := 0;
     ftrLayerCombo.ItemIndex := 0;
     EditLayer := Map1.Layers.Item[editLyrCombo.Text];
     ftrLayer := Map1.Layers.Item[ftrLayerCombo.Text];
end;

procedure TMainMap.editLyrComboChange(Sender: TObject);
begin
     //Reset edit layer after change
     EditLayer := Map1.Layers.Item[editLyrCombo.Text];
end;

procedure TMainMap.pointSubMenuItemClick(Sender: TObject);
begin
     // Set current tool to be point tool
     Map1.CurrentTool := CUSTOM_POINT_TOOL;
end;

procedure TMainMap.lineSubMenuItemClick(Sender: TObject);
begin
     // Set current tool to be line tool
     Map1.CurrentTool := CUSTOM_LINE_TOOL;
end;

procedure TMainMap.polylineSubMenuItemClick(Sender: TObject);
begin
     // Set current tool to be polyLine tool
     Map1.CurrentTool := CUSTOM_POLYLINE_TOOL;
end;

procedure TMainMap.polygonSubMenuItemClick(Sender: TObject);
begin
     // Set current tool to be polygon tool
     Map1.CurrentTool := CUSTOM_POLYGON_TOOL;
end;

procedure TMainMap.symbolStyleMenuItemClick(Sender: TObject);
begin
     Map1.DefaultStyle.PickSymbol;
end;

procedure TMainMap.lineStyleMenuItemClick(Sender: TObject);
begin
     Map1.DefaultStyle.PickLine;
end;

procedure TMainMap.regionStyleMenuItemClick(Sender: TObject);
begin
     Map1.DefaultStyle.PickRegion;
end;

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

var
    newObj : Variant; // Used for storing new feature object
    pt : Variant;     // Used for storing point of click
    pts : Variant;    // Used for storing collection of points
    ftrs : Variant;   // Used for storing collection of features
begin
     Case ToolNum of
        CUSTOM_POINT_TOOL :
        // Set feature type to be a symbol, set its style & XY values.
        // Add it to editing layer
           begin
              pt := CreateOleObject('MapX.Point.5');
              pt.Set(X1, Y1);

              newObj := Map1.FeatureFactory.CreateSymbol(pt, Map1.DefaultStyle);
              EditLayer.AddFeature(newObj);
           end;
        CUSTOM_LINE_TOOL :
           begin
           // Create new point object and points collection object
              pts := CreateOleObject('MapX.Points.5');
           // set Point obect to click 1 and add it to collection
              pts.AddXY(X1, Y1);
           // set Point obect to click 2 and add it to collection
              pts.AddXY(X2, Y2);
           // Create the line & add feature to layer
              newObj := Map1.FeatureFactory.CreateLine(pts, Map1.DefaultStyle);
              EditLayer.AddFeature(newObj);
           // UnAssign Variant Variables
              VarClear(pts);
           end;
        CUSTOM_INFO_TOOL :
           begin
           // Create point object and set it to click XY
              pt := CreateOleObject('MapX.Point.5');
              pt.Set(X1,Y1);
           // Perform a search at click point
              Ftrs := EditLayer.SearchAtPoint(pt);
           // If one feature selected, assign it to infoFeature and call the
           // Information form
              if Ftrs.Count = 1 Then
                 begin
                    infoFeature := Ftrs.Item[1];
                    featureInfoForm.ShowModal;
                 end;
           // UnAssign Variant Variable
              VarClear(pt);
           end;
        CUSTOM_SELECT_TOOL :
           //Make selection on feature layer
             if (ctrl) then
               ftrLayer.Selection.SelectByPoint(X1, Y1, miSelectionAppend)
             else if (Shift) then
               ftrLayer.Selection.SelectByPoint(X1, Y1, miSelectionRemove)
             else
               ftrLayer.Selection.SelectByPoint(X1, Y1, miSelectionNew);
     end;//Case
     // UnAssign Variant Variable
     VarClear(newObj);
end;

procedure TMainMap.infoMenuItemClick(Sender: TObject);
begin
     // Set current tool to be Information Tool
     Map1.CurrentTool := CUSTOM_INFO_TOOL;
end;

procedure TMainMap.DeleteSelection1Click(Sender: TObject);
begin
     try
        if editLayer.selection.count = 1 then
           begin
              editLayer.deleteFeature(editLayer.selection.item[1]);
              editLayer.selection.clearSelection;
           end;
     Except on E:Exception do ShowMessage(E.message);
     end;
end;

procedure TMainMap.zoomOutToolMenuItemClick(Sender: TObject);
begin
     // Set active tool to be the zoom Out tool
     Map1.CurrentTool := miZoomOutTool;
end;

procedure TMainMap.BufferSelection1Click(Sender: TObject);
Var
   selItems : Variant;
   newFeature : Variant;
begin
     selItems := ftrLayer.Selection;
     case selItems.Count of
       0:  Exit;
       1:  newFeature := Map1.FeatureFactory.BufferFeatures(selItems.Item[1], 10, miUnitMile, 20);
       else
           newFeature := Map1.FeatureFactory.BufferFeatures(selItems, 10, miUnitMile, 20);
     end;
     editLayer.AddFeature(newFeature);
end;

procedure TMainMap.ftrLayerComboChange(Sender: TObject);
begin
     //Reset Feature layer after change
     ftrLayer := Map1.Layers.Item[ftrLayerCombo.Text];
end;

procedure TMainMap.CombineSelection1Click(Sender: TObject);
Var
   selItems : Variant;
   newFeature : Variant;
begin
     selItems := ftrLayer.Selection;
     if selItems.Count > 1 then
       begin
         newFeature := Map1.FeatureFactory.CombineFeatures(selItems.Item[1], selItems.Item[2]);
         editLayer.AddFeature(newFeature);
       end;
end;

procedure TMainMap.Map1PolyToolUsed(Sender: TObject; ToolNum: Smallint;
  Flags: Integer; Points: IDispatch; bShift, bCtrl: WordBool;
  var EnableDefault: WordBool);
var newObj : Variant;

begin
    {***********************************************
     Due to an apparent bug in Delphi 2.0, the double
     click event is not be sent properly to the OCX.
     The SpaceBar or Enter key can be used as a double
     click replacement
    ************************************************}
    If Not (editLayer.Type = miLayerTypeUserDraw) Then
       If Flags = miPolyToolBegin Then
          //Someone's beginning the use of a PolyTool...
       Else
          If Flags = miPolyToolEnd Then
             begin
                //The user finished using a PolyTool by double clicking
                Case ToolNum of
                   CUSTOM_POLYGON_TOOL :
                      begin
                         // Make a new
                         // region feature and add it to the first layer!
                         newObj := Map1.FeatureFactory.CreateRegion(points, Map1.DefaultStyle);
                         EditLayer.AddFeature(newObj);
                      end;
                   CUSTOM_POLYLINE_TOOL :
                      begin
                         // They used MY_POLYLINE_TOOL! Make a new
                         // line feature and add it to the first layer!
                         newObj := Map1.FeatureFactory.CreateLine(points, Map1.DefaultStyle);
                         EditLayer.AddFeature(newObj);
                      end;
                end;//Case
             end
          Else If Flags = miPolyToolEndEscaped then
               // The users hit 'Esc' or backspaced all the nodes
               // away... don't add anything in.

end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜亚洲精品不卡| 在线观看国产精品网站| 欧美日韩另类一区| 久久综合色婷婷| 亚洲高清在线视频| 成人国产在线观看| 日韩欧美在线123| 亚洲资源中文字幕| 不卡欧美aaaaa| 久久综合久色欧美综合狠狠| 亚洲成av人**亚洲成av**| 99这里都是精品| 国产校园另类小说区| 欧美精品18+| 亚洲男人的天堂av| 成人小视频在线观看| 精品电影一区二区三区| 日本网站在线观看一区二区三区| 一本色道a无线码一区v| 国产精品久久午夜| 国产成人免费av在线| 精品国产乱码久久久久久影片| 午夜影视日本亚洲欧洲精品| 色av成人天堂桃色av| 国产精品第13页| 高清av一区二区| 久久久久久久综合| 激情都市一区二区| 精品欧美久久久| 青青草国产成人av片免费| 欧美日韩国产在线播放网站| 亚洲综合在线观看视频| 91亚洲精品久久久蜜桃网站| 国产精品剧情在线亚洲| 成人一区在线观看| 中文字幕乱码久久午夜不卡| 国产成人a级片| 国产区在线观看成人精品| 国产一区啦啦啦在线观看| 精品不卡在线视频| 国产一区二区美女诱惑| 久久久国产综合精品女国产盗摄| 国产在线一区二区| 久久精品无码一区二区三区| 国产麻豆一精品一av一免费| 久久久久久久久久久久久女国产乱| 精品在线你懂的| 欧美精品一区在线观看| 国产一区二区三区四区在线观看 | 国产精品自拍网站| 久久久av毛片精品| 国产成人超碰人人澡人人澡| 国产精品成人一区二区艾草| 国产精品久久久久一区二区三区 | 色偷偷久久一区二区三区| 亚洲欧美日韩精品久久久久| 91极品美女在线| 亚洲成人动漫一区| 337p亚洲精品色噜噜| 蜜桃精品在线观看| 久久综合久久综合亚洲| 成人午夜视频福利| 亚洲精品欧美激情| 欧美日韩一区久久| 免费在线观看视频一区| 亚洲精品一区二区三区在线观看| 国产成人免费视| 亚洲乱码中文字幕| 欧美精品第1页| 极品销魂美女一区二区三区| 久久精品视频一区二区三区| av在线不卡网| 亚洲一区二区三区四区五区黄| 69堂成人精品免费视频| 国产在线精品视频| 亚洲欧洲av在线| 欧美日韩国产综合一区二区| 老汉av免费一区二区三区 | 欧美日韩激情一区| 国内精品伊人久久久久av影院| 欧美高清在线精品一区| 91成人网在线| 精品一区二区三区视频| 亚洲欧洲日韩一区二区三区| 精品视频全国免费看| 激情综合色播激情啊| 亚洲三级在线播放| 欧美一区二区不卡视频| 国产视频一区二区在线| 在线中文字幕一区| 麻豆91在线观看| 亚洲色图清纯唯美| 欧美一级国产精品| 99精品视频在线免费观看| 日一区二区三区| 国产精品视频线看| 欧美久久久久久蜜桃| 成人小视频免费在线观看| 亚洲成a人片在线观看中文| 久久久精品2019中文字幕之3| 在线日韩国产精品| 国产伦精品一区二区三区视频青涩 | 日本精品一区二区三区四区的功能| 日本午夜一区二区| 亚洲欧美日韩久久精品| 精品第一国产综合精品aⅴ| 色琪琪一区二区三区亚洲区| 九九视频精品免费| 一区二区三区久久| 久久精品视频在线看| 91精品国产综合久久精品| 成人精品电影在线观看| 奇米精品一区二区三区在线观看| 国产精品福利av| 久久蜜桃香蕉精品一区二区三区| 在线免费av一区| 丁香婷婷综合激情五月色| 欧美变态口味重另类| 亚洲同性gay激情无套| 亚洲国产cao| 国产精品水嫩水嫩| 色呦呦网站一区| 国产精品一级黄| 琪琪久久久久日韩精品| 亚洲欧美经典视频| 国产免费成人在线视频| 日韩欧美在线123| 欧美美女黄视频| 99久精品国产| 国产精品影音先锋| 蜜桃视频一区二区三区| 亚洲成av人片一区二区梦乃| 亚洲伦理在线免费看| 中文字幕在线一区二区三区| 久久精品人人做人人综合| 日韩三级精品电影久久久 | 久久成人免费网站| 欧美伊人久久大香线蕉综合69| 懂色一区二区三区免费观看| 国产综合色产在线精品| 日本aⅴ亚洲精品中文乱码| 亚洲国产你懂的| 亚洲综合一区在线| 亚洲精品国产无天堂网2021| 国产精品传媒视频| 国产精品久久久久久久久免费桃花| 久久久精品人体av艺术| 精品sm在线观看| 2023国产精华国产精品| 久久一留热品黄| 欧美xxxxxxxx| 精品国产乱码久久久久久老虎| 欧美一区二区三区不卡| 91精品国产麻豆| 欧美福利视频导航| 91麻豆精品国产91久久久久久 | 国产伦精品一区二区三区免费 | 免费观看在线色综合| 免费观看在线综合| 久久精品国产99| 久久国产精品99久久久久久老狼 | 香蕉久久一区二区不卡无毒影院| 亚洲国产婷婷综合在线精品| 亚洲影院理伦片| 亚洲小说春色综合另类电影| 亚洲午夜一二三区视频| 亚洲国产成人精品视频| 午夜在线电影亚洲一区| 免费的成人av| 国产在线观看免费一区| 成人午夜视频网站| 色婷婷精品久久二区二区蜜臀av| 色婷婷精品大视频在线蜜桃视频| 亚洲精品国产视频| 一区二区三区蜜桃| 日本特黄久久久高潮| 国产自产2019最新不卡| 国产真实乱偷精品视频免| 成人国产一区二区三区精品| 色婷婷亚洲一区二区三区| 欧美性大战久久| 日韩一区二区在线看片| 久久久国产午夜精品| 亚洲色图在线看| 亚洲国产精品久久人人爱蜜臀| 日本视频在线一区| 国产福利一区二区三区在线视频| caoporn国产精品| 欧美亚一区二区| 日韩欧美亚洲一区二区| 国产欧美一区二区精品久导航 | 91精品国产综合久久福利软件 | 欧美变态tickle挠乳网站| 国产女同性恋一区二区| 亚洲精品视频在线观看免费| 水野朝阳av一区二区三区| 国产乱人伦偷精品视频免下载 | 国产成人亚洲精品青草天美| 91一区在线观看| 欧美裸体bbwbbwbbw|