#WM_LBUTTONUP funktioniert nicht mehr mit PB 5.11

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: #WM_LBUTTONUP funktioniert nicht mehr mit PB 5.11

Beitrag von ts-soft »

Goto wurde offiziel als veraltet deklariert und wird nicht mehr supported, was heißt, das der Befehl jederzeit
verschwinden kann. Warum das nicht in der aktuellen Hilfe steht, weiß ich allerdings nicht, aber es wurde irgendwo offiziel
von Fred gesagt. Ist aber so lange her, da fang ich jetzt nicht an zu suchen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
captain_hesse
Beiträge: 138
Registriert: 17.05.2009 18:55
Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Wohnort: Saarland

Re: #WM_LBUTTONUP funktioniert nicht mehr mit PB 5.11

Beitrag von captain_hesse »

Ich möchte gerne zu diesem Thema etwas anmerken weil ich vor kurzem auch Probleme damit hatte.
#PB_Event_LeftClick ist nicht das Selbe wie #WM_LBUTTONDOWN während das Erste, erst dann reagiert wenn man die linke Maustaste wieder los lässt reagiert #WM_LBUTTONDOWN sofort nachdem die linke Maustaste gedrückt wurde was manchmal wünschenswert bzw. sogar nötig ist weil man sonst nicht mehr feststellen kann ob die linke Maustaste gerade gedrückt wird außer bei einem CanvasGadget was aber auch nicht immer ohne Probleme geht. Es wäre daher vieleicht ganz gut wenn es noch ein PB Event geben würde z.B. ( #PB_Event_LBUTTONDOWN ) oder man behält #WM_LBUTTONDOWN eben einfach bei. Nun aber nochmal zurück zur Frage, man kann also #PB_Event_LeftClick anstatt #WM_LBUTTONUP verwenden weil es eben erst dann reagiert wenn man den linken Mausknopf wieder loslässt.

viele Grüße Armin
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: #WM_LBUTTONUP funktioniert nicht mehr mit PB 5.11

Beitrag von STARGÅTE »

#WM_LBUTTONDOWN funktioniert doch auch noch und #WM_LBUTTONUP kann nicht mehr abgefragt werden, weil dieses Event durch ein echtes PB-Event ersetzt wird.
Und das UP ein CLICK ist, ist konsequent zum Canvas-Event.

Code: Alles auswählen

Enumeration
	#Window
	#Gadget
EndEnumeration


OpenWindow(#Window, 0, 0, 800, 600, "WindowTitle", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)


Repeat
	
	Select WaitWindowEvent()
			
		Case #PB_Event_CloseWindow
			End
			
		Case #WM_LBUTTONDOWN
			Debug "Down"
			
		Case #PB_Event_LeftClick
			Debug "Up"
			
	EndSelect
	
ForEver
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: #WM_LBUTTONUP funktioniert nicht mehr mit PB 5.11

Beitrag von ts-soft »

Also nochmal :wink:
Offiziel werden nur PB-Events, also nur solche die mit #PB_Event anfangen, im EventLoop von PB unterstützt, alle anderen
können funktionieren, aber man sollte sich nicht darauf verlassen, das dies so bleibt. Windows-Messages #WM_ werden
nur im Callback unterstützt. Wer die benötigt, sollte also ein entsprechendes Callback nutzen.
Ähnliches gilt auch für Gadgets. Wer Gadgetsfunktionen per API zur Verfügung stellt, sollte seine Controls auch per
API erzeugen. Es wird zwar meist mit Gadgets funktionieren, aber dies wird nicht offiziel zugesagt und kann sich jeder-
zeit ändern, auch wenn es sehr unwahrscheinlich ist.

Es ist also vollkommen sinnlos, hier zu melden welche #WM_... Messages im PB-EventLoop nicht ankommen, welche
SendMessage_(...) bei Gadgets nicht funktionieren usw., weil dies nicht garantiert wird.

Natürlich kann man sich im entsprechendem Forum wünschen, das dieses oder jenes Event nativ hinzugefügt wird, und es
wurden ja inzwischen eine Menge hinzugefügt. Aber der "verlust" von #WM_ messages im EventLoop, braucht eigentlich
gar nicht erwähnt werden. Wer das bisher so genutzt hat, sollte sich überlegen, ob er diese nicht besser ändert.

PS: zum CanvasGadget, erst Down, dann Click und dann erst Up! Sind also 3 Events die gefeuert werden, ob die nun
Real existieren, sei mal dahingestellt, in dieser Reihenfolge (unter Linux erst seit 5.11, dort kam vorher erst Up und
dann Click) kommen sie an.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten