Musik-Keyboard grafisch darstellen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Musik-Keyboard grafisch darstellen

Beitrag von Delle »

Hallo,

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

Bild

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? :roll:

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...
PB 6.21 | Win 11
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Musik-Keyboard grafisch darstellen

Beitrag von mk-soft »

Eher ein CanvasGadget für alle Tasten. Überlappende Gadgets sind keine gute Idee. Wird nicht unterstützt.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten