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

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

?? mainmapform.pas

?? GIS地理信息系統開發。 大名鼎鼎的MAPX+DELPHI7.0軟件開發
?? 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一区二区三区免费野_久草精品视频
91 com成人网| 国产精品久久久久久久第一福利| 激情综合亚洲精品| 亚洲午夜免费视频| 中文字幕一区二区视频| 国产视频一区二区在线| 精品福利在线导航| 久久五月婷婷丁香社区| 国产亚洲欧美日韩日本| 午夜精品久久久久| 精品一区二区三区在线视频| 91久久精品一区二区| 欧洲日韩一区二区三区| 欧美喷潮久久久xxxxx| 日韩欧美一区在线观看| 日韩欧美精品在线| 国产精品乱码人人做人人爱| 亚洲精品国产a| 午夜精品久久久久影视| 97成人超碰视| 欧美色综合网站| 久久综合九色综合久久久精品综合| 亚洲午夜精品一区二区三区他趣| 成人美女视频在线观看| 色天使色偷偷av一区二区| 777a∨成人精品桃花网| 日日夜夜免费精品视频| 国产69精品一区二区亚洲孕妇| 日本精品一区二区三区四区的功能| 国产精品视频免费| av资源网一区| 日韩欧美国产成人一区二区| 蜜桃一区二区三区四区| 风流少妇一区二区| 中文字幕不卡三区| 日韩中文字幕区一区有砖一区| 在线中文字幕不卡| 午夜电影一区二区三区| 欧美一区二区三区视频在线观看| 久久精品一区二区| 成人免费视频国产在线观看| 亚洲欧洲av在线| 91丝袜美腿高跟国产极品老师| 日韩精品中文字幕在线一区| 精品一区二区在线免费观看| 欧美国产精品中文字幕| 色综合中文字幕| 精品国产91九色蝌蚪| 黄色资源网久久资源365| 欧美日韩一区二区三区不卡| 亚洲欧洲精品天堂一级| 日本久久一区二区三区| 日韩中文字幕不卡| 久久这里只有精品视频网| 成人精品gif动图一区| 日韩精品一区二区三区三区免费 | 欧美日韩亚洲综合在线| 亚洲国产成人av网| 精品福利在线导航| 91麻豆国产精品久久| 视频一区国产视频| 国产日韩欧美亚洲| 国产在线精品不卡| 欧美sm极限捆绑bd| 免费国产亚洲视频| 日韩亚洲欧美成人一区| 国产99久久久久| 三级在线观看一区二区| 国产欧美日韩不卡免费| 欧美日韩五月天| 成人黄色在线网站| 热久久一区二区| 亚洲欧美福利一区二区| 欧美亚洲综合久久| 免费美女久久99| 亚洲女与黑人做爰| 久久午夜免费电影| 欧美日韩大陆在线| 不卡的av电影| 国产在线不卡一区| 午夜精品久久久久影视| 亚洲欧洲日产国产综合网| 日韩视频一区二区三区在线播放| 91尤物视频在线观看| 国产一区二区伦理片| 天堂久久一区二区三区| 日韩美女视频19| 成+人+亚洲+综合天堂| 日本美女一区二区三区视频| 日韩一级大片在线观看| 在线观看日韩精品| 99久久婷婷国产| 国产在线一区二区| 日韩电影免费在线| 亚洲图片自拍偷拍| 亚洲日本va在线观看| 中文字幕国产一区| 久久品道一品道久久精品| 不卡区在线中文字幕| 久久精品国产免费| 欧美国产乱子伦| 26uuu国产一区二区三区| 91麻豆精品国产91久久久久久 | 亚洲高清免费在线| 中文字幕一区视频| 国产三级欧美三级日产三级99| 欧美一级高清大全免费观看| 欧美日韩国产综合草草| 欧美日韩中文一区| 欧美日韩中文国产| 欧美情侣在线播放| 久久精品无码一区二区三区| 亚洲一区二区三区中文字幕| 久久超碰97中文字幕| 亚洲视频免费看| 欧美日韩亚州综合| 日本精品一区二区三区四区的功能| 亚洲影院免费观看| 欧美成人精品福利| 久久久www免费人成精品| 色猫猫国产区一区二在线视频| 亚洲欧美另类在线| 亚洲丝袜制服诱惑| 欧美xfplay| 欧美日韩亚洲综合一区二区三区| 欧美最新大片在线看| 欧美亚洲日本国产| 在线成人免费视频| 激情综合亚洲精品| 国产精品亚洲成人| 91一区一区三区| av亚洲精华国产精华精| 99热国产精品| 欧美日韩美女一区二区| 欧美一级一区二区| 国产欧美日韩综合| 一个色在线综合| 国产精品视频麻豆| 亚洲影视在线观看| 免费观看在线综合色| 春色校园综合激情亚洲| 欧洲亚洲国产日韩| 精品国产一区二区三区忘忧草| 欧美激情一区二区在线| 亚洲精品成人天堂一二三| 日本午夜精品一区二区三区电影| 韩国视频一区二区| 91麻豆福利精品推荐| 日韩一区二区三区在线| 国产欧美综合在线观看第十页 | 91激情五月电影| 91精品国产91综合久久蜜臀| 国产日韩欧美在线一区| 亚洲自拍偷拍av| 国产乱码精品1区2区3区| 欧美在线一二三| 久久你懂得1024| 亚洲欧美精品午睡沙发| 久久国产精品第一页| 色天使色偷偷av一区二区| 久久久综合网站| 亚洲电影欧美电影有声小说| 怡红院av一区二区三区| 蜜臀av亚洲一区中文字幕| 91在线小视频| 2020日本不卡一区二区视频| 亚洲狠狠爱一区二区三区| 国产精品99久久久久久宅男| 7777精品伊人久久久大香线蕉完整版 | 久久久不卡网国产精品一区| 视频一区欧美精品| 91天堂素人约啪| 国产精品久久久久久久久果冻传媒| 麻豆精品久久精品色综合| 欧美三级在线视频| 亚洲视频免费看| 成人国产在线观看| 久久精品夜夜夜夜久久| 精品一区二区久久久| 日韩一区二区精品葵司在线| 亚洲国产美国国产综合一区二区| 99久久综合精品| 国产精品污污网站在线观看 | 久久这里只精品最新地址| 免费不卡在线观看| 欧美日韩mp4| 午夜精品一区二区三区电影天堂| av激情综合网| 日韩毛片视频在线看| 99精品黄色片免费大全| 国产精品久久久久久久久搜平片| 国产一区在线不卡| 久久噜噜亚洲综合| 国产精一区二区三区| 久久久国产综合精品女国产盗摄| 经典三级在线一区| 26uuu国产在线精品一区二区| 久久91精品久久久久久秒播| 精品日韩一区二区三区| 国产一区激情在线|