W
wapftgdss
Unregistered / Unconfirmed
GUEST, unregistred user!
orm1是主窗体,form2是登陆窗体,程序运行后,本应该先由登陆窗体判断用户和密码
是否正确,如果正确就进入主窗体,同时关闭登陆窗体。如果错误就重新输入,
有三次机会,三次输入错误就自动退出。
但现在的情况是程序运行后主窗体与登陆窗体同时可见,登陆窗体在主窗体的上面,
但可以直接对主窗体进行操作,无须登陆窗体的认证。
请各位帮帮忙,给予指正。以下是部分程序代码。
主窗体form1的FormShow事件:
procedure TForm1.FormShow(Sender: TObject);
begin
application.CreateForm(tform2,form2);
Form2.ShowModal;
end;
登陆窗体form2的全部代码:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
edit1: TEdit;
edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
n:integer;
FormCanClose:Boolean;
implementation
uses Unit3,unit1;
{$R *.dfm}
procedure TForm2.BitBtn1Click(Sender: TObject);
//登陆窗体的确定按纽事件
begin
if dm.Tadopassword.FieldByName('name').Text<>edit1.Text then
begin
n:=n-1;
Messagebox(handle,pchar('用户名错误,还有'+inttostr+'次机会!'),'警告!',MB_ICONWARNING);
if n=0 then exit;
edit1.Clear;
edit2.Clear;
end
else if dm.Tadopassword.FieldByName('key').Text<>edit2.Text then
begin
n:=n-1;
Messagebox(handle,pchar('密码错误,还有'+inttostr+'次机会!'),'警告!',MB_ICONWARNING);
if n=0 then exit;
edit2.Clear;
end
else
begin
//close;
FormCanClose := True;
form1.show;
end;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
//登陆窗体的取消按纽事件
begin
close;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
n:=3;
FormCanClose:=false;
end;
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
canclose:=FormCanClose;
end;
end.
是否正确,如果正确就进入主窗体,同时关闭登陆窗体。如果错误就重新输入,
有三次机会,三次输入错误就自动退出。
但现在的情况是程序运行后主窗体与登陆窗体同时可见,登陆窗体在主窗体的上面,
但可以直接对主窗体进行操作,无须登陆窗体的认证。
请各位帮帮忙,给予指正。以下是部分程序代码。
主窗体form1的FormShow事件:
procedure TForm1.FormShow(Sender: TObject);
begin
application.CreateForm(tform2,form2);
Form2.ShowModal;
end;
登陆窗体form2的全部代码:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
edit1: TEdit;
edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
n:integer;
FormCanClose:Boolean;
implementation
uses Unit3,unit1;
{$R *.dfm}
procedure TForm2.BitBtn1Click(Sender: TObject);
//登陆窗体的确定按纽事件
begin
if dm.Tadopassword.FieldByName('name').Text<>edit1.Text then
begin
n:=n-1;
Messagebox(handle,pchar('用户名错误,还有'+inttostr+'次机会!'),'警告!',MB_ICONWARNING);
if n=0 then exit;
edit1.Clear;
edit2.Clear;
end
else if dm.Tadopassword.FieldByName('key').Text<>edit2.Text then
begin
n:=n-1;
Messagebox(handle,pchar('密码错误,还有'+inttostr+'次机会!'),'警告!',MB_ICONWARNING);
if n=0 then exit;
edit2.Clear;
end
else
begin
//close;
FormCanClose := True;
form1.show;
end;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
//登陆窗体的取消按纽事件
begin
close;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
n:=3;
FormCanClose:=false;
end;
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
canclose:=FormCanClose;
end;
end.