Diese Seite mit anderen teilen ...

Informationen zum Thema:
WinDev Forum
Beiträge im Thema:
Erster Beitrag:
vor 4 Jahren, 8 Monaten
Letzter Beitrag:
vor 4 Jahren, 8 Monaten
Beteiligte Autoren:
Gary Williams, Fabrice Harari, Peter Holemans, Noel Tanti, JP, Charles U. Schneiter

MDI or not MDI ?

Startbeitrag von Gary Williams am 21.11.2013 11:41

I am a newbie to WinDev, currently re-designing and converting a Management Information System from VFP 9 into WinDev 18.

I had settled on a MDI interface with a Ribbon bar and a tab control in the parent window to switch between open child windows.

However I have seen a number of references on this forum to issues with the MDI functionality in WinDev and people talking about having written their own windows management to avoid using MDI.

Is there an issue with going down the MDI route? Should I avoid it and if so why?



Hi Gary

if you are happy with the MDI way of working at a time when even Microsoft (who created MDI) has completely abandoned it, go ahead :-)

However, if you start to want to do some things that are NOT part of the original standard, you'll get in trouble as mixing and matching will do that to you with MDI...

So personally I prefer to manage my own window system, with the look and feel that I want and ALL the possibilities of a modern UI

Best regards

von Fabrice Harari - am 21.11.2013 12:30
I have not found any issues with using WD MDI interface. It works as expected; windows are kept within the main parent window, they can be tiled or cascaded easily, they can be minimized or maximized as is the norm.

The only thing is that MDI windows inherit the style of the window border, title bar, min, max, and close button icons in the title bar from Windows itself. They look like normal windows.

The main reason to use MDI windows, imo, is if you want to keep all windows inside the main parent window without coding this functionality yourself. If you want to use non-MDI windows and still keep the windows inside the main application window then you will need to add code to manage that aspect i.e. testing for window position and borders.

If you want to style your windows in different ways, design your own min, max, close buttons, etc. then you will need to not use MDI windows. You can still enforce modal and non-modal windows regardless.

von JP - am 21.11.2013 14:01
Just my 2 cts:

I use one main menue window with the ribbon bar.
'underneath' it, I have per tab of the Ribbon Bar a plane with an Inernal Window Control (don't confuse it with the Internal Window - this one resides inside the Internal Window Control).

All other windows of the app are Internal Windows. This is completely transparent to the user.

I have borrowed this very simple and easy to use layout from Pete Halsted's (The NextAge) OpenSource Application see here for the docs and downloads...


von Charles U. Schneiter - am 21.11.2013 14:15
Hi Fabrice,

Maybe I am old fashioned in how I approach things, I am just unclear in my mind how data driven MIS system breaks out into multiple windows :-)

Do you run a menu/ribbon on all you windows? Similar to Outlook 2010/2013 with a master windows and each email/task/etc. breaking out in a separate window?


von Gary Williams - am 21.11.2013 15:02
Thanks JP.

I do tend to want my design to be mine and not someone else's, so will have to think carefully.


von Gary Williams - am 21.11.2013 15:04
Thanks Charles,

I had already downloaded Pete's stuff, just not had a chance to look at it in details.

I will study further.


von Gary Williams - am 21.11.2013 15:06
Hi Gary

I do not have ONE specific way of doing things, as my work is tro design things for my customers needs, and each application can have diferent ones... So in my career I have used nearly every design possibility, except MDI that I find too much "closed" for my taste.

I had an interface where the user could create as many windows as he wanted and arranged them any way he wanted, displaying what we called "desktops" one after the other, with sometime the same data displayed in 3 different windows, in 3 different ways (a table, a graph, a report)...

I had another where each window was free floating (no main window) and interchangeable, with magnetic properties when moved near another one (or not)

And I had very simple and proper interfaces, with or without ribbons, horizontally, vertically, movable, etc

So I'm not going to try and guide you toward one or another... Your application logic _AND_ your desired look and feel should do that for you

Best regards

von Fabrice Harari - am 21.11.2013 18:19
Hi Gary,

My personal opinion is like Fabrice's...
MDI is old-school 90's style and adds a lot of limitations to your future UI evolution path.
Have a look at Open() and OpenSister() to start with which allows you to easily mix and match modal and non-modal functionality in your application keeping all future directions open.


Peter H.

von Peter Holemans - am 22.11.2013 09:50

If you use open() and opensister() and not using hypersql() you need to make sure that the same window is not open twice as you will have problems with the data.

I am not sure how others are solving this problem.


von Noel Tanti - am 22.11.2013 10:17

With HFSQL (or native access add-ons), you can set 'Independent Hyper File Context' for each window (window/page description) that will cover for this.

All my windows work on 'business objects' (thus classes) filled by queries and are never directly bound to the database or wx queries (making the logic completely reusable across WD/WB/WM/WebServices without a single line of code change) so I never have this problem and never have real performance issues when working with a setup of cloud databases (e.g. HyperFileSQL on a server somewhere on the internet). If your table and looper controls are bound directly to the database or wx queries, you'll encounter performance issues when using remote databases.


Peter H.

von Peter Holemans - am 22.11.2013 10:45
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.