Recent

Author Topic: With parent use, how to dynamically create a Tform in another Tform with Linux?  (Read 11089 times)

rvk

  • Hero Member
  • *****
  • Posts: 6169
But I have proof to contrary. Look at the attachment : (Qt 5.8 example) on the same VirtualBox session. Lazarus has no MDI. This clearly complicates my project.
No, you don't have proof.
What you are showing aren't real GTK2-windows at all.
When you run this example... are the icons for close, etc on the left or the right??

What you are showing is just a simulation of MDI (with the icons in the wrong place).
See attached screenshot.

You can do something similar with Lazarus.
See http://wiki.lazarus.freepascal.org/MultiDoc

GillesH

  • Jr. Member
  • **
  • Posts: 55
Hum difficult to say : With Qt you can change the presentation of the windows and by example the native order of the buttons following the OS. I will look at what exactly it is.

But assuming you are right, Qt offers an actually solution.

MultiDoc Wiki : Since 2012 this component is replaced by Multiframe, using docked frames for the same functionality. yes but what difficulty to use.

Regards. Gilles.

GillesH

  • Jr. Member
  • **
  • Posts: 55
Hello,

Problem almost* solved with my pseudo mdi. I have not tested on mac OS : when I install Qt, lazarus previously installed no longer works (!?). I then have to uninstall Qt and Lazarus and reinstall Lazarus completely.

Curiously, I had to differentiate the Ubuntu code from the Debian code when fMain.WindowState = wsMaximized.
 
Code: Pascal  [Select][+][-]
  1. {$IFDEF UBUNTU}if aFormMaximized then Y := Y - hTitleBar;{$ENDIF}  

I mainly use :
Code: Pascal  [Select][+][-]
  1.   procedure WMMove(var Message: TLMMove); message LM_MOVE;
  2.   procedure WMSize(var Message: TLMSize); message LM_SIZE;
  3.   [...]
  4.   wBorder := max(GetSystemMetrics(SM_CXEDGE), GetSystemMetrics(SM_CXBORDER));
  5.   hBorder := max(GetSystemMetrics(SM_CYEDGE), GetSystemMetrics(SM_CYBORDER));
  6.   wScrollBar :=  GetSystemMetrics(SM_CXHSCROLL);
  7.   hTitleBar :=  GetSystemMetrics(SM_CYCAPTION);  
  8.  


Regards. Gilles
* : I do not need the "Overlapped" display so I have not developed it.
Screenshots : Debian 8.7 [Laz 64] - Ubuntu 16.04 [Laz 64] - Windows 7 [Laz 32]
« Last Edit: April 15, 2017, 03:19:42 pm by GillesH »

 

TinyPortal © 2005-2018