mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
49 lines
1.0 KiB
Nim
49 lines
1.0 KiB
Nim
discard """
|
|
file: "tevents.nim"
|
|
output: '''HandlePrintEvent: Output -> Handled print event
|
|
HandlePrintEvent2: Output -> printing for ME
|
|
HandlePrintEvent2: Output -> printing for ME'''
|
|
"""
|
|
|
|
import events
|
|
|
|
type
|
|
TPrintEventArgs = object of TEventArgs
|
|
user*: string
|
|
|
|
proc handleprintevent*(e: TEventArgs) =
|
|
write(stdout, "HandlePrintEvent: Output -> Handled print event\n")
|
|
|
|
proc handleprintevent2*(e: TEventArgs) =
|
|
var args: TPrintEventArgs = TPrintEventArgs(e)
|
|
write(stdout, "HandlePrintEvent2: Output -> printing for " & args.user)
|
|
|
|
var ee = initEventEmitter()
|
|
|
|
var eventargs: TPrintEventArgs
|
|
eventargs.user = "ME\n"
|
|
|
|
##method one test
|
|
|
|
ee.on("print", handleprintevent)
|
|
ee.on("print", handleprintevent2)
|
|
|
|
ee.emit("print", eventargs)
|
|
|
|
##method two test
|
|
|
|
type
|
|
TSomeObject = object of TObject
|
|
PrintEvent: TEventHandler
|
|
|
|
var obj: TSomeObject
|
|
obj.PrintEvent = initEventHandler("print")
|
|
obj.PrintEvent.addHandler(handleprintevent2)
|
|
|
|
ee.emit(obj.PrintEvent, eventargs)
|
|
|
|
obj.PrintEvent.removeHandler(handleprintevent2)
|
|
|
|
ee.emit(obj.PrintEvent, eventargs)
|
|
|