编译时无语法错误,运行成功后输入密码后就出现以上问题,而提示3次后则退出系统。
相应代码如下:
type
***********
private
i:integer;//密码循环三次
{ Private declarations }
public
{ Public declarations }
end;
var
login: Tlogin;
implementation
uses F_main, Fdm;
{$R *.dfm}
procedure Tlogin.FormCreate(Sender: TObject);
begin
dm.ADO_users.open;
end;
procedure Tlogin.FormShow(Sender: TObject);
begin
ComboBox1.Items.Clear;
Adoquery1.Close;
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add('select 用户名 from users');
Adoquery1.Open;
with Adoquery1 do
while not eof do
begin
ComboBox1.Items.Add(fieldbyname('用户名').AsString );
next;
end
end;
//确定
procedure Tlogin.SpeedButton1Click(Sender: TObject);
var
kl,k2:variant;
pass,right,username:string;
begin
username:=Combobox1.text;
dm.ADO_users.Open;
kl:=dm.ado_users.lookup('用户名',username,'密码');
k2:=dm.ado_users.lookup('用户名',username,'权限');
if varisnull(kl) then pass:='' else pass:=kl;
if varisnull(k2) then right:='' else right:=k2;
if edit1.text<>pass then
begin
i:=i+1;
if i>=3 then
begin
Application.MessageBox(PChar('密码验证错误,拒绝访问!'), PChar('提示'),
MB_ICONEXCLAMATION);
Application.Terminate;
close;
end;
application.messagebox(pchar('密码验证错误,重新录入!'),pchar('提示'),
MB_ICONQUESTION);
edit1.text:='';
edit1.SetFocus();
exit;
end;
if right = '管理员' then
begin
login.Hide;
main.ShowModal;
//根据用户获得的权限来确定能否操作相关窗口
Main.N1.Enabled:=true;
Main.N2.Enabled:=true;
Main.N3.Enabled:=true;
Main.N4.Enabled:=true;
Main.N5.Enabled:=true;
Main.N6.Enabled:=true;
Main.N7.Enabled:=true;
Main.SpeedButton3.Enabled:=true;
Main.SpeedButton4.Enabled:=true;
Main.SpeedButton5.Enabled:=true;
Main.SpeedButton6.Enabled:=true;
Main.SpeedButton7.Enabled:=true;
Main.SpeedButton8.Enabled:=true;
end
else
begin
login.Hide;
main.ShowModal;
Main.N1.Enabled:=true;
Main.N2.Enabled:=false;
Main.N3.Enabled:=true;
Main.N4.Enabled:=true;
Main.N5.Enabled:=false;
Main.N6.Enabled:=true;
Main.N7.Enabled:=true;
Main.N13.Enabled:=true;
Main.SpeedButton3.Enabled:=true;
Main.SpeedButton4.Enabled:=true;
Main.SpeedButton5.Enabled:=false;
Main.SpeedButton6.Enabled:=false;
Main.SpeedButton7.Enabled:=false;
Main.SpeedButton8.Enabled:=true;
end;
end;
end.
急!求救!!delphi中在登录验证中出错,无论输入密码错与对都提示“密码验证错误,重新录入!”为什么?
答案:5 悬赏:0 手机版
解决时间 2021-02-15 12:02
- 提问者网友:焚苦与心
- 2021-02-15 06:27
最佳答案
- 五星知识达人网友:等灯
- 2021-02-15 06:45
这样试试
if trim(edit1.text)<>trim(pass) then
你可以跟踪一下pass的值
if trim(edit1.text)<>trim(pass) then
你可以跟踪一下pass的值
全部回答
- 1楼网友:duile
- 2021-02-15 09:22
在b函数里错误引用了tform1类的eidt1对象。
应该在b纳入tform1中,
在public段中增加function b:string;的声明;
将b的字义改为:function tform1.b:string;
- 2楼网友:woshuo
- 2021-02-15 08:45
你的密码是否加密了?
- 3楼网友:深街酒徒
- 2021-02-15 08:35
bfghfghf
- 4楼网友:上分大魔王
- 2021-02-15 08:06
把那段提示,放到else语句块中。
... ...
if edit1.text<>pass then
begin
i:=i+1;
if i>=3 then
begin
Application.MessageBox(PChar('密码验证错误,拒绝访问!'), PChar('提示'),MB_ICONEXCLAMATION);
Application.Terminate;
close;
end //去掉分号
else
begin
application.messagebox(pchar('密码验证错误,重新录入!'),pchar('提示'),MB_ICONQUESTION);
edit1.text:='';
edit1.SetFocus();
exit;
end;
end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯