Hmm, You know I said it worked - oops, it didn't.

I needed the rec number of the base table so that I could make the changes to 
that particular record later on, I realize now that I have changed the first 
record in the base table by accident as the selection.rowid = 1.

Back to the drawing board...

Nicki

-----Original Message-----
From: Peter Horsbøll Møller [mailto:[EMAIL PROTECTED] 
Sent: 30 August 2006 20:13
To: Nicki Cozens; [email protected]
Subject: RE: [MI-L] Help with commandinfo(CMD_INFO_ROWID) after a dialog 
iscalled please

Nicki,
 
If you read the Help file closely, you'll see that CommandInfo(CMD_INFO_ROWID) 
is supposed to be used within the SelChangedHandler.
So I guess MapInfo expects a change in the selection just to have happened. 
Showing a dialog or in any other way mingling with the user interface might 
move the change in the selection away from focus and so MapInfo is no longer 
able to "use" the CMD_INFO_ROWID attribute.
 
The question is why do you need the rowid from the base table ?
 
You have the selection and can easily update the object thru this table:
 
Fetch First From Selection
Do Until EOT(Selection)
    oPolygon = Selection.OBJ
    nRowID    = Selection.ROWID
 
    '...do what needs to be done
 
    Update Selection
        Set OBJ        = oPolygon
        Where ROWID    = nRowID
 
    Fetch Next From Selection
Loop
Peter Horsbøll Møller 
GIS Developer, MTM 
Geographical Information & IT 
  
COWI A/S 
Odensevej 95 
DK-5260 Odense S. 
Denmark 
  
Tel     +45 6311 4900 
Direct  +45 6311 4908 
Mob     +45 5156 1045 
Fax     +45 6311 4949 
E-mail  [EMAIL PROTECTED] 
http://www.cowi.dk/gis 
"For enden af regnbuen..." - hvordan kommer man dertil og er det overhovedet 
muligt?
Læs mere om årets MapInfo konference på www.cowi.dk/mapinfokonference 
 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Nicki Cozens
Sent: Wednesday, August 30, 2006 4:21 PM
To: [email protected]
Subject: [MI-L] Help with commandinfo(CMD_INFO_ROWID) after a dialog iscalled 
please
 
Dear Listers
 
I have a number of procedures that are called from a menu bar.  One of the menu 
items allows the user to change the snapping tolerance of the node snapping 
tool I have created.  If the user selects a polygon and then runs the main node 
snapping tool it works ok (if a little slow - see previous postings!), however, 
if the user previously selects a polygon, then chooses to change the snapping 
tolerance via the menu, an error occurs back in the main node snapping routine 
when a CommandInfo is issued to find out the row id of the selected polygon.  
 
Can anyone shed any light on what is happening please - I think it is something 
to do with the OKbutton on the dialog changing the selection?  
 
Is there an easy way how I can get the CommandInfo(cmd_info_rowid) to find the 
row id of the selected polygon after the ok button has been clicked?
 
Here are the main snippits of code:
 
#######################################################################
Sub snaptolerance       'runs when user selects change tol. from menu
Dialog 
      Title "Snapping Tolerance" 
      Control StaticText 
            Title "Please enter new tolerance (in m)" 
            'Position 10, 10
      Control EditText
            Value 0.25
            Into gf_snaptolerance
      Control OKbutton
      Control CancelButton
End Sub
###########################################################################
Sub SnapNodes                       'runs when user chooses snap from menu
 
'... the variable declarations go in here and some initializing
 
If SelectionInfo(SEL_INFO_NROWS) > 0 Then
      aSelName = SelectionInfo(SEL_INFO_SELNAME)            'eg "Query1"      
gs_theselTable = SelectionInfo(SEL_INFO_TABLENAME)
      Note (gs_theseltable)   'just to check - this is showing table name
Else
      Note("The selection is now 0")                        'just to check
            'This is not showing so there are rows selected
End If
gi_myrowid = commandInfo(cmd_info_rowid)   'This is where the error occurs
 
###########################################################
 
The error that is returned is:-
CommandInfo: argument 2 out of range, corresponding to the last line shown above
 
Many thanks
Nicki Cozens
 
Nicki Cozens 
Data Management Officer 
Highways Development Control
Leicestershire County Council
County Hall
Glenfield
Leicester
LE3 8RA 
 
 
 
_______________________________________________________________________
Leicestershire County Council - rated a 'four-star' council by the Audit 
Commission
_______________________________________________________________________
 
 
This e-mail and any files transmitted with it are confidential. If you are not 
the intended recipient, any reading, printing, storage, disclosure, copying or 
any other action taken in respect of this e-mail is prohibited and may be 
unlawful. If you are not the intended recipient, please notify the sender 
immediately by using the reply function and then permanently delete what you 
have received.
 
Incoming and outgoing e-mail messages are routinely monitored for compliance 
with Leicestershire County Council's policy on the use of electronic 
communications. The contents of e-mails may have to be disclosed to a request 
under the Data Protection Act 1998 and the Freedom of Information Act 2000.
 
The views expressed by the author may not necessarily reflect the views or 
policies of the Leicestershire County Council.
 
Attachments to e-mail messages may contain viruses that may damage your system. 
Whilst Leicestershire County Council has taken every reasonable precaution to 
minimise this risk, we cannot accept any liability for any damage which you 
sustain as a result of these factors. You are advised to carry out your own 
virus checks before opening any attachment.
 
 

_______________________________________________
MapInfo-L mailing list
[email protected]
http://www.directionsmag.com/mailman/listinfo/mapinfo-l

Reply via email to