永发信息网

急!求救!!delphi中在登录验证中出错,无论输入密码错与对都提示“密码验证错误,重新录入!”为什么?

答案:5  悬赏:0  手机版
解决时间 2021-02-15 12:02
编译时无语法错误,运行成功后输入密码后就出现以上问题,而提示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.
最佳答案
这样试试
if trim(edit1.text)<>trim(pass) then
你可以跟踪一下pass的值
全部回答

在b函数里错误引用了tform1类的eidt1对象。

应该在b纳入tform1中,

在public段中增加function b:string;的声明;

将b的字义改为:function tform1.b:string;

你的密码是否加密了?
bfghfghf
把那段提示,放到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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
游龙戏凤第三部第一章
方正县哈尔滨郭波动物诊所地址在哪,我要去那
名著阅读(3分)《战国策》简称《国策》,属
宁波市和宁海县有什么区别
亚当·斯密在《国富论》(1776)中曾有如下描
死刑犯临刑前性要求
画素描怎样使画面有层次?
眼白发青有红血丝是怎么回事?
飘台是什么?
枣庄到辽宁复兴市的火车票多少钱?
人类大量开采使用煤、石油、天然气等化石燃料
+51(0)8812333是什么电话号码
格兰仕微波炉启动故障
欧亚KTV在什么地方啊,我要过去处理事情
现在在大悟考驾照要多长时间
推荐资讯
翼年代记日文版漫画,清楚点的,链接或百度云
h3c s1850支持vlan吗
表达 除非遇见真正爱的人或者真正对的人不然
良心书单,十几年的老书虫,主打男频都市网络
利用疏导的方法,最终平定水患的是:A. 尧B.
诚信文具在哪里啊,我有事要去这个地方
如果换手机,重装微信,微信里的联系人不用备
帮邻居老奶奶提东西的日记
手机的存储结构是怎样,有点搞糊涂了
恒温干燥箱 YLE-3000使用 实际温度与测量温度
水稻生长后期,为防止灌溉后倒伏,应多施什么
月什么白,风什么清的诗句
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?