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;