I have written a simple application with one form. I compiled the project as an .exe. My exe works fine if I am inside VFP, but when I make a shortcut to this exe on my desktop and try to run it, the form flashes by quickly and closes.
I did have FoxPro 2.6 installed on my machine, but made sure all the references to cdx, etc. were now pointing to VFP. What am I doing wrong?
In Fox 2.x apps it was necessary to create what was referred to as a "foundation read." This read level (e.g., READ VALID glDontQuit) was used as an event loop: a loop that kept the application alive and waiting for events to occur. When it was time to leave the application, the READ VALID expression (glDontQuit) was set so that the read was ended, allowing the executable to end.
VFP has a command called READ EVENTS that does this for you. READ EVENTS starts the VFP event loop, and ends the event loop only when you execute the command CLEAR EVENTS.
Put the following code in the main program of your executable:
DO FORM MyForm
In the Click event of the button on MyForm that is supposed to close the application, put the following:
This will end the event loop that keeps the executable in memory. The code that follows the READ EVENTS command then will execute.