ich hatte gerade die Idee für ein Projekt ein Musik-Keyboard grafisch darzustellen.
Code: Alles auswählen
For sound = 1 To 970 Step 10
StringGadget(800+(sound/10), 30+sound, 545, 9, 50, "", #PB_String_ReadOnly|#PB_String_BorderLess)
SetGadgetColor(800+(sound/10), #PB_Gadget_BackColor, $FFFFFF)
Next
StringGadget(800+98, 37, 545, 7, 25, "", #PB_String_ReadOnly|#PB_String_BorderLess)
SetGadgetColor(800+98, #PB_Gadget_BackColor, $000000)

Nun, ist natürlich in dieser Form kompletter Quatsch.
Das Keyboard soll 97 Tasten haben, weiß und schwarz insgesamt.
Ich rammel mit der obigen Version ja erstmal blind 97x weiße Tasten auf den Schirm, setze danach die schwarzen oben drauf.
Später sollen die Tasten auch hellgrau werden, wenn man z.B. sagt "markiere Taste 1 + 3 + 7" hellgrau.
Wie geht man da logisch vor?

Erst die 7 weißen Tasten zeichnen, KEINE fortlaufenden Nummern vergeben sondern eher sowas wie "1,3,5,6,8,10,12" das eben dann mal 8 für die Oktaven.
Danach dann die 5 schwarzen Tasten 2,4,7,9,11 und wieder 8-fach hintereinander drauf?
PS: Leider lassen sich ja nicht (mehr) normale Buttons einfärben, daher mein Workaround/Missbrauch mit dem Stringgadget .-) 2DDrawing wäre auch eine Möglichkeit und dann das Ergebnis in EINEN breiten Imagebutton. Aber mit obiger Methode ist es vielleicht sinnvoller, weil jede vorhandene Taste aka Stringgadget mit einer Nummer angesprochen/eingefärbt werden kann...