Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как отобразить модально MDI Child форму?

01.01.2007
Girder

Как выполнить код после создания MDIChild-формы, но до появления ее на экране?

Как отобразить MDIChild-форму модально?

  1. Убераешь свою MDIChild форму из автосоздания: (MainMenu) Project->Options->Forms. Там её перебрасываешь в: Available forms

  2. Переключаешься на свою MDIChild форму и дописываеш в описание класса(пусть например твой класс формы для MDIChild называется TForm2):

    TForm2 = class(TForm)
       ...
       procedure CreateWindowHandle(const Params: TCreateParams); override;
    private
       { Private declarations }
    public
    
  3. Реализуешь эту процедуру:

    procedure TForm2.CreateWindowHandle(const Params: TCreateParams);
    var Comp:TForm2;
    begin
     inherited;
     Comp:=TForm2(Application.Components[Application.ComponentCount-1]);
     Comp.Visible:=false;
    end;
    
uses Unit2; //ссылка на модуль MDIChild формы

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var vv:TForm2;
begin
 vv:=TForm2.Create(Application);
 //... Здесь форма не видна
 vv.Memo1.Lines.Add('123123'); //Типо что-то заполняем на MDIChild форме
 Caption:='2';
 Sleep(2000);
 Caption:='0';
 //.. Здесь форма до сих пор не видна
 vv.Show;
end;
Previous page:
Как сделать MDI-приложение, где сливаются меню дочернего и главного окна и полосы инструментов?
Top:
DRKB
Next page:
Придание MDI-формам большей трехмерности