• Delphi ArcEngine 创建指北针


    function InsertNorthArrow(aePageLayoutControl: TPageLayoutControl; iStyle: SmallInt): Boolean;
    var
       pPageLayout: IPageLayout;
       pMap     : IMap;
       pActiveMap: IActiveView;
       pGraphicContainer: IGraphicsContainer;
       pMapFrame: IMapFrame;
       pMapSurround: IMapSurround;
       pMapSurroundFrame: IMapSurroundFrame;
       pUID     : UID;

       pEnvelope: IEnvelope;

       pNorthArrow: IMarkerNorthArrow;
       pCharacterMarkerSymbol: ICharacterMarkerSymbol;
    begin
       pUID := CoUID.Create as UID;
       pUID.Value := 'esriCarto.MarkerNorthArrow';

       pPageLayout := aePageLayoutControl.PageLayout;
       pActiveMap := pPageLayout as IActiveView;

       aePageLayoutControl.TrackCancel.Reset;
       pEnvelope := aePageLayoutControl.TrackRectangle;

       if (pEnvelope.IsEmpty) or (pActiveMap = nil) then
          Exit(False);

       pMapSurround := CreateSurround(pUID, pEnvelope, '指北针', pPageLayout);//这个函数并非 ae 自带的,是自己写的,请参考另外一个随笔

       // Delphi版 ArcEngine 创建MapSurround对象

       if pMapSurround = nil then
          Exit(False);

       pNorthArrow := pMapSurround as IMarkerNorthArrow;
       pCharacterMarkerSymbol := pNorthArrow.MarkerSymbol as ICharacterMarkerSymbol;
       pCharacterMarkerSymbol.CharacterIndex := iStyle;

       pNorthArrow.MarkerSymbol := pCharacterMarkerSymbol;
       pActiveMap.PartialRefresh(esriViewGraphics, nil, nil);

       Result := True;
    end;
  • 相关阅读:
    windows下cmd命令行上传代码到github的指定库
    Navicat Premium 12.1.11.0安装与激活
    windows部署Apollo
    C#事件-使用事件需要的步骤
    C#委托和事件
    C#事件委托概念
    C#中委托和事件的区别
    C#委托与事件
    C#细说多线程
    C# 堆栈(Stack)和队列(Queue)
  • 原文地址:https://www.cnblogs.com/chinacodegear/p/1416416.html
Copyright © 2020-2023  润新知