>1. Instantiate a modal form form. Wait for user to make a selection, then release this form.
>
>2. Instantiate a modeless form that has ShowWindow property set to 2 - As top level form.
>
>3. Read Events.
>
>What happens is my code goes right by the step 1 (even though the form is modal) and stops on step 2. This part I can't understand. The form is modal; it should stop but it does not.
>
>So I will probably need to incorporate the step 1 into INIT method of form in step 2.
How modal is your modal form? Is it modal by design (i.e. showwindow set in PEM window) or are you just creating it invisible and then calling its .show() with 1? The latter may not necessarily work if something makes the form visible before that (any .setfocus() anywhere in the code, parent class code, any control's code... if called before end of .init(), would do that). Though, in that case, it should throw an "cannot change modality of visible form" or some error like that. Then, again, the error may not come up for whichever reason.
Try to Set Step On immediately before the oFrm.show(1) line (if that's what you're doing). Is the form visible at the time? If it is, check its .showwindow property, I'd bet that it's set to 2.
Anyway, you can have one Read Events for the login form, and the other for the goApp.AppIsRunningAndWaitingForUser'sMove=.t.