mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
49 lines
1.0 KiB
Nim
49 lines
1.0 KiB
Nim
discard """
|
|
output: '''
|
|
HandlePrintEvent: Output -> Handled print event
|
|
HandlePrintEvent2: Output -> printing for ME
|
|
HandlePrintEvent2: Output -> printing for ME
|
|
'''
|
|
"""
|
|
|
|
import events
|
|
|
|
type
|
|
PrintEventArgs = object of EventArgs
|
|
user*: string
|
|
|
|
proc handleprintevent*(e: EventArgs) =
|
|
write(stdout, "HandlePrintEvent: Output -> Handled print event\n")
|
|
|
|
proc handleprintevent2*(e: EventArgs) =
|
|
var args: PrintEventArgs = PrintEventArgs(e)
|
|
write(stdout, "HandlePrintEvent2: Output -> printing for " & args.user)
|
|
|
|
var ee = initEventEmitter()
|
|
|
|
var eventargs: PrintEventArgs
|
|
eventargs.user = "ME\n"
|
|
|
|
##method one test
|
|
|
|
ee.on("print", handleprintevent)
|
|
ee.on("print", handleprintevent2)
|
|
|
|
ee.emit("print", eventargs)
|
|
|
|
##method two test
|
|
|
|
type
|
|
SomeObject = object of RootObj
|
|
printEvent: EventHandler
|
|
|
|
var obj: SomeObject
|
|
obj.printEvent = initEventHandler("print")
|
|
obj.printEvent.addHandler(handleprintevent2)
|
|
|
|
ee.emit(obj.printEvent, eventargs)
|
|
|
|
obj.printEvent.removeHandler(handleprintevent2)
|
|
|
|
ee.emit(obj.printEvent, eventargs)
|