PRB: Application Appears Then Exits to Operating System

Last reviewed: February 20, 1997
Article ID: Q132697
The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, versions 3.0, 5.0

SYMPTOMS

A Visual FoxPro .EXE file appears briefly, and then it exits to the operating system.

CAUSE

The main program is a screen or menu, and no READ EVENTS command has been issued. In Visual FoxPro, the Command window provides a place for your application to wait for the next command. Because the Command window is unavailable in a run-time application, the .EXE file has no wait state to anticipate keyboard input, so the application returns to the operating system.

RESOLUTION

A READ EVENTS command or a modal form will provide a wait state for your application.

STATUS

This behavior is by design.

MORE INFORMATION

Adding a READ EVENTS to a menu

If the main program in your project is a menu, a READ EVENTS command should be added to the menu as follows:

  1. In the Menu Builder on the View menu, click General options.

  2. Select the Cleanup check box. In the Cleanup code window, add this code:

          READ EVENTS
    

  3. Add a Quit option to the menu that contains this command:

          CLEAR EVENTS
    

If the main program in your project is a form or formset, there are several ways to proceed as described in the remainder of this article.

Creating a Modal Form or Formset

The easiest way to provide a wait state for a form or formset is to set the WindowType property to 1 - Modal at design time.

This may be undesirable if you want to run other forms from within the current form or formset.

Creating a Program that Issues a Read Events

The form or formset can be run from within a program that issues a READ EVENTS. For example:

  1. Create a program containing this code:

          DO FORM <formname>
          READ EVENTS
    

  2. Save this program, and make it the main program in your project.

  3. Add a command button to the form. Add the following code in its Click event:

          CLEAR EVENTS
          THISFORM.RELEASE
    

Adding a READ EVENTS to a form or formset

If you do not want to create a wrapper program that runs the form and issues a read events command, you can add the appropriate code to the form or formset itself. For example:

  1. Add a new property to the form or formset named RdEventsFlag. Set the value of this property to false (.F.).

  2. In the Activate method of the form or formset, add this code:

          IF !THISFORM.RdEventsFlag
    
             READ EVENTS
             THISFORM.RdEventsFlag = .T.
          ENDIF
    
    

  3. Add a command button to the form. Add the following code to its click event:

          CLEAR EVENTS
          THISFORM.RELEASE
    

Change THISFORM to THISFORMSET everywhere it appears if you are working with a formset instead of a form.

Steps to Reproduce Behavior

  1. Create a quick form.

  2. Create a new project, and add the form to the Documents tab.

  3. Build an executable from the project.

  4. Exit Visual FoxPro, and run the executable. The menu appears briefly; then the executable returns to the operating system shell.

REFERENCES

Visual FoxPro Professional Features Guide, Chapter 9.


KBCategory: kbprg kbcode kbprb
KBSubcategory: FxprgGeneral VFoxWin
Additional reference words: 5.00 3.00 foundation READ


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: February 20, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.