现在我要写个密码框(50分)

  • 主题发起人 主题发起人 ilovedelphi3
  • 开始时间 开始时间
I

ilovedelphi3

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我要写个密码框,要求连续输入三次错误,则推出
程序,如三次中有一次正确则进入程序,这么个不复杂的
程序也搞的我头疼,希望大家帮忙解决,语句最好简单点,
通用性强些,因为我要用到PB中的。

谢谢!
 
i := 0;
while i < 3 do begin
弹出对话框,输入密码
if 密码不对 then begin
提示“密码不对”
i := i + 1
end else begin
提示“通过”
i := 100;
end;
if i = 3 then begin
提示:非法用户!
退出程序
end
 
在密码框窗口的"确认"按钮事件里面:
if 密码正确 then
close //结束密码框窗口
else
begin
self.tag:=self.tag+1;
if self.tag=3 then halt(0);
end;
 
cakk,PB中的TAG属性和DELPHI中的TAG好象有点不同。

另外,问一声,在PB中i := 0;这样的定义应该在那里定义?用啥定义?
 
var
n:integer;
s:string;
在程序创建时: n:=0;
再按钮事件中:
n:=n+1;
if s<>密码 then
begin
if n>=3 then
begin
showmessage('非法用户,请退出');
Form1.free;
end
else
Form1.Edit1.text:='';
end
else
begin
Form2:=TForm2.create(application);
Form2.show
end

 
最好对密码简单地加一下密,否则很容易,呵呵!
 
应该是定义一个全局变量,用来控制用户CLICK OK的次数!
 
对密码输入次数设个计数器就是了。 正确的密码显然一定是最后一次输入的,
只要判断一下(计数器<=最大重试次数)就可以了。

而对错误若干次就退出,则只要在弹出输入框之前判断一下
(计数器<=最大重试次数)就行了。
 
先将密码存入注册表;把记数变量number设为全局变量。这样一来可
使其初始化时为0。
procedure tpasswordform.buttonokclick(sender:tobject);
var passwordregistry:tregistry
passwordstr:string;
begin
passwordregistry:=我的电脑/hkey_current_config/password;{假设密码存放在这里}
passwordregistry.opekey('',false);{打开此分枝}
passwordstr:=passwordregistry.readstring('mypassword');{password下有一个主键,
密码就放在mypassword
主键下}
if editpasswrlogin.text<>passwordstr then
begin
inc(number);
if number=3 then application.terminate;
end
else passwordform.modalresult:=1;
end;
最后修改项目文件:
......
begin
formpassword:=tformpassword.create(application);
if formpassword.modalresult=1 then
begin
application.createform(tform1,form1);
.......
.......
application.run

end
else showmessage('密码错误,请重新输入');
完了,啊!用了好多好多时间!你一定要给我分分喔!
 
多人接受答案了。
 
后退
顶部