我是个新手,请问如何在DELPHI7.0中实现MDI的窗口的(急)(50分)

  • 主题发起人 主题发起人 tvonline
  • 开始时间 开始时间
T

tvonline

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现MDI的窗口功能的,
 
新建一个工程,然后将form1的formstyle设置为fsMDIForm
然后新建子窗口form2,将formstyle设置为fsMDIChild
form1引用form2单元(uses unit2)就可以了
 
楼上说得是
 
这是一个动态生成子窗口的MDI例子:

主窗体:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
new1: TMenuItem;
window1: TMenuItem;
Cascade1: TMenuItem;
procedure Cascade1Click(Sender: TObject);
procedure new1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses
Unit2;

procedure TForm1.Cascade1Click(Sender: TObject);
begin
Cascade
end;

procedure TForm1.new1Click(Sender: TObject);
var
Form2:TForm2;
begin
Form2 := TForm2.Create(Self);
Form2.Caption := TimeToStr(Now);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.WindowMenu := window1;
end;

end.

******************************************************************
子窗体:
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm2 = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;

end.
 
其中window1为主菜单中的一个顶端菜单项,即“window”,window1下边还有一个“Cascade”菜单项,即平铺,window1赋值给Form1.WindowMenu后,每打开一个子窗口Delphi都会在window1下增加一个和Cascade平级的菜单项,就像一般的MDI程序一样,另外window1菜单项下一定得有一个其他菜单项(如:Cascade),否则是不能工作的。
 
接受答案了.
 
后退
顶部