Probleme mit GetMouse/MouseHit

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

maximilian

Betreff: Probleme mit GetMouse/MouseHit

BeitragSo, Apr 11, 2004 13:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

ich bin gerade am verzeifeln weil ich GetMouse/MouseHit nicht verstehe. Ich programmiere grade an einer GUI und dies ist meine Checkbox-Funktion:

Function DrawCheckbox (Checkbox.Checkbox, Window.Window)

Code: [AUSKLAPPEN]
 
;--------Checkbox de- und aktivieren
 MouseClick = MouseHit(1)
 If MouseClick = True Then
   If MouseX() > Window\x + Checkbox\x And MouseX() < Window\x + Checkbox\x + 10 Then
    If MouseY() > Window\y + Checkbox\y And MouseY() < Window\y +     Checkbox\y + 16 Then

      If Checkbox\Status = True Then
        Checkbox\Status = False
      Else
        Checkbox\Status = True
      End If

    End If
   End If
 End If

 ;--------Checkbox zeichnen
 If Checkbox\Status = True Then
  DrawImage CheckboxActiveGFX, Window\x + Checkbox\x, Window\y + Checkbox\y
 Else
  DrawImage CheckboxGFX, Window\x + Checkbox\x, Window\y + Checkbox\y
 End If

End Function



Es reagiert immer nur die erste Checkbox, und ich weiß nicht warum. Wenn ich MouseHit(1) durch MouseDown(1) ersetzte, reagieren sie beide, aber "aktivierte Checkbox" und "deaktivierte Checkbox" werden andauernd hintereinander gezeichnet, logischerweise.
Kann mir da jemand helfen?

Grüße,
LordChaos
 

Ensign Joe

BeitragSo, Apr 11, 2004 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm... Probiers mal so:

Code: [AUSKLAPPEN]
;--------Checkbox de- und aktivieren
 MouseClick = MouseHit(1)
 If MouseClick = True Then
   If MouseX() > Window\x + Checkbox\x And MouseX() < Window\x + Checkbox\x + 10 and MouseY() > Window\y + Checkbox\y And MouseY() < Window\y + Checkbox\y + 16 Then

      If Checkbox\Status = True Then
        Checkbox\Status = False
      Else
        Checkbox\Status = True
      End If

   End If
 End If

 ;--------Checkbox zeichnen
 If Checkbox\Status = True Then
  DrawImage CheckboxActiveGFX, Window\x + Checkbox\x, Window\y + Checkbox\y
 Else
  DrawImage CheckboxGFX, Window\x + Checkbox\x, Window\y + Checkbox\y
 End If

End Function


Habs jetzt net getestet, müsste aber funzen

maximilian

BeitragSo, Apr 11, 2004 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Funzt leider net. Sad Aber was hast du daran, abgesehen von dem "and" überhaupt verändert?
Eigentlich liegt das Problem ja bei MouseHit(1).

Grüße,
LordChaos
 

David

BeitragSo, Apr 11, 2004 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Dann ersetz mal das MouseHit( 1 ) durch MouseDown( 1 ).
Bei mir klappte es einwandfrei.

grüße

maximilian

BeitragSo, Apr 11, 2004 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist, das dann ja andauernd hintereinander beide Bilder (aktiviert und nicht aktiviert) gezeichnet werden. Das lässt sich sicher irgendwie auch uinterdürcken, aber es gab ja auch andere die MouseHit(1) für ihre GUIs benutzt haben. Sad

Grüße,
LordChaos
 

Edlothiol

BeitragSo, Apr 11, 2004 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst einmal jedes Frame eine globale Variable auf MouseHit(1) setzen. Wenn du das nämlich einmal aufgerufen hast, wird MouseHit auf jeden Fall auf False gesetzt. Mehrmal aufrufen bringt also nichts.

maximilian

BeitragMo, Apr 12, 2004 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Super! Danke. Ich musste zwar erst etwas grübeln, was du genau meintest, aber jetzt funktioniert es einwandfrei. Smile

Grüße,
LordChaos

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group