views:

937

answers:

2

Hello, which of the following styles do you prefer?

  • An application which to perform tasks opens new forms
  • An application which keeps the various "forms" in different tabs
  • An application which is based on a PageControl and shows you the right tab depending on what you want to do.
  • Something else

Also do you have any good links for gui design?

+6  A: 

From a programmers point of view, the PageControl solution quickly gets out of hand. Possibly too much code and certainly to many components on one form. (Originally this question was tagged Delphi, so I go from there.)

From a users point of view, the "opens new window" paradigm often is confusing. We people tend to think that we are able to multitask and handle many open windows and tasks, but we are not (we task switch at a loss of time like computers and add loss of accuracy).

Obviously this really depends on the type of application. But I would tend to a paradigm as Chrome and Firefox show in their latest incarnations:

  • keep the various forms in different tabs
  • let the user detach a tab into its own form (dock and undock via drag%drop)
  • add a good way of navigation

I implement something like an SDI as main screen of an application too. Look at something like "outlook style". Navigation, list of objects, object details in different panes, some additional panes like a cockpit. And then open a new window/form for certain tasks (some modal, some non modal), but short lived. After the email is written, it is sent and closes the window. But I have, if I am capable of doing so, the possibility to work on multiple emails at the time.

Look at the problem. If it has dashboard character, take "outlook style" or so. If the users are a wide spread, heterogeneous, non computer savvy crowd, use SDI or forms on tabs. If you write for programmers, you might go for multiple forms, just because we tend to think that we can handle it. And it works for multiple screens (hopefully).

Ralph Rickenbach
+1, nice answer. You'll agree though that there's nothing Delphi-specific about it (neither question nor your answer).
mghie
@mghie: I do agree. But I do not know about the amount of code needed in other languages to use a PageControl paradigm. Maybe there are languages where this has been optimized and it is the way to go.
Ralph Rickenbach
@Ralph: Using forms or frames as pages in the page control there are no problems with the number of components or the size of single unit. As you write, it's (or can be) problematic from the programmers POV, an implementation detail if you will. I understood the question to be primarily about the GUI design part.
mghie
@mghie: Again your right. That's way I said that I'm taking a programmers POV. Using frames helps a lot in this perspective, and of course forms can be used to to put on pages. But this comes close to the tabing solution.
Ralph Rickenbach
What about placing forms insice pagecontrol tabs?
Aldo
@Aido: In Delphi you can take the TPageControl or TTabControl or TTabSet or even the Tabbed Pages template (uses TPageControl) to do that, which is your solution: "various forms in differetn tabs".
Ralph Rickenbach
+1  A: 

MDI is the worst choice possible, in my opinion. There's nothing I hate more than having to resize a bunch of windows, or tile them or whatever.

Tabs are bad, too, especially if you have more than one row of them (or if you have one row but still have more tabs than will fit, and have to use some funky scrollbar or "more" button with them).

I would rather see the programmer think about the problem and just show me what I need to see based on what I'm doing as a user. Implementing the different user interfaces in your programs as user controls (as opposed to discrete forms) and then showing them or hiding them based on the current context is the way to go.

MusiGenesis