mapbasic如何编程使得在一张表中鼠标点击对象能打开另一张表?

作者&投稿:党忠 (若有异议请与网页底部的电邮联系)
mapinfo中mapbasic编程的问题~

获取table对象的记录条数,通过rowid
然后在mapbasic中执行for i=1 to n;next
就可以了

我给你发过去了,请查看

请参考如下代码,基本上就是search map object的一些东西。
这个是直接从MapBasic中copy出来的,得到的返回结果是point的坐标和对象的行id,你可以利用这个行id进行判断,然后继续接下来的操作。例如set map 命令之类。看你问问题的方式估计这些我都不用多说了。

Include "mapbasic.def"
Include "icons.def"
Declare Sub Main
Declare Sub tool_sub

Sub Main
Create ButtonPad "Searcher" As
ToolButton Calling tool_sub ID 1
Icon MI_ICON_ARROW
Cursor MI_CURSOR_ARROW
DrawMode DM_CUSTOM_POINT
HelpMsg "Click on a map location\nClick a location"
Separator
ToolButton Calling tool_sub ID 2
Icon MI_ICON_SEARCH_RECT
Cursor MI_CURSOR_FINGER_LEFT
DrawMode DM_CUSTOM_RECT
HelpMsg "Drag a rectangle in a map\nDrag a rectangle"
Width 3

Print "Searcher program now running."
Print "Choose a tool from the Searcher toolbar"
Print "and click on a map."
End Sub

Sub tool_sub
' This procedure is called whenever the user uses
' one of the custom buttons on the Searcher toolbar.
Dim x, y, x2, y2 As Float,
i, i_found, i_row_id, i_win_id As Integer,
s_table As Alias
i_win_id = FrontWindow()
If WindowInfo(i_win_id, WIN_INFO_TYPE) <> WIN_MAPPER Then
Note "This tool only works on Map windows."
Exit Sub
End If

' Determine the starting point where the user clicked.
x = CommandInfo(CMD_INFO_X)
y = CommandInfo(CMD_INFO_Y)

If CommandInfo(CMD_INFO_TOOLBTN) = 1 Then
' Then the user is using the point-mode tool.
' determine how many objects are at the chosen point.
i_found = SearchPoint(i_win_id, x, y)
Else
' The user is using the rectangle-mode tool.
' Determine what objects are within the rectangle.
x2 = CommandInfo(CMD_INFO_X2)
y2 = CommandInfo(CMD_INFO_y2)
i_found = SearchRect(i_win_id, x, y, x2, y2)
End If

If i_found = 0 Then
Beep ' No objects found where the user clicked.
Else
Print Chr$(12)
If CommandInfo(CMD_INFO_TOOLBTN) = 2 Then
Print "Rectangle: x1= " + x + ", y1= " + y
Print "x2= " + x2 + ", y2= " + y2
Else
Print "Point: x=" + x + ", y= " + y
End If

' Process the search results.
For i = 1 to i_found
' Get the name of the table containing a "hit".
s_table = SearchInfo(i, SEARCH_INFO_TABLE)

' Get the row ID number of the object that was a hit.
i_row_id = SearchInfo(i, SEARCH_INFO_ROW)

If Left$(s_table, 8) = "Cosmetic" Then
Print "Object in Cosmetic layer"
Else
' Fetch the row of the object the user clicked on.
Fetch rec i_row_id From s_table
s_table = s_table + ".col1"
Print s_table
End If
Next
End If
End Sub


美国高中数学等级问题,是代数2高还是几何高?
基础basic 荣誉honor(honor又分AB BC) AP 基础等级最低 AP最高(算大学学分)目前看来 你的几何是等级比较高一点的课了 现在我在IL上11年级 四门AP 一门基础 我的建议是 尽量上好的课 老师学生素质都不一样 不过你才9年级 不用着急 如果我误解你的问题了 你可以直接来问我 恩 ...

如何进行无线网络中继设置
1、通过连接无线网卡的笔记本上的无线信号扫描工具在家中扫描信号最强的地方,确定了某个地点信号最强后将中继设备放到这里效果最好。2、在DD-WRT管理界面中我们找到WIRELESS标签,然后选择basic settings基本设置,默认这里是设置为AP的,他提供了普通AP接入与信号发射接收等服务。由于我们要将此设备作为目的无...

关于条件从句的用法:appreciate [ap·pre·ci·ate || 'pri e t...
回答:eg;If you could help me,I would appreciate it very much.如果你能帮我,我将不胜感激。(通常用法)

思科AP AIR-LAP1242AG-C-K9如何设置
第一步:如图设置每个AP的IP地址、网关、DNS:第二步:设置Basic Wireless,模式B\/G\/N-Mixed 中继模式两端频道设置成一样(Wireless Channel一样)SSID1:两台名称设置成一样,其他默认配置 第三步:Security Mode 两台设备选择一样加密方式 密钥也设置成一样 第四步: AP Mode 主AP选择Access Point ...

配置无线路由,我在配置wireless basic里面配置了名字以及后面的密码什么...
把路由的默认管理员密码改了,另外,设置完后把路由器重启。 安全设置选,WPA-PSK\/WPA2-PSA

bssid是什么意思路由器设置里(bssid)
BSSID,全称为Basic Service Set Identifier,实际上是无线局域网(WLAN)中用于标识无线接入点(Access Point,AP)的独一无二的地址,它在通信中扮演着STA(Station,客户端设备)与AP之间的桥梁角色。<\/ 在IEEE 802.11-1999无线局域网标准中,BSS被赋予了明确的定义,它不仅仅是AP的一个标识,更是...

后缀名总共有哪些?主要有哪些?
bas Basic 语言源程序文件,可编译成可执行文件,目前使用Basic开发系统的是Visual Basic bat 批处理文件,在MS-DOS中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用 bbs 电子告示板系统文章信息文件 bfc Windows的公文包文件 bin 二进制文件,其用途依系统或应用而定 bmp Bitmap位图文件,这是...

BSSID与SSID区别
为了增强安全性,AP可以设置为不广播SSID,此时用户需要手动输入SSID以连接网络。简单来说,SSID就像一个网络的名称标签,只有相同SSID的设备才能在同一个网络中进行通信。BSSID,即 Basic Service Set Identifier,是站点的 MAC 地址在无线局域网(WLAN)中的具体表示。在基础架构模式的 BSS(Basic Service ...

谁能告诉我怎样用QBASIC编歌的秘诀?
Qbasic音乐编程之 play语句 2006-4-11 17:06:42 PLAY里有用的字母只有: T O L MS MN ML T代表速度,"t140"表示140拍\/分钟,但是如果你写"t120",那就和没写一样,因为t120是默认值 O代表音高,"o2"表示中音,"o3"表示高音,但是如果你写"o4",那就和没写一样,理由同上 ML表示演奏ML以后的音的100%长度...

原核生物有哪些dna修复系统及其功能
DNA糖基化酶可以切断这种碱基N-糖苷键,将其除去,形成的脱嘌呤或脱嘧啶部位通常称为"abasic"部位或AP位点。然后由AP内切核酸酶(AP endonucleases)切去含有AP位点的脱氧核糖-5-磷酸,在DNA聚合酶作用下重新放置一个正确的核苷酸,最后通过DNA连接酶将切口封闭(右图)。每种DNA糖基化酶通常对一种...

安化县19265245603: 在mapbasic中如何用代码实现画多边形! -
藏饶磷霉: 简单说,mapbasic中画多边形的命令是 Create Region[ Into { Window window_id | Variable var_name } ]num_polygons[ num_points1 ( x1, y1 ) ( x2 , y2 ) [ ... ] ][ num_points2 ( x1, y1 ) ( x2 , y2 ) [ ... ] ... ] window_id是窗口句柄,var_name是已经...

安化县19265245603: 用MAPBASIC编写代码实现以某个点为中心画圆 具体的留下QQ或手机号详谈 -
藏饶磷霉: s只是你定义的变量 下面需要你用 update tab set obj=s就OK了 但这样子比较麻烦,需要一行一行的FEACH NEXT 不如直接导入表 然后生成图 再来个update tab set obj=CreateCircle(经度 , 纬度 ,半径 ) 要快的多!

安化县19265245603: mapinfo中mapbasic编程的问题 -
藏饶磷霉: 获取table对象的记录条数,通过rowid 然后在mapbasic中执行for i=1 to n;next 就可以了

安化县19265245603: mapbasic程序编写 绝对高分,可以加分 -
藏饶磷霉: 这个不难.问题是你怎么画这个多边形,需要明确具体画法. 还有就是你需要掌握图形对象的相交关系,比如说,完全包含,相交,只包含质心等等. 另存成新图层都是比较容易的.

安化县19265245603: mapbasic 怎样生成图层,想生成一个道路层?
藏饶磷霉: 给你一段代码你看看吧. Include "mapbasic.def" Include "icons.def" Include "menu.def" Declare Sub main Declare Sub open_tables Declare Sub move_trucks Declare Sub end_program Global Use_Animation as Logical Sub Main Create...

安化县19265245603: matlab中矩阵计算,如何编程使得某矩阵中的元素均除以该元素行的最大数,得到新的矩阵? -
藏饶磷霉: %m为原矩阵 [r,l]=size(m); for i=1:r m_new(i,1:l)=m(i,:)/max(max(m(i,:))); end 你先试一下,不行再跟我说

安化县19265245603: mapbasic中如何生成.mbx文件 -
藏饶磷霉: 在工具栏的"Project"选项点"compile current file"就会自动生成.mbx文件了.

安化县19265245603: 用mapbasic编写程序改变mapinfo对象颜色 -
藏饶磷霉: 这个比较简单啊,重新设置feature的style属性就行了

安化县19265245603: mapx的二次开发用什么数据库 -
藏饶磷霉: 作为一个系统软件,MapInfo提供了可以将其所有的功能用程序来驱动的方法,内置标准的二次开发工具——MapBasic.MapBasic不仅与大众化的Basic语法相一致,具有基本一致的常用函数集(计算、字符串处理、文件I/O、DLL调用等),而且利用MapBasic语言所提供的函数、过程和语句命令可以完成许多有关图形对象管理的复杂操作和运算.它的真正优势在于对MapInfo中的Table及其图形对象的管理所提供的特性和强大功能.采用面向对象及事件驱动编程

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网