whats new ¦  programming tips ¦  indy articles ¦  intraweb articles ¦  informations ¦  links ¦  interviews
 misc ¦  tutorials ¦  Add&Win Game

Tips (1547)

Database (90)
Files (137)
Forms (107)
Graphic (115)
IDE (21)
Indy (5)
Internet / LAN (131)
IntraWeb (0)
Math (76)
Misc (127)
Multimedia (45)
Objects/
ActiveX (51)

OpenTools API (3)
Printing (35)
Strings (83)
System (268)
VCL (243)

Top15

Tips sort by
component


Search Tip

Add new Tip

Add&Win Game

Advertising

30 Visitors Online


 
...make each MDIChild fill the entire client area of the main form?
Autor: Carlos Borrero
[ Print tip ]  

Tip Rating (4):  
     


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.


 

Rate this tip:

poor
very good


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners