delphi 问题
计划是做一个密码登录的界面出来,当用户输入正确时可以进入,输入错误出现提示,错误超过三次则自动退出。我这里出现的问题是,输入正确能够进入,可是输入错误则不出现提示。以下是...
计划是做一个密码登录的界面出来,当用户输入正确时可以进入,输入错误出现提示,错误超过三次则自动退出。
我这里出现的问题是,输入正确能够进入,可是输入错误则不出现提示。
以下是具体的代码
var
t:integer=0;
procedure TForm1.Button1Click(Sender: TObject);
begin
t:=t+1;
guanli.adoTable1.Open;
if guanli.adoTable1.Locate('user_id',combobox1.Text,[]) then
if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
begin
form1.hide;
form2.Show;
end
else
begin
beep;
showmessage('账号或密码错误,请重新输入');
combobox1.Clear;
edit1.Clear;
if t=3 then
begin
beep;
showmessage('账号或密码输入错误超过3次,自动退出');
form1.Close;
end
end;
form2.Label3.Caption:=combobox1.Text;
end;
明白了!受教。。。 展开
我这里出现的问题是,输入正确能够进入,可是输入错误则不出现提示。
以下是具体的代码
var
t:integer=0;
procedure TForm1.Button1Click(Sender: TObject);
begin
t:=t+1;
guanli.adoTable1.Open;
if guanli.adoTable1.Locate('user_id',combobox1.Text,[]) then
if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
begin
form1.hide;
form2.Show;
end
else
begin
beep;
showmessage('账号或密码错误,请重新输入');
combobox1.Clear;
edit1.Clear;
if t=3 then
begin
beep;
showmessage('账号或密码输入错误超过3次,自动退出');
form1.Close;
end
end;
form2.Label3.Caption:=combobox1.Text;
end;
明白了!受教。。。 展开
2个回答
展开全部
请问下你的combobox1.Text 是不是设置了可以输入的?
如果你在combobox1.Text 这里面就输错了就不会提示,如果只是edit1.Text这里输错了就有提示。
if guanli.adoTable1.Locate('user_id',combobox1.Text,[]) then
if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
建议改成
if (guanli.adoTable1.Locate('user_id',combobox1.Text,[]))and
(trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString) then
我没测试过,不过看起来如此。
如果你在combobox1.Text 这里面就输错了就不会提示,如果只是edit1.Text这里输错了就有提示。
if guanli.adoTable1.Locate('user_id',combobox1.Text,[]) then
if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
建议改成
if (guanli.adoTable1.Locate('user_id',combobox1.Text,[]))and
(trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString) then
我没测试过,不过看起来如此。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
展开全部
if guanli.adoTable1.Locate('user_id',combobox1.Text,[]) then
if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
begin
form1.hide;
form2.Show;
end
else
你的else执行的是if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
这句话的else 0.0
还有你可以直接判断账号密码。不用分开来。。可以这么写
locate('user_id;User_Pass',vararrayof([combobox1.Text,edit1.text]),[]) then//设User_Pass为密码字段,locate前面的我就省略了.
这样可以判断账号和密码是否存在在同一条数据内。。你那样判断。如果匹配的时候可能会出问题的。
if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
begin
form1.hide;
form2.Show;
end
else
你的else执行的是if trim(edit1.Text)=guanli.adoTable1.Fields[1].AsString then
这句话的else 0.0
还有你可以直接判断账号密码。不用分开来。。可以这么写
locate('user_id;User_Pass',vararrayof([combobox1.Text,edit1.text]),[]) then//设User_Pass为密码字段,locate前面的我就省略了.
这样可以判断账号和密码是否存在在同一条数据内。。你那样判断。如果匹配的时候可能会出问题的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询