⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 自定义双击事件.mb

📁 很多的MAPINFO的常见问题下载后可以学习很有帮助
💻 MB
字号:
'注意:双击地图对象时,速度不能太快,否则达不到双击的效果
Include "mapbasic.def"
Include "menu.def"
Include "icons.def"

declare sub main
declare sub custom_tool_routine
declare sub SelChangedHandler
dim flag as Logical

global mouse_click_time as smallint
global x,y,x2,y2 as float
global search_rst_rowid,search_rst_rowid2 as integer
global search_rst_tabname,search_rst_tabname2 as string
global search_rst_i,search_rst_i2 as integer

sub main

Alter ButtonPad ID 1 
	Add  
 		Separator
		ToolButton 
 	      Icon  MI_CURSOR_ARROW
 	      HelpMsg "make a select without a message dialog" 
 	      Cursor  MI_CURSOR_ARROW
 	      DrawMode  DM_CUSTOM_POINT    
 	      Calling  custom_tool_routine 
 		Remove M_TOOLS_SELECTOR
 	Show 
	
	mouse_click_time=1
end sub

sub custom_tool_routine
	flag=FALSE

   	if mouse_click_time<2 then
  	    mouse_click_time=mouse_click_time+1

		x=commandinfo(CMD_INFO_X)
		y=commandinfo(CMD_INFO_y)

		search_rst_i=searchpoint(frontwindow(),x,y)
		if search_rst_i<>0 then
			search_rst_rowid=searchinfo(1,SEARCH_INFO_ROW)
			search_rst_tabname=searchinfo(1,SEARCH_INFO_TABLE)
			select * from search_rst_tabname where rowid = search_rst_rowid
		
			if flag=TRUE then
				Exit sub
			end if
	   	else 
			search_rst_rowid=0
			search_rst_tabname=""
			mouse_click_time=1
			run menu command 304  '此句必须有Pro55的环境
		end if
  	 else
		x2=commandinfo(CMD_INFO_X)
		y2=commandinfo(CMD_INFO_y)
		search_rst_i2=searchpoint(frontwindow(),x2,y2)

   		if search_rst_i2<>0 then
		search_rst_rowid2=searchinfo(1,SEARCH_INFO_ROW)
		search_rst_tabname2=searchinfo(1,SEARCH_INFO_TABLE)
		mouse_click_time=1

			if search_rst_rowid2=search_rst_rowid and search_rst_tabname2=search_rst_tabname then 'and x2=x and y2=y then
				'///////////////////////////   Add You Code Here    /////////////////////
				note "Hello you double clicked!"
				'////////////////////////////////////////////////////////////////////////
			else 
				select * from search_rst_tabname2 where rowid = search_rst_rowid2
	
				if flag=TRUE then
					Exit sub
				end if
			end if
		else
			search_rst_rowid2=0
			search_rst_tabname2=""
			mouse_click_time=1
			run menu command 304  '此句必须有Pro55的环境
	    end if
   end if
end sub

sub SelChangedHandler
	if CommandInfo(CMD_INFO_SELTYPE)=1 or CommandInfo(CMD_INFO_SELTYPE)=3 then
		flag=TRUE
	end if
end sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -