Recent

Author Topic: MDI deprecated?  (Read 18918 times)

dietmar

  • Full Member
  • ***
  • Posts: 170
MDI deprecated?
« on: July 02, 2017, 06:39:23 pm »
Hi,

in a german Lazarus forum, they say MDI is deprecated, because Windows has to be changed to reflect this behaviour.
Is that really true? If yes, what alternative can I use when I want several forms open next to each other?

Dietmar
Lazarus 2.2.0RC1 with FPC 3.2.2 (32 Bit) on Windows10 (64Bit)

Leledumbo

  • Hero Member
  • *****
  • Posts: 8757
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: MDI deprecated?
« Reply #1 on: July 02, 2017, 06:58:59 pm »
Hi,

in a german Lazarus forum, they say MDI is deprecated, because Windows has to be changed to reflect this behaviour.
Is that really true? If yes, what alternative can I use when I want several forms open next to each other?

Dietmar
AFAIR, yes. They prefer TDI to MDI nowadays.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11446
  • FPC developer.
Re: MDI deprecated?
« Reply #2 on: July 02, 2017, 07:06:20 pm »
Microsoft has deprecated MDI for new applications long, long ago (maybe even in Windows 98 times)

Thaddy

  • Hero Member
  • *****
  • Posts: 14363
  • Sensorship about opinions does not belong here.
Re: MDI deprecated?
« Reply #3 on: July 02, 2017, 07:24:16 pm »
Microsoft has deprecated MDI for new applications long, long ago (maybe even in Windows 98 times)
Correct. Actually Windows 95!  https://docs.microsoft.com/en-us/cpp/mfc/sdi-and-mdi
More than 20 years ago in favor of SDI (single document interface).
The tabbed document interface was introduced to mitigate some usability problems with SDI (which docs are opened?) and is from a later date.
MS sinned against their own advice, though, e.g. excel up to but not including 2007.

From Joel Spolski (in 2002):
"Here are the usability problems people have with MDI:

* They accidentally minimize a child window, e.g. by double clicking it's title bar, and don't know what they've done. Then they think the other windows are lost.

* They get into a state where the child windows are not even visible because the main window is too small or scrolled away, and don't know what they've done. Then they think the window is lost, and choosing it from the Window list does nothing.

* They close the app when they meant to close a child window because the X's icons are so close.

There are a whole range of other pathologies. Programmers are very logical people and understand MDI quickly. Most end users just don't get it and usability on these apps is terrible.

Joel Spolsky "
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixpost=2748

I can confirm the last line:
Together with my then emplorer we did some usability tests in a software testlab in Delft (WITlab TU Delft 1997-1998) for our nextgen product. Usability experience by end users with MDI was horrible. Our then core product was MDI...... :( %) :-[ :-[ I subsequently designed a TDI/SDI based interface, but around that time/soon after I left the company.
It was also the only time in my carreer we overshot the development budget by - a lot - more than multiplied with Pi. Excellent technology previews and proof of concept, though.. O:-)

WITlab means "Work and Integration Laboratory". It is still a world leader in usability.
« Last Edit: July 02, 2017, 08:09:48 pm by Thaddy »
Object Pascal programmers should get rid of their "component fetish" especially with the non-visuals.

jc99

  • Hero Member
  • *****
  • Posts: 553
    • My private Site
Re: MDI deprecated?
« Reply #4 on: July 02, 2017, 08:11:40 pm »
I'd put it that way, MDI as meaning Win 3.1 - MDI is sooooo dead, burried and rotten away. ... it evolved to
MDI in case of a modern Interface to handle multible Documents/Forms in more or less a single Container-Window with docking and tabbed Views is very much alive, look at your webbrowser.
So which MDI are you talking about ?
OS: Win XP x64, Win 7, Win 7 x64, Win 10, Win 10 x64, Suse Linux 13.2
Laz: 1.4 - 1.8.4, 2.0
https://github.com/joecare99/public
'~|    /''
,_|oe \_,are
If you want to do something for the environment: Twitter: #reduceCO2 or
https://www.betterplace.me/klimawandel-stoppen-co-ueber-preis-reduzieren

Thaddy

  • Hero Member
  • *****
  • Posts: 14363
  • Sensorship about opinions does not belong here.
Re: MDI deprecated?
« Reply #5 on: July 02, 2017, 08:18:44 pm »
I'd put it that way, MDI as meaning Win 3.1
So which MDI are you talking about ?
There is - by computer science convention - just one MDI. The first one. Don't mix things up. It is also not confined to ms windows 3.1.

https://en.wikipedia.org/wiki/Multiple_document_interface
Object Pascal programmers should get rid of their "component fetish" especially with the non-visuals.

dietmar

  • Full Member
  • ***
  • Posts: 170
Re: MDI deprecated?
« Reply #6 on: July 02, 2017, 08:33:28 pm »
For my project, it is essential to build an app which shows several open forms on one screen and to have them communicate with each of the others.

Example: Firefox with all his tabbed browsers, is that a TDI?
My App should work like this:
https://www.dropbox.com/s/ffuupzrplaapyqq/crazy.png?dl=0
(having several windows in one application visible).

Hope I described it correctly...

Dietmar
Lazarus 2.2.0RC1 with FPC 3.2.2 (32 Bit) on Windows10 (64Bit)

Ondrej Pokorny

  • Full Member
  • ***
  • Posts: 220
Re: MDI deprecated?
« Reply #7 on: July 02, 2017, 08:36:54 pm »
You need a docking solution. E.g. AnchorDocking.

guest60499

  • Guest
Re: MDI deprecated?
« Reply #8 on: July 02, 2017, 09:19:45 pm »
For my project, it is essential to build an app which shows several open forms on one screen and to have them communicate with each of the others.

Example: Firefox with all his tabbed browsers, is that a TDI?
My App should work like this:
https://www.dropbox.com/s/ffuupzrplaapyqq/crazy.png?dl=0
(having several windows in one application visible).

You could simply create multiple forms that are not in an MDI container. Personally I think this ends up being worse than using MDI, but it's not "deprecated."

Which really makes me want to comment on Microsoft's opinion on MDI: I don't think it's considered depcrecated, and at the very least it is extremely unlikely they will ever remove it (it is supported in the desktop system at a very low level). Their statements as I understood them the last time I read about MDI are more to the effect that the format produces interfaces which are typically confusing for users and unless you do testing on your own with other formats you are probably best off avoiding it. Start here.

If you must use a GUI then you might want to consider using a TreeView to show elements that change a main panel's contents. Good examples are PuTTY and most IDE options/settings windows. This is similar to a tabbed interface but differs in how the tabs are presented. This format is popular enough that there are browser extensions that present tabs as a tree. It's nearly impossible to misunderstand it or to be confused by it.

I view docking windows in much the same way I view multiple windows (often times you can creating freestanding windows with anchor docking) and MDI. It makes the screen very noisy. At least with MDI you can layer windows and know that they are associated with a process.

The last option is to not use a GUI. I wish this option was more popular. Some tasks and workflows are poorly suited to GUIs simply because of how much information they produce and/or the limited ways you can allow a user to interact with the information the process needs. This is why most programming languages are still text based.

Thaddy

  • Hero Member
  • *****
  • Posts: 14363
  • Sensorship about opinions does not belong here.
Re: MDI deprecated?
« Reply #9 on: July 02, 2017, 09:33:21 pm »
You need a docking solution. E.g. AnchorDocking.

Yes
I view docking windows in much the same way I view multiple windows
True. A docking interface has much in common and many similarities with MDI with many drawbacks removed (but not all).
Quote
The last option is to not use a GUI. I wish this option was more popular. Some tasks and workflows are poorly suited to GUIs simply because of how much information they produce and/or the limited ways you can allow a user to interact with the information the process needs. This is why most programming languages are still text based.
In the case of OP this is not an option as becomes clear from his screenshot.

Go with a docked interface...
« Last Edit: July 02, 2017, 09:35:57 pm by Thaddy »
Object Pascal programmers should get rid of their "component fetish" especially with the non-visuals.

jc99

  • Hero Member
  • *****
  • Posts: 553
    • My private Site
Re: MDI deprecated?
« Reply #10 on: July 02, 2017, 10:15:04 pm »
I'd put it that way, MDI as meaning Win 3.1
So which MDI are you talking about ?
There is - by computer science convention - just one MDI. The first one. Don't mix things up. It is also not confined to ms windows 3.1.

https://en.wikipedia.org/wiki/Multiple_document_interface
You see mentioning MDI people start the shitstorm ...
Win 3.1 was meant as an example. M$ declared that deprecated since Win95.
So was the mentioning of the webbrowser.
I want several up to a lot of documents/forms handled in a modern way by a good UI. How do you call it ?
And How to do it in Lazarus.
Suggestion:
Let's call it MFHS (Multi-Form-Handling-System) so it's not confused with MDI (the one like in win 3.X).
« Last Edit: July 02, 2017, 10:16:38 pm by jc99 »
OS: Win XP x64, Win 7, Win 7 x64, Win 10, Win 10 x64, Suse Linux 13.2
Laz: 1.4 - 1.8.4, 2.0
https://github.com/joecare99/public
'~|    /''
,_|oe \_,are
If you want to do something for the environment: Twitter: #reduceCO2 or
https://www.betterplace.me/klimawandel-stoppen-co-ueber-preis-reduzieren

dietmar

  • Full Member
  • ***
  • Posts: 170
Re: MDI deprecated?
« Reply #11 on: July 02, 2017, 10:20:16 pm »
THank you for all you contributions. Ich will try the anchordrocking as well as the "Multiple forms". In the last case, does such a form has properties which are absolutely essential?

Best regards,
DIetmar
Lazarus 2.2.0RC1 with FPC 3.2.2 (32 Bit) on Windows10 (64Bit)

Thaddy

  • Hero Member
  • *****
  • Posts: 14363
  • Sensorship about opinions does not belong here.
Re: MDI deprecated?
« Reply #12 on: July 02, 2017, 10:32:13 pm »
You see mentioning MDI people start the shitstorm ...
If you do it in the wrong context and with the wrong beliefs? Yes, there is that risk. I don't think it is that bad and confined to just a few individuals, though. Maybe even one.. 8-) O:-)

Note that even I choose an (true) MDI interface sometimes over something else. Rare, but sometimes still valid. But not in this case.
« Last Edit: July 02, 2017, 10:34:54 pm by Thaddy »
Object Pascal programmers should get rid of their "component fetish" especially with the non-visuals.

guest60499

  • Guest
Re: MDI deprecated?
« Reply #13 on: July 03, 2017, 01:41:51 am »
THank you for all you contributions. Ich will try the anchordrocking as well as the "Multiple forms". In the last case, does such a form has properties which are absolutely essential?

Best regards,
DIetmar
The only property I know of is WM_SYSMENU, I believe this style gives it a normally sized top bar (on Windows) but prevents the minimize and maximize buttons from showing. You might also want to use WM_POPUP which does much the same but gives the window a thinner top bar (on Windows).

For Linux I can't think of anything that matters.

In the case of OP this is not an option as becomes clear from his screenshot.

Go with a docked interface...
Can you (or the OP, if he reads this) link it? I didn't see it, but my point was basically "just because you have a GUI now doesn't mean you need one to present textual information."

The picture I did find was of a sound editing program, so if he needs to display graphics for that then I can understand needing some way to usefully manage those displays.

sam707

  • Guest
Re: MDI deprecated?
« Reply #14 on: July 03, 2017, 02:00:28 am »
my 10 cents :

multiple TFrame gliding on the TForm client sky did always do the job for  me

 

TinyPortal © 2005-2018