After setting up the environment and displaying the initial user interface, your application needs to establish an event loop so it can detect and respond to user interaction. When the user quits the application, your application must provide a way to end the event loop.
|You need to establish a way to exit the event loop before you start it. Make sure the application user interface has a mechanism, for example, a Quit button or Exit menu command, to end the event loop.|
To establish the event loop
In the main file for your application, include the READ EVENTS command.
The READ EVENTS command causes Visual FoxPro to begin processing user events such as mouse clicks and keystrokes. For more information, see READ EVENTS Command.
|If you do not include the READ EVENTS command, your application returns to the operating system after running. It is important to place the READ EVENTS command correctly in your main file because all processing in the main file is suspended from the time it executes the READ EVENTS command until it executes a subsequent CLEAR EVENTS command. For example, you might call the READ EVENTS command as the last command in an initialization procedure and after initializing the environment and displaying the user interface.|
After the event loop begins, the application runs under the control of the user interface element that last displayed. For example, suppose you include only the following command in the main file:
DO FORM STARTUP.SCX
The application displays the form Startup.scx. Within the development environment, your application might run properly in the Command window. However, if you run the application from a menu or screen, the application appears briefly, then quits.
To end the event loop
Call the CLEAR EVENTS command using a menu command or button on a form.
The CLEAR EVENTS command suspends the event processing and returns control to the program that called the READ EVENTS command.
|Typically, you call the CLEAR EVENTS command from a menu or a button in a form. The main program file should not call CLEAR EVENTS directly.|
For more information, see CLEAR Commands.