Cobra/Keywords/ignore
< Cobra
Ignore
правитьignore отключает обработку возникающего события.
Обратный Listen
Синтаксис
править
ignore <event>, <method-reference>
Пример
править
use System.Windows.Forms
...
button = Button(parent=p, autoSize=true, text='One', tag=1)
# connect event and handling code
listen button.click, ref .clickHandler
...
# disconnect event and its handling code
ignore button.click, ref .clickHandler
...
def clickHandler(source as Object, args as EventArgs) # doClick
pass
Пример использования сигнатуры и обработку событий и удобный метод управления событиями.
# delegate for ActionEvent <eventName>EventHandler
sig ActionEventHandler(sender as Object, args as EventArgs)
class Generator
# event dcl for event called Action
# event <eventName>Event as <sigName> (<eventName>EventHandler)
event actionEvent as ActionEventHandler
# (protected) method to raise/fire the event for this class
# {on,fire}<eventName>Event
def _onActionEvent(args as EventArgs) # fireActionEvent
raise .actionEvent, args
class Listener
# the event handler method do<eventName>
def doAction(source as Object, args as EventArgs)
print 'Event received from [source]'
...
def driver
g = Generator()
l = Listener()
#tie the generator event to the Listener method
listen g.actionEvent, ref l.doAction
...
#untie the event and listener
ignore g.actionEvent, ref l.doAction
Метод обработчика события должна быть ссылкой на метод, а не вызовом метода.
На практике это означает, что большинство выражений ignore будет иметь второй аргумент в виде ссылки на имя метода.