A component is an instance of TComponent
or its child class. The base class TComponent
implements the mechanism of component properties and events.
A component property can be viewed as a public variable describing a specific aspect of the component, such as the background color, the font size, etc. A property is defined by the existence of a getter and/or a setter method in the component class. For example, in TControl
, we have
class TControl extends TComponent { public function getID() { ... } public function setID($value) { ... } }This defines a property named
ID
. Reading the property (e.g. echo $component->ID;
) is equivalent to invoking the getter method (e.g. echo $component->getID();
); and writing the property (e.g. $component->ID='Button';
) is equivalent to invoking the setter method (e.g. $component->setID('Button');
).
A property is read-only if it has a getter method but no setter method. Since PHP method names are case-insensitive, property names are also case-insensitive. A component class inherits all its ancestor classes' properties.
Component events are special properties that take method names as their values. Attaching (setting) a method to an event will hook up the method to the places at which the event is raised. Therefore, the behavior of a component can be modified in a way that may not be foreseen during the development of the component.
A component event is defined by the existence of an on
-method. For example, in TButton
, we have
class TButton extends TWebControl { public function onClick($param) { ... } }This defines an event named
Click
, and a handler can be attached to the event using one of the following ways,
$button->Click=$callback; $button->Click->add($callback); $button->Click[]=$callback; $button->attachEventHandler('Click',$callback);where
$callback
refers to a valid PHP callback (e.g. a function name, a class method array($object,'method')
, etc.)