Counter for variables

BlitzPlus Forums/BlitzPlus Programming/Counter for variables

Hi,
I want to have a loop which works like this:
counter=1
total=10
While(counter<total)
label$+counter=CreateLabel("Text"+counter,10*counter,10,40,20,window)
button$+counter=CreateButton("Text"+counter,10*counter,69,20,20,window)
counter=counter+1
Wend

That code works in my head, but not in B+. So can someone explain to me how I would need to change that code so that it would create label1, label2, label3 etc. until it got up to 10.
Thank for any help!
Matt

It can't.

Apart from the fact that you can't do this, you should also not want this in the first place. That's exactly what arrays are for.

In addition, for-next is more common for these kinda loops.

dim button(9)
dim label(9)

for t=0 to 9
  button(t)=CreateButton("Text"+(t+1),10*t,10,40,20,window)
  label(t)=CreateButton("Text"+(t+1),10*t,69,20,20,window)
next

Note that it's usually the most 'clean' to use 0-based loops.

Ok, thank you. Didn't realise I could use an array.

One handy thing to remember is that a handle (a window, button, label, bank, timer, textarea, image etc. etc.) is stored as an INT value.

It means that you could store handles in a bank or array. It also means that you can 'view' this handle as an INT value, just try 'debuglog window' if you have a GUI window called 'window', you'll get some high number, which represents the memory address of the window. An INT value is 4 bytes in size.

Thanks for the advice :)