Problem mit Events Mousedown in Kombi. mit KeyRepeat
Übersicht

![]() |
BobBetreff: Problem mit Events Mousedown in Kombi. mit KeyRepeat |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tach zusammen,
ich versuche mich grade an einem OOP Tileeditor mit MAXGUI. Ich habe dieverse Types erstellt in deren Feldern zum Teil GadGets abgelegt werden. In den Typen implementiere ich ein Hook Funktion zur Auswertung der entsprechenden Events. Da Ich festgestellt hbe das dass Event EVENT_MOUSEDOWN nur einmal beim Mausdown ausgelöst wird, habe ich in die entsprechenden Typen weiterhin ein Feld in dem gespeichert wird ob die Taste noch gedrückt wird. Soweit kalppt alles ganz gut. Jetzt ist es weiterhin so das ich nicht nur auf Mousedown prüfen möchte sondern auch ob zusätzlich die Tasten SHIFT, ALT oder CONTROL gedrückt werden. Dazu habe ich herausgefunden das diese im MOD Feld des Types Event abgefragt werden können. Jetzt das eigentliche Problem. Wenn ich die ALT Taste gedrückt halte und die Maustaste ist auch gedrückt weis ich dies zwar aber meine Methode die dann angewand werden soll greift Teilweise ins Leere weil zusätzlich die ganze Zeit über auch noch das EVENT KEYREPEAT ausgelöst wird und dann die Felder X, Y des Current Event's 0,0 sind. Sprich dase Keyrepeat klaut mir die Mauskoordinaten. Sorry wenn ich das so umfangreich schildere aber ich bin in MaxGui und dem Event System noch ein totaler Anfänger. Damit man nachvoll ziehen kann was gemeint ist hier ein Testcode. Code: [AUSKLAPPEN] Strict
'Maustaste Druecken 'Maustaste festahlten 'Maus Bewegen 'zusaetzlich SHIFT , ALT oder CTRL druecken Local win:TGadget = CreateWindow("Mausdown",40,40,320,240) Local pan:TGadget = CreatePanel(0,0,ClientWidth(win),ClientHeight(win),win,PANEL_ACTIVE) local lab:TGadget = CreateLabel("Mouse X Y",10,10,150,20,Pan,LABEL_SUNKENFRAME) SetGadgetLayout pan,1,1,1,1 Local MD:Int While True WaitEvent Select EventID() Case EVENT_MOUSEDOWN MD = True Case EVENT_MOUSEUP MD = FAlse Case EVENT_WINDOWCLOSE End End Select IF md THEN SetGadgetText(Lab, CurrentEvent.x+ " " +CurrentEvent.y) endif Print CurrentEvent.ToString() Wend Wie also bekomme ich bei gedrückter, gehaltener Maustaste+ gedrücktem gehaltenem Modifikator Korrekte X,Y Koordinaten? Danke für eure Bemühungen. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mittels EVENT_MOUSEMOVE
Mousedown etc sind nicht für die Position konzipiert. Einfach globale MX, MY speicher die in mousemove aktualisiert werden und alle probleme sind gelöst ![]() PS: Bei alt ist das problem nix mit keyrepeat sondern alt aktiviert das menü, deswegen tickt es aus. kein alt keine probs |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Bob |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Dreamora,
Klappt gut.Danke. Viele Probleme nun vom Hals. Da war ich schon so weit das MouseDown zu speichern aber auf den Trick die Koordinaten auch aufzunehmen bin ich nicht gekommen. Haztte mittlerweile ne riesen IF..AND.. OR.. Bedingung gebastelt um alles möglich auszuschliessen. Ich Hacke immer alle Bäume ab wenn sie mir den Blick auf den Wald versperren ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group