Recent

Author Topic: MDI applications  (Read 10874 times)

Andyk

  • Jr. Member
  • **
  • Posts: 72
MDI applications
« on: April 09, 2012, 01:04:14 pm »
Most of my apps are MDI, its pretty difficult to make a complex design application using SDI.

The problem is that the LCL form doesn't have the MDIchildren list that is required to organise and maintain the child windows.

How difficult would it be to implement the list?

I did start to try and alter the forms unit in the LCL to implement it, but the LCL package doesn't give the option to recompile.

Whats the best way to do this?

« Last Edit: April 09, 2012, 01:06:20 pm by Andyk »

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3538
Re: MDI applications
« Reply #1 on: April 09, 2012, 01:24:53 pm »
I did start to try and alter the forms unit in the LCL to implement it, but the LCL package doesn't give the option to recompile.

You don't have to manually rebuild the LCL. It will check if you modifyed any files from the LCL and if you did, then it will automatically rebuild the LCL when you build any project that uses it, like a test program.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12770
  • FPC developer.
Re: MDI applications
« Reply #2 on: April 09, 2012, 01:49:48 pm »
How difficult would it be to implement the list?

Afaik Zeljan was working on this, and had it largely done for QT, and some generic support was added to the 0.9.31/1.0 branch.

The implementation for other widgetsets (most notably win32/64 which has native support for it) still must be done.

Bart

  • Hero Member
  • *****
  • Posts: 5713
    • Bart en Mariska's Webstek
Re: MDI applications
« Reply #3 on: April 09, 2012, 02:11:11 pm »
You could alternatively use a tabbed document interface?

Bart

Andyk

  • Jr. Member
  • **
  • Posts: 72
Re: MDI applications
« Reply #4 on: April 09, 2012, 02:51:01 pm »
You could alternatively use a tabbed document interface?

Bart

A tabbed document interface is no use when there are several different displays of the same data that all interact with each other and you need see how they all change wrt to real time user interactions.

Thanks for the replies guys, I'll have another crack at it.

joseme

  • Full Member
  • ***
  • Posts: 128
    • Logosoft sistemas
Re: MDI applications
« Reply #5 on: April 09, 2012, 04:24:45 pm »
Has anybody used Multidoc, from Patrick Chevalley? I did not have time for trying it myself. If it works, may be the solution for Andyk.
un aporte a la comunidad:
http://pascalylazarus.blogspot.com/

jwdietrich

  • Hero Member
  • *****
  • Posts: 1275
    • formatio reticularis
Re: MDI applications
« Reply #6 on: April 09, 2012, 05:05:43 pm »
Don't forget that MDI impedes cross-platform development. MDI is a prevalent paradigm on Windows, but rare on Linux and unusual on Mac OS X.
function GetRandomNumber: integer; // xkcd.com
begin
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.
end;

http://www.formatio-reticularis.de

Lazarus 4.2.0 | FPC 3.2.2 | PPC, Intel, ARM | macOS, Windows, Linux

zeljko

  • Hero Member
  • *****
  • Posts: 1906
    • http://wiki.lazarus.freepascal.org/User:Zeljan
Re: MDI applications
« Reply #7 on: April 09, 2012, 05:58:17 pm »
Works (in real world production) with qtlcl on Linux, Windows and MacOSX.
MDI emulator is ready for non-mdi ws (gtk2,carbon,cocoa) and it basically works, but problem is standard bounding rect of fsMDIChild which should return and set bounding rect of emulated container, not for fsMDIChild itself.
Win32 should have native mdi support, but that part needs to be written and tested (LCL interface is ready for this).

jwdietrich

  • Hero Member
  • *****
  • Posts: 1275
    • formatio reticularis
Re: MDI applications
« Reply #8 on: April 10, 2012, 01:35:21 pm »
Works (in real world production) with qtlcl on Linux, Windows and MacOSX.

It may work, but it will be annoying to Mac users.
function GetRandomNumber: integer; // xkcd.com
begin
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.
end;

http://www.formatio-reticularis.de

Lazarus 4.2.0 | FPC 3.2.2 | PPC, Intel, ARM | macOS, Windows, Linux

LA.Center

  • Full Member
  • ***
  • Posts: 244
    • LA.Center
Re: MDI applications
« Reply #9 on: April 10, 2012, 07:37:52 pm »
MDI design is considered obsolete by many, Tabbed Window design would be the way I would go.

Andyk

  • Jr. Member
  • **
  • Posts: 72
Re: MDI applications
« Reply #10 on: April 10, 2012, 09:30:21 pm »
Works (in real world production) with qtlcl on Linux, Windows and MacOSX.

It may work, but it will be annoying to Mac users.

That's probably why there are virtually zilch mainstream EDA applications for MAC.


marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12770
  • FPC developer.
Re: MDI applications
« Reply #11 on: April 10, 2012, 10:25:53 pm »
MDI design is considered obsolete by many, Tabbed Window design would be the way I would go.

As Andyk already stated, Tabbed Window doesn't cover all cases. E.g. think of systems where MDI is used by users to arrange their own "cockpit" view of gauges etc.

So before doling out this kind of "advise" please ask for details first.

 

 

TinyPortal © 2005-2018