скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Каждую дочернюю форму заставить полностью заполнять область главной



Оформил: DeeCo

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.





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook