Sign up on the Revelation Software website to have access to the most current content, and to be able to ask questions and get answers from the Revelation community

At 24 MAY 1999 08:46:16PM Peter Baxter wrote:

We have developed a large OI application and have so far got the cart before the horse. We have all these programs and forms that do marvelous things, but the way we are hanging them together at the moment is quite primative. We are simply setting up a main menu form and calling another menu form for the sub menus, and doing the same for sub-sub menus. This means the user can only do one task at a time. Ok, time to get organised - but how?

Have read Don Bakkes article on MDI. In fact we have standardised many of our main data entry screen as MDI screens. What happens if I want to run two or more tasks at the same time which are MDI Parent/Child forms. Can I have an MDI Frame within another MDI Frame? I can't seem to get that working.

Do I need to go SDI? What is SDI and how does it work? There are only 4 articles when I do a search. There is no info in the help on SDI. How do I call a form using SDI techniques?


At 24 MAY 1999 10:26PM Don Bakke wrote:

So you've read my previous post so you are one step ahead already.

SDI stands for Single Document Interface (as opposed to Multiple Document Interface.) The essential difference between the two on a technical level are insignificant (i.e. your data windows aren't created one way or another), but the difference in implementation are what forces you to think through your approach very carefully.

SDI is implemented by creating a master window that allows you to launch other windows as individual objects on the desktop as opposed to child windows within a parent frame. Typically this looks like a small windows with many buttons (or menu items) that will launch your other application windows. From a programmatic stand point the difference is between using the Start_Window function (for SDI) versus Start_MDIChild function. Of course with SDI you need to create menus, and toolbar buttons if desired, for each window. As each window is launched it will appear as an object on your desktop with it's own icon on your task bar. Your application then is spread out over multiple individual windows that are running. The whole application won't shut down until the last window is closed (unless you have some code that automatically closes all open windows when certain conditions are met - perhaps when the main window is closed itself.)

All MDI windows are closed when the MDI parent itself is closed. MDI windows, of course, also have icons but these are only seen within the MDI parent itself and they "disappear" when the MDI parent is minimized (so there will always be only one icon on the desktop itself.) The obvious advantages of MDI are shared menus and shared toolbar buttons. I also believe writing security procedures are easier in this setup as well.

As far as running multiple tasks there really is no difference between SDI and MDI. I'm not sure why you would want to launch an MDI within another MDI. That really defeats the intent of MDI - i.e. one MDI parent with multiple child windows running independently. Perhaps you should elaborate more on what you are considering and I can tell you how to get that to work.

OpenInsight itself is technically an SDI. It has buttons on the left and menu items which launch its various tools. Each of these tools sit independently on your desktop. However, some of these tools are MDI windows oriented towards specifics tasks (i.e. System Editor, UI Workspace, and the C/S Workspace.) You could adapt this model if it works for you. Some of are applications are strictly MDI, strictly SDI, or a hybrid of both (i.e. SDI with MDI sub-windows, like OI.)

In the final analysis, SDI and MDI are personal preferences. I've heard Sprezzatura lately say that end users seem to adapt better to SDI. I don't have any hard data one way or another but as an end user myself I much prefer MDI. This is why we've developed utilities to make this process much easier for us and others who are interested.

If you decide to use MDI, your biggest challenge will be the possible resizing of your windows. Since you are running these windows within a section of the parent window, it's possible that you've already got windows that are larger than this area. If you have also developed any customized menus then you will need to remove these and have them added to the MDI parent.

If you have any more questions please let me know.

dbakke@srpcs.com

SRP Computer Solutions


At 25 MAY 1999 11:46AM Oystein Reigem wrote:

Don,

I'm not sure why you would want to launch an MDI within another MDI.

One case could be if you're using MDI to emulate something else - e.g a tabbed interface.

(But please don't mind me. Sorry about the interruption.)

- Oystein -


At 26 MAY 1999 03:06AM Peter Baxter wrote:

Thanks Don (and Oystein) for a great reply.

] I'm not sure why you would want to launch an MDI within another MDI

We have a number of separate "modules". Within each module, we may have one or more major data entry screens which have been implemented using the MDI approach. We want to let our users be in two or more modules at the same time. Thus from what you are saying, the easiest way is to 'launch' each module as an SDI. However, if we launched each module as an MDI Child, we would then want to have 'an MDI within an MDI'.

]If you decide to use MDI, your biggest challenge will be the possible resizing of your windows.

This may not be a problem for us. We have designed all our screens so far to fit on the 600x400 sized frame. We are also looking at utilising the 800x600. Any thoughts on designing forms that work for 600x400 and also take advantage of 800x600 would be appreciated.

Also how do we implement an MDI within an MDI if we choose that route?

Thanks.


At 26 MAY 1999 03:49AM Peter Baxter wrote:

One other question:

I notice the cascade option does nothing on my test main SDI screen. I assume this would also work better if done with MDI. Also what about using having an option like in the Basic System Editor, Window where we can select Cascade, Tile, Stack, Arrange Icons & also choose from the list of active windows which one we want to go to.

Thanks again for your thoughts.


At 26 MAY 1999 11:14AM Don Bakke wrote:

Peter,

When you create an MDI Frame window (which is a unique type of window that you select from the Form Designer) these features are automatically included.

dbakke@srpcs.com

SRP Computer Solutions


At 26 MAY 1999 11:30AM Don Bakke wrote:

Peter,

Let's stop using the phrase "MDI within an MDI" since this actually denotes something which can't (or shouldn't) exist.

I think I need more information regarding your modules. Does each module have just one screen or multiple screens? Do you want each module to have it's own self-contained MDI Frame or are you content with one master MDI Frame and have all modules subsisting as MDI child windows?

You may also want to consider the "look" of your MDI Frames. We have a generic MDI Frame with an Office 97 motif that we customize around for most of our business applications. It saves us (and those who use it) a lot of work if this is the approach they decide to take. If you are interested in information about this then send me an e-mail.

dbakke@srpcs.com

SRP Computer Solutions

View this thread on the forum...

  • third_party_content/community/commentary/forums_nonworks/4b1fa9915978e9328525677c00043c67.txt
  • Last modified: 2023/12/28 07:40
  • by 127.0.0.1