You can use RAISEEVENT(В ) to raise, or trigger, an event from a custom method. Though RAISEEVENT(В ) applies primarily to custom methods, you can use it for raising native events and methods.
RAISEEVENT( oEventSource, cEvent [, eParm1...] ) |
Parameters
- oEventSourceВ В В
- Specifies the event source, which must be a valid Visual FoxPro object.
- cEvent
- Specifies the name of the event, method, or property you want to raise.
- eParm1...
- Specifies one or more parameters to pass if the method has parameters.
Return Value
Logical data type. RAISEEVENT(В ) always returns True (.T.).
Remarks
Visual FoxPro automatically raises events for custom methods that are bound to objects using BINDEVENT(В ) if the methods are called directly. For example, the following code does not raise an event:
В | Copy Code |
---|---|
oForm.GetMyData(cData) |
Instead, to raise an event for a custom method, you need to make the following call:
В | Copy Code |
---|---|
RAISEEVENT( oForm, "GetMyData", cData ) |
You can also change this behavior by using BINDEVENT(В ) with nFlags set to 2 or 3.
The event you wish to raise must be marked Public, not Hidden or Protected.
If you use RAISEEVENT(В ) on a property, Visual FoxPro sets the property to itself. The following example sets the Caption property for _SCREEN to the current value for Caption:
В | Copy Code |
---|---|
RAISEEVENT( _SCREEN, "Caption" ) |
Raising an event fails if you bind to an event, for example, using BINDEVENT(В ), that has parameters that are passed by reference.
Visual FoxPro disregards recursive RAISEEVENT(В )calls to an event from within the same raised event.
Example
Activating a form or using Form1.Show
triggers the Activate event for the form. However, calling the Activate event directly using a call such as Form1.Activate
does not trigger the Activate event. The following example shows how you can use RAISEEVENT(В ) to trigger the Activate event:
В | Copy Code |
---|---|
RAISEEVENT( Form1, "Activate" ) |