Hallo PureLust,
auch wenn ich selbst das feature bislang nicht gebraucht habe... ich hab es jetzt trotzdem eingebaut.
Es war dafür auch keine größere Änderung nötig.
Viel Erfolg damit (falls das Include jemand nutzt).
Ein smarter Eventhandler für Gadgets/Menuitems und Toolbar
Re: Ein smarter Eventhandler für Gadgets/Menuitems und Toolb
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Re: Ein smarter Eventhandler für Gadgets/Menuitems und Toolb
Ups, ich hatte den Eventhandler seinerzeit noch zweimal erweitert, aber vergessen diesen Thread hier anzupassen. Das wird hiermit nachgeholt. Sorry an alle die meinen Code benutzen und somit nicht in den Genuss der neuen Funktionalität gekommen sind.
Änderungen:
Alle evh_SetxyzEvent() Befehle enthalten nun zusätzlich den Parameter WindowNr.
Dieser ist für den neuen Befehl evh_RemoveEvent() nötig.
Den neuen Befehl evh_RemoveEvent(WindowNr, ItemNr, EventType) zugefügt.
Hiermit können während der Programmlaufzeit einzelne Eventzuordnungen wieder entfernt werden oder alle Eventzuordnungen eines Fensters auf einen Schlag entfernt werden.
Der Befehl evh_Init() muss nicht mehr aufgerufen werden. Der Handler initialisiert sich bei der ersten Eventzuordnung selbst.
Die evh_EventArgsstruct wurde um iEventTimer erweitert.
\iEvent
\iEventType
\iEventWindow
\iEventGadget
\iEventMenu
\iEventTimer
\iEventwParam
\iEventlParam
Hiermit wird einer Eventprozedur, die einem WindowTimer-Event zugeordnet wurde, die Nummer des Timers übermittelt. Näheres siehe Beispielquellcode im Downloadpaket.
Das Downloadpaket und der Infotext im ersten Beitrag wurde erweitert.
Gruß Kurzer
Änderungen:
Alle evh_SetxyzEvent() Befehle enthalten nun zusätzlich den Parameter WindowNr.
Dieser ist für den neuen Befehl evh_RemoveEvent() nötig.
Den neuen Befehl evh_RemoveEvent(WindowNr, ItemNr, EventType) zugefügt.
Hiermit können während der Programmlaufzeit einzelne Eventzuordnungen wieder entfernt werden oder alle Eventzuordnungen eines Fensters auf einen Schlag entfernt werden.
Der Befehl evh_Init() muss nicht mehr aufgerufen werden. Der Handler initialisiert sich bei der ersten Eventzuordnung selbst.
Die evh_EventArgsstruct wurde um iEventTimer erweitert.
\iEvent
\iEventType
\iEventWindow
\iEventGadget
\iEventMenu
\iEventTimer
\iEventwParam
\iEventlParam
Hiermit wird einer Eventprozedur, die einem WindowTimer-Event zugeordnet wurde, die Nummer des Timers übermittelt. Näheres siehe Beispielquellcode im Downloadpaket.
Das Downloadpaket und der Infotext im ersten Beitrag wurde erweitert.
Gruß Kurzer
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
- 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: Ein smarter Eventhandler für Gadgets/Menuitems und Toolb
Ich habe da gleich einen Verbesserungsvorschlag, weil in der jetzigen Form klappt es es nicht mit dem Nachbarn
Schon funktioniert es auch beim Nachbarn
Gruß
Thomas

Code: Alles auswählen
Structure evh_EventArgsstruct ; Parameter-Struktur die den Eventprozeduren mittels Pointer übergeben wird.
iEvent.i
iEventType.i
iEventWindow.i
iEventGadget.i
iEventMenu.i
iEventTimer.i
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
iEventwParam.i
iEventlParam.i
CompilerEndIf
EndStructure
Procedure.i evh_ProcessEvents(...)
...
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
evh_stEventArgs\iEventwParam = *stEvents\iEventwParam
evh_stEventArgs\iEventlParam = *stEvents\iEventlParam
CompilerEndIf
...
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
evh_stEventArgs\iEventwParam = EventwParam()
evh_stEventArgs\iEventlParam = EventlParam()
CompilerEndIf
...

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Ein smarter Eventhandler für Gadgets/Menuitems und Toolb
Hallo ts-soft,
danke für den Hinweis bzgl. der Windows-only Parameter.
Wäre es nicht schlauer nur die beiden Event[w/l]Param() Aufrufe per Compilerif zu kapseln und auf allen non-windows Plattformen die beiden Strukturfelder iEventwParam.i und iEventlParam.i mit 0 zu initialisieren statt sie komplett wegzulassen?
Kommt mir konsistenter vor und dann muss auch der erklärende Text nicht angepasst werden.
danke für den Hinweis bzgl. der Windows-only Parameter.
Wäre es nicht schlauer nur die beiden Event[w/l]Param() Aufrufe per Compilerif zu kapseln und auf allen non-windows Plattformen die beiden Strukturfelder iEventwParam.i und iEventlParam.i mit 0 zu initialisieren statt sie komplett wegzulassen?
Kommt mir konsistenter vor und dann muss auch der erklärende Text nicht angepasst werden.

"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
- 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: Ein smarter Eventhandler für Gadgets/Menuitems und Toolb
Was machen die Parameter denn noch für einen Sinn?
Musst Du entscheiden, so genau hab ich mir den Code nicht angeschaut, aber
Elemente die keinen Sinn machen, würde ich immer weglassen. Die Frage ist
ja auch, sollten diese beiden undokumentierten Funktionen überhaupt implementiert
werde? Ich hab die noch nie genutzt, Callbacks halte ich da für zweckmässiger, weil
die auch zuverlässiger funktionieren.
Mach wie Du denkst, ich würde das komplett entfernen.
Gruß
Thomas
Musst Du entscheiden, so genau hab ich mir den Code nicht angeschaut, aber
Elemente die keinen Sinn machen, würde ich immer weglassen. Die Frage ist
ja auch, sollten diese beiden undokumentierten Funktionen überhaupt implementiert
werde? Ich hab die noch nie genutzt, Callbacks halte ich da für zweckmässiger, weil
die auch zuverlässiger funktionieren.
Mach wie Du denkst, ich würde das komplett entfernen.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
