Delphi ArcEngine 创建图例

function InsertLegend(aePageLayoutControl: TPageLayoutControl; sTitle: string): Boolean;
var
   pPageLayout: IPageLayout;
   pMap     : IMap;
   pActiveMap: IActiveView;
   pGraphicContainer: IGraphicsContainer;
   pMapFrame: IMapFrame;
   pLegend  : ILegend;
   pLegendItem: ILegendItem;
   pMapSurround: IMapSurround;
   pMapSurroundFrame: IMapSurroundFrame;
   pUID     : UID;

   pEnvelope: IEnvelope;
begin
   pUID := CoUID.Create as UID;
   pUID.Value := 'esriCarto.Legend';

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

   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);

   pLegend := pMapSurround as ILegend;
   if pLegend.ItemCount = 0 then
      Exit(False);
   pLegend.Title := sTitle;
   pLegend.Item[1].ShowDescriptions := True;
   pLegend.Item[1].ShowLabels := False;

   pLegend.Refresh;

   Result := True;
end;
原文地址:https://www.cnblogs.com/chinacodegear/p/1416422.html