Basic text and math manipulation

This is probably a bit of a stupid question but how does someone increment the value of a label’s vie field?

It almost seems I have to use an intermediate variable because what I am seeing is slightly confusing. I’m coding this in a phone. Lol.

Label1.Value = integer(Label1.Value.ToInteger + 1).ToString

Is that the right way?

Is there a better way?

To add to that, if one part of that was a double/float, how to deal with that?

well … which version are you using ?

some of us old timers use the “old” not dot syntax which is more compact

Label1.Value = Str(Val(Label1.Value)+ 1)

it just wont autocomplete this stuff without a bit of … coaxing :slight_smile:

But yes the longer one you posted is required OR a temporary variable because of how Xojo handles return results from functions

   dim tmp as integer = Label1.Value.ToInteger + 1
   Label1.Value = tmp.ToString

I really hate that .text became .value - makes the code feel nonsensical :rage:

Old:

Label1.text = Str( Val(Label1.text) + 1 ) )

New:

Label1.value = Str( Val(Label1.value) + 1 ) )

It just confuses the difference between the text and the value of a text variable …

That’s true, and what is “Value” anyway? Most would argue (self included) it would at least be numeric. But when I tried something earlier, I found out it was a boolean, in which case I would have expected that to be Checked or similar.

Actually it is not a Boolean, it us a String:

https://docs.xojo.com/Label.Value

It is “the value” of the label aka its text.

Not to be confused with the “value” of a CheckBox:

https://docs.xojo.com/CheckBox.Value

While the text of a CheckBox is it’s “caption”.

But Label doesn’t have a “caption”, it has a “value”

Hooray!

I guess now you know why API 2 was not universally liked.

When I made that comment, it was actually in relation to a button. I was trying to play with the label value of a button and found that it’s Value was in fact a boolean:
https://docs.xojo.com/BevelButton.Value

aBevelButton.Value = newBooleanValue
or
BooleanValue = aBevelButton.Value 

Value depends on what kind of control it is
Its less clear IMHO

1 Like