Buttons

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

TheProgrammer

Betreff: Buttons

BeitragSa, Apr 03, 2004 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
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]

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
aktuelles Projekt: The last day of human being

Maniac

BeitragSo, Apr 04, 2004 10:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Rect wäre imho schneller :>
User posted image
^^

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group