Steve in Memphis,
MDI forms work well if you remember two things.
1. The form has to be run from another form. The command cannot
be issued from the R:>prompt. Sometimes I create a testForm with
a single button to test an MDI form. Put an exit button on your form
so it will know when you are through and want to return to the calling
form.
2. In a case statement, instead of using the following form:
Switch (.vSwitch )
CASE 1
Enter Employee MDI AT 50,50,700,430
BREAK
...
ENDSW
Use the following form:
Switch (.vSwitch )
CASE 1
RUN EntEmp.rmd
BREAK
...
ENDSW
-- create a command called EntEmp.rmd:
Enter Employee MDI AT 50,50,700,430
RETURN
Running a separate command (EntEmp.rmd) eliminates the 'wait' problem.
If you run an MDI form in a case statement it appears to cycle
through the code without stopping. The form flashes to the screen
and returns to the menu which called it.
To test a working MDI form using the ConComp database,
use R:Code to open the NewCon.app. It is in the subdirectory
RBWin65\Samples\Concomp.
In $Command called emp, replace or comment out line 176 'Enter Employee'
and substitute the command:
RUN EntEmp.rmd. Save the file.
[I would also change line 172 to begin: EDIT USING empmenu AT
140,80,420,430
replacing 380 in the fourth position with 430]
You have to run codelock to change the NewCon.app which is a text file,
to a binary file called NewCon.apx which will run.
At the R:Prompt type: Codelock. It will bring up a menu with 5
options. Choose
the bottom option: 'Convert an ASCII application file to a Binary
Procedure File.
Press OK.
It will then ask for two file names.
First: Enter Name of File to Convert:
Type: NewCon.app. Press open.
Second: Enter Name of Procedure File
Type: NewCon.apx. Press open. Then Ok to close.
-- create a command called EntEmp.rmd and save it:
Enter Employee MDI AT 50,50,700,430
RETURN
To test, at the R:>Prompt type:
RUN NewCon in NewCon.apx
Click on Employees
Click on Add New Employee
Do whatever in your working MDI form.
Leave the form (File -- add, discard, exit)
Return to the calling menu form.
MDI forms are very slick, and can sometimes substitute for a
PAUSE, or a DIALOG. They are perfect for context sensitive
data entry. If a purchase is being made with a charge card, an
MDI form can show the card number, type, expiration date and so
forth that might clutter the normal screen. The MDI form can be
placed so that the name from the prior form can be seen which
confirms that the entry is being made for the proper person.
Randy Peterson
>one of these involves the possibility of using MDI forms. Don't much
about these in
>RB(WIN6.5++) and only the basics in Windows, but, I had the ERR_MSG
above
>thrown when I ran this test code ...
-----------------------
MINIMIZE
EDIT USING +
fGetUserX4 +
MDI +
AT +
100,100,340,168 +
AS +
fGetUser +
NOHEADER
SETFOCUS fGetUser
--What happened to "SETFOCUS ... WAIT"?
EXITFORM
NORMALIZE
================================================
TO SEE MESSAGE POSTING GUIDELINES:
Send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: INTRO rbase-l
================================================
TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: UNSUBSCRIBE rbase-l
================================================
TO SEARCH ARCHIVES:
http://www.mail-archive.com/rbase-l%40sonetmail.com/