|
阅读:1987回复:9
[求助]drawshape问题
<P>我用drawshape画了一个图形对象,我跳到另一个窗体后,再返回来发现,那个图形对象还在</P>
<P>该如何清除呢?</P> <P>谢谢!~~</P><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /> |
|
|
1楼#
发布于:2004-10-27 15:16
<P>顶,楼主的问题应该和我的遇到的差不多。</P><P>比如我drawshape(recordset,sym)完后,会画出recordset对应的对象。</P><P>然后我把所有图层都移除掉,但是刚才画出的对象还是存在,这是不应该的。</P><P>除非把recordset = null。</P>
|
|
|
2楼#
发布于:2004-10-28 17:00
你调用drawshape来绘制图形肯定是在图层的Draw事件函数里面,你切换到其他窗口再回来的时候,你的程序又重新执行了drawshape操作,所以是删除不掉的!
我觉得按照你的想法来实现此功能的话,应该用TrackingLayer图层的AddEvent来绘制,就会满足你的要求了!在不需要显示的时候调用TrackingLayerl图层的ClearEvents来清除! |
|
|
|
3楼#
发布于:2004-10-29 08:02
<P>可是trackinglayer层只能绘制trackcircle;trackline;</P><P>trackpolygen;trackrectangle四种。要是画点怎么办?</P>
|
|
|
4楼#
发布于:2004-10-29 08:27
<P>DrawShape 是给地图添加 Shape ,即使所有的图层都没有了,这个Shape还是有的,原因地图还存在,要想搞定它,就需要在Draw事件里做些处理,比如标识出不该DrawShape的状态,然后地图刷新的时候不DrawShape,或者以相反的颜色和状态在原来的位置上重绘一边,就可以抹去视觉上的效果。</P><P>另外,AddEvent 方法可以添加点,而且效果很棒!</P>
|
|
|
|
5楼#
发布于:2004-10-29 09:54
用RemoveGeo把Trackinglayer中的图元移了就不会画啦!
|
|
|
|
6楼#
发布于:2004-11-01 12:23
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
7楼#
发布于:2004-11-03 10:23
<DIV class=quote><B>以下是引用<I>袁绍伦</I>在2004-10-29 8:27:25的发言:</B>
<P>DrawShape 是给地图添加 Shape ,即使所有的图层都没有了,这个Shape还是有的,原因地图还存在,要想搞定它,就需要在Draw事件里做些处理,比如标识出不该DrawShape的状态,然后地图刷新的时候不DrawShape,或者以相反的颜色和状态在原来的位置上重绘一边,就可以抹去视觉上的效果。</P> <P>另外,AddEvent 方法可以添加点,而且效果很棒!</P></DIV> <P>AddEvent方法添加点,用什么呢?trackCircle?Polygon?</P><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /> |
|
|
8楼#
发布于:2004-11-04 09:18
<P>mapobjects2.point point ;</P><P>point = Map.tomappoint(x,y);</P><P>map.trackinglayer.addevent(point,0);</P><P>就这样~</P>
|
|
|
9楼#
发布于:2004-11-04 23:29
<img src="images/post/smile/dvbbs/em09.gif" />
|
|