program Project1;uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {frm_MDI};{$R *.res}begin Application.Initialize; Application.Run; if doLogin then begin Application.CreateForm(Tfrm_MDI,frm_MDI); Application.Run; end else application.terminate;end.{========================================================}unit Unit1;interfaceuses ...;type TForm1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; function doLogIn:boolean; implementation{$R *.dfm} function doLogIn:boolean; begin with TForm1.create(application) do begin if ShowModal = mrok then result := true else result := false; free; end; end;procedure TForm1.BitBtn2Click(Sender: TObject); begin if 密码正确 then modalresult := mrok else ModalResult := mrCancel; end;procedure TForm1.BitBtn1Click(Sender: TObject); begin ModalResult := mrCancel; end;end.
下面我测试过 program Project1;uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {frm_MDI};{$R *.res}begin Application.Initialize; if doLogin then begin Application.CreateForm(Tfrm_MDI,frm_MDI); Application.Run; end else application.terminate;end. {=============================================================} unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; function doLogIn:boolean; implementation{$R *.dfm} function doLogIn:boolean; begin with TForm1.create(application) do begin if ShowModal = mrok then result := true else result := false; free; end; end;procedure TForm1.BitBtn2Click(Sender: TObject); begin if 密码正确 then modalresult := mrok else ModalResult := mrCancel; end;procedure TForm1.BitBtn1Click(Sender: TObject); begin ModalResult := mrCancel; end;end.
MDI.show
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
Application.Initialize;
try
form2:=Tform2.Create(application);
form2.ShowModal ;
finally
if form2.Button1.ModalResult =1 then
Halt
else
begin Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm2, Form2);
application.Run;
end;
end;
end.procedure TForm2.Button1Click(Sender: TObject);
begin
//在此之前天加数据验证
self.ModalResult :=mrOk;end;procedure TForm2.Button2Click(Sender: TObject);
begin self.Button1.ModalResult:=mrcancel;
exit;
end;end.
FrmLogin := TfrmLogin.Create(nil);
Frmlogin.edtUser.Text := '00002';
if FrmLogin.ShowModal = 1 then
Application.CreateForm(TFrm_Main, Frm_Main);
Application.Run;
Application.ShowMainForm:=false;
如果正确
Application.ShowMainForm:=True;不正确
Application.MainForm.Close;
退出程序!
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {frm_MDI};{$R *.res}begin
Application.Initialize; Application.Run;
if doLogin then
begin
Application.CreateForm(Tfrm_MDI,frm_MDI);
Application.Run;
end
else
application.terminate;end.{========================================================}unit Unit1;interfaceuses ...;type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1; function doLogIn:boolean;
implementation{$R *.dfm}
function doLogIn:boolean;
begin
with TForm1.create(application) do
begin
if ShowModal = mrok then
result := true
else
result := false;
free;
end;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if 密码正确 then
modalresult := mrok
else
ModalResult := mrCancel;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ModalResult := mrCancel;
end;end.
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {frm_MDI};{$R *.res}begin
Application.Initialize; if doLogin then
begin
Application.CreateForm(Tfrm_MDI,frm_MDI);
Application.Run;
end
else
application.terminate;end.
{=============================================================}
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1; function doLogIn:boolean;
implementation{$R *.dfm}
function doLogIn:boolean;
begin
with TForm1.create(application) do
begin
if ShowModal = mrok then
result := true
else
result := false;
free;
end;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if 密码正确 then
modalresult := mrok
else
ModalResult := mrCancel;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ModalResult := mrCancel;
end;end.