[MaxGui] Event_Mousedown tut absolut nichts?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: [MaxGui] Event_Mousedown tut absolut nichts?

BeitragMi, Aug 08, 2012 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

Könnte mir bitte jemand helfen?
Ich habe folgendes Problem: Ich prüfe in einem MaxGui Programm auf das Event EVENT_MOUSEDOWN ab.
Wenn dieses Event auftritt, dann sollte eine Debugausgabe kommen. Aber nichts passiert.

Der Code sieht folgendermaßen aus:
BlitzMax: [AUSKLAPPEN]
Repeat
Select WaitEvent()
Case EVENT_MOUSEDOWN
DebugLog("Mouse down. EventData: " + EventData() + ". Eventsource: " + EventSource().ToString())
If((EventSource() = tlbTestResultList) And EventData() = 2) Then
PopupWindowMenu(twMainWindow, tmListBoxPopupMenu_Parent)
EndIf

Case 'Restliche Events....
End Select
Forever


An Gadgets habe ich: Ein Menü, einen Tabber mit jeweils einer Textarea, zwei Panels, eines mit einem TreeView und eines mit einer Listbox und zu guter letzt einen Button.
Eigentlich sollte es ja auch egal sein, wo geklickt wird, oder?

Lg, M0rgenstern

Holzchopf

Meisterpacker

BeitragMi, Aug 08, 2012 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht a priori nur in einem Canvas. Andere Gadgets musst du per SetGadgetSensitivity dafür einrichten.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Xeres

Moderator

BeitragMi, Aug 08, 2012 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Macht es einen Unterschied, ob die Konstruktion so aussieht?
BlitzMax: [AUSKLAPPEN]
Repeat
WaitEvent()
Select EventID()
Case EVENT_MOUSEDOWN
Ansonsten stelle sicher, dass du nicht noch wo anders EVENT_MOUSEDOWN versuchst ab zu fragen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

M0rgenstern

BeitragDo, Aug 09, 2012 9:09
Antworten mit Zitat
Benutzer-Profile anzeigen
@Xeres: Nein, das macht keinen Unterschied.

@Holzchopf: Vielen Dank. Das hat geholfen.

Ich habe jetzt aber zwei weitere Probleme:
1. Jedesmal wenn das Kontextmenü aufgeht, wird oben in der Menüleiste ein neues Menü angelegt. Also ich habe oben ein Menü, das heißt "Auswahl". Und dieses Menü stellt halt auch das Kontextmenü dar.
Wenn ich jetzt im Programm "PopupWindowMenu(twMainWindow, tmListBoxPopupMenu_Parent)" aufrufe, dann erscheint oben in der Menüleiste noch ein Menü "Auswahl" und bei jedem Rechtsklick nochmal...

2. Das Kontextmenü erscheint zwar, besitzt aber keinerlei Funktionalität. Zum einen wird gar kein Menüeintrag aktiviert (wenn man die maus drüber bewegt), zum anderen passiert auch gar nichts, wenn man auf irgendeinen Eintrag klickt (es sollte eine Debugausgabe kommen).

Der Code ist immernoch der gleiche.

Lg, M0rgenstern
 

jsp

BeitragDo, Aug 09, 2012 11:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wird denn dein PopupWindow erzeugt? Hört sich irgendwie an als wenn eine Zuweisung nicht richtig ist.
Dein root Eintrag sollte keinen Parent haben: PopUpMenu:TGadget = CreateMenu( "" , 0 , Null ) und dann da alles dranhängen...

Übrigends ist ein MOUSEDOWN über SetGadgSensitivity meistens nicht nötig, bei den wichtigsten Gadgets kann man per EVENT_GADGETMENU, wie hier bei deiner ListBox, abfragen ob und über welchen Eintrag die rechte Maustaste gedrückt wurde.
Logic Gui Professional a Gui Designer for MaxGui

M0rgenstern

BeitragDo, Aug 09, 2012 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank jsp.

Habe jetzt statt dem Fenster als Parent "null" als Parent benutzt. Jetzt funktioniert es auch mit dem Draufklicken.
Habe mich halt an das Tutorial gehalten: http://maxgui.simongeisseler.ch/T14-Menus.html
Jetzt weiß ichs für die Zukunft.

Vielen Dank.

Lg, M0rgenstern
 

jsp

BeitragDo, Aug 09, 2012 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe gerade mal kurz in das Tutorial geschaut und sieht eigentlich gut aus, aber es gab halt nach dem Erscheinen später noch Änderungen in MaxGUI.
Die Abfrage mit MOUSEDOWN ist in dem Tutorial nur so drin weil es auf ein aktives Panel reagieren soll. Da fehlt eigentlich die Erklärung mit dem EVENT_GADGETMENU.
Ausserdem benutzt das Tutorial noch Zahlen als Identifier des Menüeintrags, welches den Event abgesendet hat. Das ist überholt und hat meist Nachteile, besser man testet auf das Gadget selbst.
Logic Gui Professional a Gui Designer for MaxGui

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group