请大家帮忙解决一下关于mapbasic的问题或留下QQ号吗,谢谢大这

再度梦想 2005-03-01 02:10:52
是这样的,我用mapbasic做程序时,修改当前表中的对象,比如说一个圆

Alter Object cell_obj Info OBJ_INFO_BRUSH,makebrush(3,green,green)
1、我是用鼠标点击一个圆,这个圆就变成绿色,
2、再点击下一个圆时,上一次点击的圆恢复本身颜色,其实就是突出显示一点,
问题:点击时圆变成了绿色,但下一次点击时上一次的不恢复,
大家帮帮忙吧

如果不明白,希望留下QQ,
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_cer 2005-03-03
  • 打赏
  • 举报
回复
主要是这几句了

mymap.Do "delete from Cosmetic1"
mymap.Do "set map Redraw Off"
mymap.Do "fetch rec 1 from foundLine"
mymap.Do "obj1 = foundLine.obj"
mymap.Do "Alter Object obj1 Info " & OBJ_INFO_PEN & " , MakePen( 3,2,RGB(255,0,0))"
mymap.Do "insert into Cosmetic1(obj) values(obj1)"
a_cer 2005-03-03
  • 打赏
  • 举报
回复
mymap.Do "select * from " & strStation & " where col2 = """ & strLineId & """ into foundLine"
Dim tmpValue As Integer
tmpValue = Val(mymap.Eval("TableInfo(foundLine," & TAB_INFO_NROWS & ")"))
Debug.Print tmpValue & " line was found!"
If tmpValue = 0 Then
MsgBox "没有找到!", , "提示"
Exit Function
End If

mymap.Do "add map window frontwindow() layer foundLine"
mymap.Do "delete from Cosmetic1"
mymap.Do "set map Redraw Off"
mymap.Do "fetch rec 1 from foundLine"
mymap.Do "obj1 = foundLine.obj"

mymap.Do "Alter Object obj1 Info " & OBJ_INFO_PEN & " , MakePen( 3,2,RGB(255,0,0))"

mymap.Do "insert into Cosmetic1(obj) values(obj1)"

Dim objType As String, drCircle As Integer, X As Integer, Y As Integer, z As Integer
objType = CStr(mymap.Eval("objectinfo(obj1," & OBJ_INFO_TYPE & ")"))
Dim x1 As Long, x2 As Long, y1 As Long, y2 As Long

x1 = Val(mymap.Eval(" ObjectGeography(obj1," & OBJ_GEO_MINX & ")"))
x2 = Val(mymap.Eval(" ObjectGeography(obj1," & OBJ_GEO_MAXX & ")"))
y1 = Val(mymap.Eval(" ObjectGeography(obj1," & OBJ_GEO_MINY & ")"))
y2 = Val(mymap.Eval(" ObjectGeography(obj1," & OBJ_GEO_MAXY & ")"))

X = (x1 + x2) / 2
Y = (y1 + y2) / 2
drCircle = Abs(x2 - x1)
mymap.Do "set map Redraw on"


If drCircle > 0 Then '

mymap.Do "set map window frontwindow() center ( " & X & "," & Y & ") zoom " & drCircle * 20 / 1000 '& "units "


End If
mymap.Do "Remove Map Layer foundLine"
a_cer 2005-03-03
  • 打赏
  • 举报
回复
tryit
再度梦想 2005-03-02
  • 打赏
  • 举报
回复
试着操作了一下,还是不行,a_cer(玩家),可以再说具体一点吗,我操作的过程中,原表已经修改,因为每点击一个都会产生selection,我试着改变样式,但原表已经改变,还有其它办法吗,有复制对象的语句吗
a_cer 2005-03-01
  • 打赏
  • 举报
回复
加一个临时的对象(复制操作时选中的对象 selection)会更合适

每次鼠标点击时,可以自己删除上次添加的对象,甚至这种方式能不用考虑是什么对象,都能绘制.
再度梦想 2005-03-01
  • 打赏
  • 举报
回复
fengyun925(深秋的落叶 卷起片片的凌乱)
明白你的意思,但第二种实在不实用,因为还有很多操作在里面,希望你能留个QQ行吗
letheanwater 2005-03-01
  • 打赏
  • 举报
回复
我不晓得具体的写法.
我明白你的意思和存在的问题.
你的意思是要通过颜色来突出你现在所选择的feature.
操作的前一半也没错。只是,你是永久的改变了feature的颜色。
有两种解决办法.
一种,是你通过mapbasic来调用mapinfo的选择功能,然后将选择的样式设置好.就可以了。
(推荐,我想应该这样做 )
第二种,就是你记录修改前的颜色,点击下一个的时候,把前一个变回来。

2,142

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧