Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизMDI окна Найти похожие ветки
← →
ASH © (2005-02-23 13:55) [0]Добрый день, уважаемые мастера. Подскажите такую вещь. Что бы создать MDI-parent окно оно должно быть главной формой в нашей Application. Свойство Application.MainForm доступно только для чтения. Как быть если мне нужно сделать так что бы MDI-parent форма открывалась с другой модальной формы, которая является MainForm?
← →
Юрий Зотов © (2005-02-23 15:03) [1]================== Unit1 (SDI-форма) ==================
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
end;
var
Form1: TForm1;
procedure SetMainForm(Form: TForm);
implementation
{$R *.dfm}
uses
Unit2;
procedure SetMainForm(Form: TForm);
var
P: ^TForm;
begin
P := @Application.MainForm;
P^ := Form
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Application.MainForm = Self then
begin
SetMainForm(TForm2.Create(Application));
Application.MainForm.Show
end
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate
end;
================== Unit2 (MDI-форма) ==================
type
TForm2 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
New1: TMenuItem;
Exit1: TMenuItem;
procedure New1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
end;
implementation
{$R *.dfm}
uses
Unit1, Unit3;
procedure TForm2.New1Click(Sender: TObject);
begin
TForm3.Create(Self)
end;
procedure TForm2.Exit1Click(Sender: TObject);
begin
Close
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SetMainForm(Form1);
Action := caFree
end;
================== Unit3 (Child-форма) ==================
type
TForm3 = class(TForm)
Memo1: TMemo; // Align = alClient
procedure FormClose(Sender: TObject; var Action: TCloseAction);
end;
implementation
{$R *.dfm}
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree
end;
← →
Юрий Зотов © (2005-02-23 15:37) [2]Забыл добавить - форма 1 автосоздаваемая, а формы 2 и 3 из списка автосоздаваемых надо убрать.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c