ich hab ein Problem mit meiner Checkbox

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Pascha

Betreff: ich hab ein Problem mit meiner Checkbox

BeitragSa, Sep 01, 2007 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Ich hab mit Function ne Checkbox programmiert.
Nur leider kann Ich die Checkbox nur ein mal im Hauptprogramm erstellen
Warum???????

Hier der Codevom Hauptprogramm:
Code: [AUSKLAPPEN]
 
Graphics 600,200,16,2
SetBuffer FrontBuffer()

;screen
screen=LoadImage ("screen.jpg")



While Not KeyHit(1)
   ;screen
   DrawBlock screen,-380,-270
   box1=box(10,180,1,"test1",20)
   box2=box(10,160,2,"test2",20)

Wend

End


und jetzt von der function:
Code: [AUSKLAPPEN]

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>checkbox<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;----------------------------------------------------------------------------------------------

Function box (x,y,id,info$="",gr)   

   ;Schrift
   Schrift_A=LoadFont("Informal Roman",gr,True,False,False)

   ;text
   SetFont Schrift_A
   Color 128,40,0
   Text x+20,y, info$,False,False
         
   ;checkbox_an
   box_an=LoadImage("gfx\check_an.bmp")
   MaskImage box_an ,255,0,255

   ;checkbox_aus
   box_aus=LoadImage("gfx\check_aus.bmp")
   MaskImage box_aus ,255,0,255

   
Repeat


   If id = 2
      ueber=0
      DrawImage box_aus ,x,y
      
      If MouseHit(1)
         If MouseX() >x
            If MouseY() >y
               If MouseX() < x + 16
                  If MouseY() < y + 16
                     id=1
                  EndIf
               EndIf
            EndIf
         EndIf
      EndIf
   ElseIf id = 1
      DrawImage box_an  ,x,y
      
      If MouseHit(1)
         If MouseX() >x
            If MouseY() >y
               If MouseX() < x + 16
                  If MouseY() < y + 16
                     id=2
                  EndIf
               EndIf
            EndIf
         EndIf
      EndIf
   EndIf
   
Forever
   
End Function


bin schon mal dankbar für jede Hilfe.
 

Schnuff

BeitragSa, Sep 01, 2007 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
erstmal fällt mir auf, das du mousehit mehrmals abfragst, es wird aber beim abfragen "geleert"
dann könntest du ja mal erklären, in wie fern du das nur im hauptprog erstellen kannst (giebts nen fehler)?
dann währe noch anzumerken, das eine repeat - foreverschleife in einer funktion mehr als merkwürdig ist...

zu deinem prob: das programm bleibt in der repeat-vorever schleife hängen, da du dort kein exit oder return eingebaut hast (oder sehe ich das falsch)
Programmers dont die. They gosub without return...
 

Pascha

BeitragSo, Sep 02, 2007 1:34
Antworten mit Zitat
Benutzer-Profile anzeigen
@Schnuff danke erstmal das du dich gemeldet hast.


Also zu meinem Problem: Ich hab die repeat-schleife rausgenommen und jetzt werden auch beide checkboxen angezeigt, nur leider flakern die jetzt und ich kann sie nicht mehr an-klicken bzw. aus-klicken

weshalb?

Schnittlauch

Unkraut

BeitragSo, Sep 02, 2007 3:02
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Zeiche auf den BackBuffer mithilfe von "SetBuffer BackBuffer()"
2. Setze "Cls" am anfang und "Flip" ans ende deiner Schleife

Das Sollte Theoretisch das Flackern beheben.

MFG
Schnittlauch
Ich wars nicht.

ToeB

BeitragSo, Sep 02, 2007 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function box(x,y,width,height,box_var)
If RectsOverlap(x,y,width,height,MouseX(),MouseY(),1,1) then
If MouseHit(1) then
box_var = 1 - box_var
EndIf
EndIf
Color 255,0,0
Rect x,y,width,height,box_var
Color 255,255,255
Rect x,y,width,height,0
Return box_var
End Function

In der Haubtschleife dann : Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()

Repeat
box1 = box(100,100,20,20,box1)
box2 = box(200,200,100,50,box2)
Text 1,1,"CheckBox 1 : "+box1
Text 1,20,"CheckBox 2 : "+box2
Flip
Cls
Until KeyHit(1)
End


WICHTIG (!!) :
Du must die Variable, die den Wert (0 oder 1) oder Checkbox übernehmen soll als Parameter in der Function angeben !!!

mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

Pascha

BeitragSa, Sep 15, 2007 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry das Ich so lange nicht zurück geschrieben habe(Ich war beruflich unterwegs).

Wollte nur sagen das ich das Problem jetzt gelösst habe
und somit könnte man den Thread schliessen.

Danke an alle die mir hier geholfen haben.
Ich meld mich wieder wenn ich nicht weiter komme.

mfg Pascha

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group