echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
10楼#
发布于:2003-08-12 20:15
对不起,不是ARC里面实现的;
不过,实现闪烁与ARC没有太大的关系,纯粹是客户端编程实现!
举报 回复(0) 喜欢(0)     评分
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
11楼#
发布于:2003-08-28 17:41
联系方式???
举报 回复(0) 喜欢(0)     评分
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
12楼#
发布于:2003-08-29 22:32
上楼,你发了一则短信。
举报 回复(0) 喜欢(0)     评分
happyboy75
路人甲
路人甲
  • 注册日期2003-07-27
  • 发帖数89
  • QQ
  • 铜币667枚
  • 威望0点
  • 贡献值0点
  • 银元0个
13楼#
发布于:2003-09-02 16:59
可以参照一下
在MapX中实现图元闪烁原码[由alice原创]
MapX图元分三种类型:
1、线(Line),即miFeatureTypeLine
2、区域(Region),即miFeatureTypeRegion
3、点符号(Symbol),即miFeatureTypeSymbol

加入一个时钟控件,并在时钟控件中实现以下代码:

procedure TMapFrm.tmFlashSelectTimer(Sender: TObject);
var
ft: CMapXFindFeature;
lyr: CMapXLayer;
bExist: Boolean;
i: Integer;
str: String;
ds: CMapXDataset;
begin
bExist := False;
for i := 1 to mapCity.Layers.Count do
begin
if mapCity.Layers.Item.Name = m_strSelLyr then
begin
bExist := True;
break;
end;
end;

if not bExist then
begin
tmFlashSelect.Enabled := False;
MsgFrm := TMsgFrm.Create(Self);
MsgFrm.m_strMsg := Format('图层[%s]信息不存在!',[m_strSelLyr]);
MsgFrm.ShowModal;
MsgFrm.Free;
Exit;
end;

lyr := mapCity.Layers._Item(m_strSelLyr);
ds := mapCity.Datasets.Add(miDataSetLayer, lyr ,EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
lyr.Find.FindDataset := ds;
lyr.Find.FindField := ds.Fields.Item[1];
str := Format('%d',[m_nSelID]);
ft := lyr.Find.Search(str,EmptyParam);

if ft.FindRC mod 10 <> 1 then
begin
tmFlashSelect.Enabled := False;
MsgFrm := TMsgFrm.Create(Self);
MsgFrm.m_strMsg := Format('单位点[%s]信息不存在!',[m_strCorpName]);
MsgFrm.ShowModal;
MsgFrm.Free;
Exit;
end;

case ft.type_ of
miFeatureTypeLine:
begin
if ft.Style.LineColor = miColorWhite then
ft.Style.LineColor := miColorRed
else
ft.Style.LineColor := miColorWhite;
end;
miFeatureTypeRegion:
begin
if ft.Style.RegionColor = miColorGreen then
ft.Style.RegionColor := miColorRed
else
ft.Style.RegionColor := miColorGreen;
end;
miFeatureTypeSymbol:
begin
if not m_bFlashSel then
lyr.Selection.Replace(ft)
else
lyr.Selection.ClearSelection;
m_bFlashSel := not m_bFlashSel;
end;
end;
ft.Update(EmptyParam, EmptyParam);

if not m_bCenter then
begin
m_bCenter := True;
mapCity.CenterX := ft.CenterX;
mapCity.CenterY := ft.CenterY;
mapCity.Refresh;
end;
end;

我这里是把选中的图元实现闪烁,并把图元居中

实现图元闪烁的另一个方法:

假设图元原大小是20,改变后大小是15

if ft.Style.SymbolBitmapSize=20 then
ft.Style.SymbolBitmapSize:=15
else
ft.Style.SymbolBitmapSize:=20;
ft.Update(EmptyParam, EmptyParam);

ft是symbol类型的
想换工作:现在的工作有点偏离GIS 求职意向:GIS应用与开发(mo、mapx、mapengine) 开发语言:vb、delphi 数据库:SQL server、DB2 happyboy075@163.com qq:122761955
举报 回复(0) 喜欢(0)     评分
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
14楼#
发布于:2003-09-04 00:30
谢谢楼上兄弟,
不过,好象是C/S结构


[此贴子已经被作者于2003-9-4 0:32:07编辑过]
举报 回复(0) 喜欢(0)     评分
lzg_cj
路人甲
路人甲
  • 注册日期2004-01-08
  • 发帖数142
  • QQ
  • 铜币448枚
  • 威望0点
  • 贡献值0点
  • 银元0个
15楼#
发布于:2004-04-15 13:38
hehe!
举报 回复(0) 喜欢(0)     评分
上一页 下一页
游客

返回顶部