Data-Entry in a LiveCode form using the tab key

Peter Brigham MD pmbrig at
Tue Apr 19 08:14:09 EDT 2011

Solved one part of the problem -- there has to be a "wait with messages" after the mouseclick. Without this the mousecontrol always returns empty. I have no idea why.

I haven't yet figured out how to change the cursor to ensure the user knows s/he is still in the doFieldOrder mode -- it doesn't stick after the first click. If you will be actually using this technique then I can investigate further to find a fix for that.

The following works except for the cursor problem. Right clicking ensures that the mouseclick is sent even with unlocked fields.

on doFieldOrder
   answer "RIght-click on the fields in the order you want." \
         && "When done, press the commandkey." as sheet
      set the defaultcursor to hand
      -- why does this only work the first time??
      wait until (the mouseclick or the commandkey is down)
      if the commandkey is down then exit repeat
      wait 1 tick with messages
      put word 2 of the mousecontrol into mc
      put the long id of control mc into fID
      if not (fID begins with "field") then -- not a field
         answer "You must click on a field!"
         set the defaultcursor to hand -- try again
         next repeat
      end if
      select the text of fID -- user feedback
      wait 5
      select empty
      put word 3 of fID & cr after fldList -- short id
      set the defaultcursor to hand -- try again
   end repeat
   delete char -1 of fldList
   put fldList
   --  set the tabOrderList of this card to fldList
   set the defaultcursor to empty
   beep -- user feedback
end doFieldOrder

-- Peter

Peter M. Brigham
pmbrig at

On Apr 18, 2011, at 6:39 PM, Bob Sneidar wrote:

>> Also to test this I made a simple stack with this in the card script and a button that calls it:
>> on doFieldOrder
>>   put empty into theFieldList
>>   repeat
>>       if the commandkey is down then exit doFieldOrder
>>       wait until the mouseclick
>>       put the clickfield & cr after theFieldList
>>       wait 1 second
>>       select empty
>>   end repeat
>>   put theFieldList
>> end doFieldOrder
> WHOOPS! Should be: 
>> if the commandkey is down then exit REPEAT
> But theFieldList still returns empty, even after I put this into a mouseUp handler. Also, I noticed that the selection did not change. Apparently, mouseUp messages are not getting sent to the object I am clicking on because I am within a mouseUp message already I guess?? Doesn't sound right though. 
> Bob
> _______________________________________________
> use-livecode mailing list
> use-livecode at
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:

More information about the Use-livecode mailing list