Mobile text input mystery

Graham Samuel livfoss at mac.com
Wed Apr 22 13:38:27 EDT 2020


 Reading your response, Mark, I didn't feel so bad, since the LC Dictionary says for example about mobileControlSet

 syntax: mobileControlSet idOrName, PropertyName, value

and later explains

 idOrName  - the id or name of the control

So I therefore saw the two ways of referring to the control as apparently interchangeable.

However, I changed my openCard handler according to your suggestion and nothing at all changed. I think there must be some other factor, but as usual I just can’t see it.

Just to labour the point, here is my actual handler with the original names in place. The answer call works as expected:

on opencard -- we dynamically create a field for the user to key in the radius

global sinputID -- this is all from the LC lesson

   if environment() = "mobile" then

      mobileControlCreate "input", "FRadiusText" -- so the user can type in

      put the result into sinputID

      answer "opening text field for radius input. ID created is:" && sinputID && "Name is:" && "FRadiusText"

     mobileControlSet "FRadiusText", "rect", "114,135,163,158" -- this is where the original rect was

      mobileControlSet "FRadiusText", "visible", "true"

      mobileControlSet "FRadiusText", "opaque", "true"

end if

end opencard


Still puzzled

Graham

> On 22 Apr 2020, at 18:34, Mark Waddingham via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> On 2020-04-22 17:00, Graham Samuel via use-livecode wrote:
>> As usual, the problem will be my fault, but I can’t get a mobile input
>> field to appear on a card. I’m debugging it at present, which explains
>> the answer statement:
>>    on opencard -- we dynamically create a field for the user to key in
>>     global sinputID -- this is all from the LC lesson. It’s a global
>> because I need to refer to it in a button later
>>     if environment() = "mobile" then
>>         mobileControlCreate "input", "FMyText" -- so the user can type in
>>         put the result into sinputID — the Dictionary doesn’t mention
>> ‘the result’ but it does seem to be right
>>         answer "opening text field for input. ID created is:" && sinputID
>>        mobileControlSet sinputID, "rect", “114,135,163,158” — this is
>> a real location on the card
>>        mobileControlSet sinputID, "visible", "true"
>>        mobileControlSet sinputID, "opaque", "true"
>>  end if
>> end opencard
> 
> I'm pretty sure if you give your mobileControl a name (FMyText) in this case, then that is the only way you can refer to it. You can only use 'the result' of the Create function *if* you didn't give it a name.
> 
> So you need to do either:
> 
>  mobileControlCreate "input", "FMyText"
>  mobileControlSet "FMyText", ...
> 
> OR
> 
>  mobileControlCreate "input"
>  put the result into sinputID
>  mobileControlSet sinputID, ...
> 
> Warmest Regards,
> 
> Mark.
> 
> -- 
> Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
> LiveCode: Everyone can create apps
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode




More information about the use-livecode mailing list