Hi!
Ich habe zwei Functions geproggt, um Buttons zu zeichnen:
DrawButton x,y,txt$,breite,hoehe,modus
x: gibt x-Position des Buttons an
y: gibt y-Position des Buttons an
txt: gibt beinhaltenden Text an
breite: gibt Breite des buttons an
hoehe: gibt Höhe des Buttons an
modus: Gibt Modus an (0 für offen, 1 für gesperrt)
DrawButton liefert einen Wert zurück, der 1 angibt, wenn der Button
gedrückt wird.
PressButton but_draw,but_press
but_draw: gibt den zurückgelieferten Wert von DrawButton an
but_press: gibt den zurückgelieferten Wert von PressButton an
PressButton liefert einen Wert zurück, der wieder als Parameter eingesetzt werden muss.
Und hier der Beispielcode:
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Graphics 140,70,32,2 SetBuffer BackBuffer() AppTitle "Buttons"
ClsColor 192,192,192 font = LoadFont("Tahoma",16,0,0,0) SetFont font
Repeat Cls but1 = DrawButton(20,10,"gesperrt",100,20,1) but2 = DrawButton(20,40,"Ende",100,20,0) but2_press = PressButton(but2,but2_press) If but2_press = True Then End Flip Forever
Function DrawButton(X,Y,txt$,breite,hohe,modus)
If MouseX() > X And MouseX() < X+breite And MouseY() > Y And MouseY() < Y+hohe And MouseDown(1) Then Color 192,192,192 Rect X,Y,breite,hohe If modus = 0 Then Color 0,0,0 Text X+(breite/2)+1,Y+(hohe/2)+1,txt,1,1 EndIf Color 110,110,110 Line X,Y,breite+X,Y Line X,Y,X,Y+hohe Color 230,230,230 Line X,Y+hohe,X+breite,Y+hohe Line X+breite,Y,X+breite,Y+hohe Color 150,150,150 Line X+1,Y+1,breite+X-1,Y+1 Line X+1,Y+1,X+1,Y+hohe-1 Color 210,210,210 Line X+1,Y+hohe-1,X+breite-1,Y+hohe-1 Line X+breite-1,Y+1,X+breite-1,Y+hohe-1 If modus = 0 Return 1 Else Color 150,150,150 Text X+(breite/2),Y+(hohe/2),txt,1,1 Color 230,230,230 Line X,Y,breite+X,Y Line X,Y,X,Y+hohe Color 110,110,110 Line X,Y+hohe,X+breite,Y+hohe Line X+breite,Y,X+breite,Y+hohe Color 210,210,210 Line X+1,Y+1,breite+X-1,Y+1 Line X+1,Y+1,X+1,Y+hohe-1 Color 150,150,150 Line X+1,Y+hohe-1,X+breite-1,Y+hohe-1 Line X+breite-1,Y+1,X+breite-1,Y+hohe-1 EndIf Else Color 192,192,192 Rect X,Y,breite,hohe Color 0,0,0 If modus = 1 Then Color 150,150,150 Text X+(breite/2),Y+(hohe/2),txt,1,1 Color 230,230,230 Line X,Y,breite+X,Y Line X,Y,X,Y+hohe Color 110,110,110 Line X,Y+hohe,X+breite,Y+hohe Line X+breite,Y,X+breite,Y+hohe Color 210,210,210 Line X+1,Y+1,breite+X-1,Y+1 Line X+1,Y+1,X+1,Y+hohe-1 Color 150,150,150 Line X+1,Y+hohe-1,X+breite-1,Y+hohe-1 Line X+breite-1,Y+1,X+breite-1,Y+hohe-1 EndIf
End Function
Function PressButton(but,press_but)
If but = 1 Then press_but = 2 EndIf If press_but = 2 Then If Not MouseDown(1) Then Return 1 EndIf If but = 0 Then press_but = 0 Return press_but
End Function
|