Mega Code Archive

 
Categories / Delphi / Forms
 

Make each mdichild fill the entire client area of the main form

unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TMDIForm = class(TForm) private { Private declarations } FMainWindowClientCoordinates: TRect; procedure SetMainWindowClientCoordinates(const Value: TRect); procedure NewChild(Sender: TObject); public { Public declarations } // property used to read MainForm client coordinates property MainWindowClientCoordinates: TRect read FMainWindowClientCoordinates write SetMainWindowClientCoordinates; end; var MDIForm: TMDIForm; // Main form, property "formStyle" has to be fsMdiForm implementation {$R *.DFM} uses Child; // Defines TMDIchild class, property "formStyle" has to be fsMdiChild procedure TMDIForm.SetMainWindowClientCoordinates(const Value: TRect); begin FMainWindowClientCoordinates := Value; end; procedure TMDIForm.SetMainWindowCoordinates(const Value: TRect); begin FMainWindowCoordinates := Value; end; procedure TMDIForm.FormShow(Sender: TObject); begin // Reads MDIForm client coordinates Windows.GetClientRect(ClientHandle, fMainWindowClientCoordinates); end; procedure TMDIForm.NewChild(Sender: TObject); var LocalMDIChildForm: TMDIChildForm; begin // You can execute this procedure each time you // create a new child, for example you can call this // procedure from a button LocalMDIChildForm := TMDIChildForm.Create(Self); with LocalMDIChildForm do begin Caption := 'Child Form: ' + IntToStr(MDIChildCount); Top := MainWindowClientCoordinates.Top; Left := MainWindowClientCoordinates.Left; Width := MainWindowClientCoordinates.Right; Height := MainWindowClientCoordinates.Bottom; Show; end; // with ... end; end.