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 :) |