Event handlers are bound to events using the OnChange method.
method Application.OnChange (sym, fn)
{
local chfn = cons (sym, fn);
._ChangeFunctions = cons (chfn, ._ChangeFunctions);
on_change (sym, fn);
chfn;
}The OnChange method is a wrapper for the on_change function that does the actual binding of the event handler. First the OnChange method creates a two-member list (chfn) consisting of a symbol (sym) and the function that should run (fn) when the symbol changes value. That short list is added to the class's _ChangeFunctions list. All lists are constructed using the Gamma cons function. Finally, the on_change function links the symbol to the event-handling function. What gets returned, chfn, is a two member list—exactly what the unwrapped on_change function would have returned.
One way to remove an event handler is with the RemoveChange method.
method Application.RemoveChange (chfn)
{
._ChangeFunctions = remove (chfn, ._ChangeFunctions);
remove_change (car(chfn), cdr(chfn));
}This is a wrapper on remove_change, to be used when you need to remove just a single function from _ChangeFunctions rather than all of them. See also RemoveAllChanges and RemoveAllEventHandlers.
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.