>We want to write a main menu application which will call other
>OpenROAD applications. Not necessarily a CallFrame, or OpenFrame, but
>an invoking of the OpenROAD application so that we can have separate
>applications. I've got some questions related with it:
>1) How do we do that? Do we use the "Call Runimage" call?
Not possible on MS-Windows, because only one instance of a large model
application can run at a time (The OpenROAD runtime system application
"w4glrun.exe" is a large model application). This is a MS-Windows
limitation, not an OpenROAD limitation !
Quote:>2) We need to set either some global constants or global variables
>upon invoking the other application. How is this done?
If it would be possible to run a second applications (on other
OperatingSystems like UNIX, NT, ...) there are 2 ways to do that:
1.
Write your settings to a globals initialization file and start the
second application with the -g flag. File has to look like:
variable_or_constant_name = value
2.
Use the -/appflags (or -/include) - Metaflag when starting the second
application image to pass parameters to the image. Read these
parameters within the application (CurSession.Appflags) and set your
globals accordingly.
3.
Store the values of the globals to database or file before calling the
second application image. Read these values within the application
image (from database or file) and set your globals accordingly.
Because it is not possible to start another OpenROAD application from
an OpenROAD application you can:
1.
Built your main menu application as Windows-Executable and run the
selected OpenROAD image from there, example in "C":
WinExec("w4glrun -dnode::database myimage", 1);
2.
Use the other applications as included applications of your menu
application.
Instead of "call runimage" you'll have to use "callframe", "openframe"
or "callproc" to call the starting frame/procedure of the application
you want to call. If you have naming conflicts (same name for starting
component in different applications) you can use
"applicationname!componentname" to reference the right one.
Globals of included applications can be set directly.
Regards,
Bodo.
/*{
** Bodo Bergmann
** Client/Server- Consulting & Training
** Frankfurt, Germany
*/