Delphi ArcEngine 闪烁显示指定点附近元素方法

function FlashElement(aeMapControl: TMapControl; iFlashCount, iInternal: Integer;
  pColor: IColor; pPoint: IPoint): Boolean;
var
  pEnumElement: IEnumElement;
  pElement: IElement;
  pGraphicsContainer: IGraphicsContainer;
  pMarkerSymbol: ISimpleMarkerSymbol;
  pLineSymbol: ISimpleLineSymbol;
  pFillSymbol: ISimpleFillSymbol;
  pSymbol: ISymbol;
begin
  pGraphicsContainer := aeMapControl.Map as IGraphicsContainer;

  pEnumElement := pGraphicsContainer.LocateElements(pPoint, 10);

  if pEnumElement = nil then
    Exit(False);

  pElement := pEnumElement.Next;
  while pElement <> nil do
  begin

    case pElement.Geometry.GeometryType of
      esriGeometryPoint, esriGeometryMultipoint:
        begin
          pMarkerSymbol := CoSimpleMarkerSymbol.Create as ISimpleMarkerSymbol;
          pMarkerSymbol.Color := pColor;
          pMarkerSymbol.Style := esriSMSCircle;

          pSymbol := pMarkerSymbol as ISymbol;
        end;

      esriGeometryLine, esriGeometryPolyline:
        begin
          pLineSymbol := CoSimpleLineSymbol.Create as ISimpleLineSymbol;
          pLineSymbol.Color := pColor;
          pLineSymbol.Style := esriSLSSolid;
          pSymbol := pLineSymbol as ISymbol;
        end;

      esriGeometryPolygon:
        begin
          pFillSymbol := CoSimpleFillSymbol.Create as ISimpleFillSymbol;
          pFillSymbol.Color := pColor;
          pFillSymbol.Style := esriSFSSolid;
          pSymbol := pFillSymbol as ISymbol;
        end;
    end;
    aeMapControl.FlashShape(pElement.Geometry, iFlashCount, iInternal, pSymbol);
    pElement := pEnumElement.Next;
  end;
  Result := True;
end;
原文地址:https://www.cnblogs.com/chinacodegear/p/1425456.html