• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi ArcEngine 创建指北针 Delphi ArcEngine 创建指北针

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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;

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap