用D7做个工程编译未能通过~~!
具体操作如下:
File-》New-》Application
另创建FORM2,FORM3FORM2的FormStyle->fsMDIForm Form3的FormStyle->fsMDIChildForm1上有个按钮,按钮事件里
procedure TForm1.Button1Click(Sender: TObject);
begin
self.Close;
form2.show
end;end.form2的creater事件里代码:
procedure TForm2.FormCreate(Sender: TObject);
begin
form3.show
end;end.其实我就是想用户经过登陆窗体后验证后,显示MDI窗体的时候自动的把其中一个的子窗体显示出来但是照上面的思路出错如下:
Project Project1.exe raised exception class eaccessViolation with message 'access violation at add ress 004458A6 in module 'project1.exe.read of address 000002f4'.process stopped use step or run to contiue
--------------------------------------------------
思路是不是有问题?
具体操作如下:
File-》New-》Application
另创建FORM2,FORM3FORM2的FormStyle->fsMDIForm Form3的FormStyle->fsMDIChildForm1上有个按钮,按钮事件里
procedure TForm1.Button1Click(Sender: TObject);
begin
self.Close;
form2.show
end;end.form2的creater事件里代码:
procedure TForm2.FormCreate(Sender: TObject);
begin
form3.show
end;end.其实我就是想用户经过登陆窗体后验证后,显示MDI窗体的时候自动的把其中一个的子窗体显示出来但是照上面的思路出错如下:
Project Project1.exe raised exception class eaccessViolation with message 'access violation at add ress 004458A6 in module 'project1.exe.read of address 000002f4'.process stopped use step or run to contiue
--------------------------------------------------
思路是不是有问题?
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.Run;
end.
----------------------
中的 : Application.CreateForm(TForm3, Form3);的时候
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Form1.ShowModal;
Application.CreateForm(TForm2, Form2);
Application.Run;
end.而同时
Form1上有个按钮,按钮事件里
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;end.form2的creater事件里代码:
procedure TForm2.FormCreate(Sender: TObject);
begin
Application.CreateForm(TForm3, Form3);
form3.show;
end;
Forms,Controls,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
if form1.ShowModal = mrok then
begin
Form1.Free;
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Form2.Visible := True;
Application.Run;
end
else
Application.Terminate;end.
----------------
其他单元里面什么都不用写
假设form1是登录窗口;改进1:修改工程文件,form1:=Tform1.Create(Application);//此时创建的非主窗体
if form1.ShowModal=mrok then Application.CreateForm(TForm2,Form2);//登录正确才创建主窗体。改进2:Form1设为MDIForm,Form2设为LoginForm,Form3设为MDIChild
Form1OnShow()
begin
form2:=TForm2.Create(Self);
if not form2.ShowModal=mrok then Close;
end;