| Purpose |
|
Returns the name of the table selected among all the tables displayed in a mapper
|
| Author | Date of code (original) | Updated on | Date of page (original) | Updated on |
|
J.Paris
|
03Mar01
|
|
03Mar01
|
|
| Restrictions on use |
|
This module is distributed under the terms of the Lesser GNU General Public License. Restrictions on the use of this work in a commercial application or derivative work is described in the Lesser GNU General Public License page at: http://www.fsf.org/copyleft/lesser.html
|
| Description |
|
The program passes to the function the id of a mapper window. The user chooses a table among all those present in the mapper.
|
| External resources |
| Declare statement of sub_function. Include in your program. Copy/Paste if needed. |
|
declare function seltabinmap(byval winid as integer) as string
|
| Returned value(s) (function only) |
|
Name of selected table as a string
|
| Other required declare statement(s). Include in your program. Copy/Paste if needed. |
| If not already required by program: include "mapbasic.def" |
| MapBasic Code. Copy/Paste if needed.
|
|
function seltabinmap(byval winid as integer) as string ' Returns as a string the name of the table selected among those ' displayed in the mapper specified by its window id "winid" dim listtab as string dim nlay,i,indtab,iplace,jplace as smallint if str$(windowinfo(winid,win_info_type))<>"1"then ' following note could be commented out note "Window is not a mapper" exit sub end if seltabinmap="" nlay=mapperinfo(winid,mapper_info_layers) for i=1 to nlay listtab=listtab+layerinfo(winid,i,layer_info_name)+";" next dialog title "Tables in Mapper" control statictext title "Select a table then OK" position 13,5 control statictext title "or CANCEL" position 28,15 control listbox title from variable listtab value 1 into indtab control okbutton control cancelbutton if not commandinfo(cmd_info_dlg_ok) then exit sub end if jplace=1 for i=1 to indtab iplace=jplace+1 jplace=instr(iplace,listtab,";") next if indtab=1 then iplace=1 end if seltabinmap=mid$(listtab,iplace,jplace-iplace) end function |
| Availability for download |
| Tables.zip |
| Example |
|
include "mapbasic.def" dim atable as string dim iwin as integer if numwindows()=0 then note "No windows open" exit sub end if iwin=frontwindow() atable=seltabinmap(iwin) if atable ="" then print "No table was selected" else print atable end if |
| Comments |
| See also |