Simulation von MouseUp() möglich?
Übersicht

SkulkBetreff: Simulation von MouseUp() möglich? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey Ho,
ich schreibe gerade an einer universellen Button-Klasse Dieser Button soll neben einer highlightfarbe auch eine "mousedown" farbe bekommen d.h. in der draw-routine prüfe ich ob mousedown(1) = true ist, und male den button heller. jetzt hätte ich aber gerne, dass beim loslassen der mousetaste der button quasi "auslöst" und ich ein event meiner wahl abfeuern kann mein konkretes problem ist also, wie prüfe ich mit blitzmax, ob gerade eine mousetaste losgelassen wurde. habt ihr da einen tipp für mich? ich habs schon wievfolgt versucht: Code: [AUSKLAPPEN] If MouseDown(1) Then
Self.Status = "clicked End If If Not MouseDown(1) And Self.Status = "clicked" then end aber es haut net hin... Ich brauch hilfe, ich steh aufm schlauch ![]() euer skulk |
||
War doesn't determine who's right,
war determines who's left... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Am einfachsten machst du das was du versuchst zu faken: Du programmierst direkt mit den Events.
Sprich mit waitevent, eventid und EVENT_MOUSEDOWN / MOUSEUP etc |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Skulk |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
soviel zum schlauch auf dem ich stand ![]() merci! |
||
War doesn't determine who's right,
war determines who's left... |
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
weiss nicht ob ich dein problem richtig verstanden habe , aber so hab ich das bis jetzt immer gemacht. Code: [AUSKLAPPEN] Graphics 320,240
Local down :Int = 0 Local up :Int = 0 Local text :String While Not KeyHit(key_Escape) Cls If MouseDown(1) Then down = 1 up = 0 text = "MOUSEDOWN" ElseIf Not MouseDown(1) And down up = 1 down = 0 text = "MOUSEUP" EndIf DrawText text , 10 , 10 Flip Wend End Vieleicht hilft es ja: mfg Edit: Zitat: Sprich mit waitevent, eventid und EVENT_MOUSEDOWN / MOUSEUP etc
Ops, so ist ja um einiges kompfortabler... geht das auch ohne maxGui? |
||
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das mit den events wär dann eigentlich auch nur für Applikationen gut. | ||
Skulk |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja genau das ist das was ich meinte. sowas in der art hatte ich jedoch probiert und es hatte net geklappt. aber ich probiers nochmal. wenn du sagst bei dir klappts muss es ja gehn ![]() also events (ich hab heut nacht nochmal drüber nachgedacht) ist nicht so günstig, da es ja eine klasse ist, die ich immer wieder instanziere. d.h. ein Waitevent darf nicht vorkommen da ich keinem sein programm in warteschleife setzen will ohne dass er es auch will (Beispiel: menübuttons auf bewegtem hintergrund) wenn müsste ich kommplett auf events und timer umstellen und das will ich net deine lösung, rone, wäre mir eigentlich am liebsten.... ich versuchs einfahc nochmal |
||
War doesn't determine who's right,
war determines who's left... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Meinst du?
Brauchst kein Waitevent und so ... MouseDown keydown etc arbeitet auch mit Events. Brauchst eigentlich nur EventHooks und schon geht das. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Skulk |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eventhooks?
hast du ein tutorial für mich parat das ich dazu mal durchrackern könnte? nachtrag: ah etz klappts. ich hatte nen logikfehler drin. Ich hatte folgendes stehen: Code: [AUSKLAPPEN] If MouseX() >= Self.x And MouseX() <= Self.x + Self.width And MouseY() >= Self.y And MouseY() <= Self.y + Self.height Then
Self.Status = 1 ' Status auf 1 = Hover setzen If MouseDown(1) Then Self.Status = 2 ' Es Wurde geklickt. ElseIf Not MouseDown(1) And Self.Status = 2 Then ' Button ist gedrückt und Maus nicht mehr losgelassen! End End If Else Self.Status = 0 End If Womit beim nächsten event der Status auf 1 zurückgesetzt wurde und die "MouseUp" bedingung niemals true wurde. leicht abgeänder klappts aber: Code: [AUSKLAPPEN] If MouseX() >= Self.x And MouseX() <= Self.x + Self.width And MouseY() >= Self.y And MouseY() <= Self.y + Self.height Then
If MouseDown(1) Then Self.Status = 2 ' Es Wurde geklickt. ElseIf Not MouseDown(1) And Self.Status = 2 Then ' Button ist gedrückt und Maus nicht mehr losgelassen! End ElseIf Not MouseDown(1) then Self.Status = 1 ' Status auf 1 = Hover setzen End If Else Self.Status = 0 End If ich glaube vorerst kann ich damit ganz gut fahren |
||
War doesn't determine who's right,
war determines who's left... |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Für EventHooks sind Assassari's MaxGUI und Input - Event Tutorials im englischen Board sehr zu empfehlen. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Skulk |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
alles klar die zieh ich mir mal rein
dank dir, dreamora |
||
War doesn't determine who's right,
war determines who's left... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group