请教这个如何写:一个用户(edit1)和密码(edit2),要写一个过程,是判断输入密码是否正确的过程. ( 积分: 30 )

  • 主题发起人 主题发起人 xzb_97
  • 开始时间 开始时间
X

xzb_97

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,请兄弟们帮忙!
 
procedure TForm1.Button1Click(Sender: TObject);
begin
count:=count+1;
with query1 do
begin
close;
sql.clear;
sql.add('select * from user');
sql.add('where id=:username'); id用户名字段
sql.add('and paw=:passwd'); paw密码字段
parambyname('username').asstring:=edit1.text;
parambyname('passwd').asstring:=edit2.text;
prepare;
open;
end;
if mydata.paw.recordcount=0 then
begin
MessageDlg('登录失败!请检查用户名/密码!', mtInformation,[mbOk], 0);
if count=3 then
form1.close;
end
else
begin
halt;
end;
 
兄弟,太感谢了,我想你能不能用个procedure来封装判断密码的输入时候成功,然后再在Button1Click事件里面调用这个procedure,我就是这个不会写!
 
//声明
procdure CheckUser(UserName,UserPass:String);


//把上面的第一句改成
procdure TForm1.CheckUser(UserName,Passwd:String);


//调用
procedure TForm1.Button1Click(Sender: TObject);
begin
procedure CheckUser('小丽','123456');
end;
 
谢谢,马上给分,可我晕,借这个地方再说一下,同理,写个procedure,调用这个procedure,实现在窗体上绘制圆形的功能怎么弄????
 
首先在数据库中定义一个存储过程:(这样可以增加数据访问的速度)
Create Procedure CheckUser
@userid varchar(10),
@password varchar(10)
as
select userid from userlist where userid=@userid and password=@password
GO
然后在IDE下增加如下代码:
procdure TForm1.Check(UserName,Passwd:String);
begin
with adoqy do begin
close;
sql.clear;
sql.add('exec CheckUser :ht,:ht1');
Parameters.parameterbyname('ht').values:=UserName;
Parameters.parameterbyname('ht1').values:=Passwd;
sql.execsql;
if recordcount<1 then begin showmessage('登陆失败!');exit; end;
end;
end;
//调用
procedure TForm1.Button1Click(Sender: TObject);
begin
procedure Check('小丽','123456');
end;
 
兄弟,谢谢,我试试看速度,还有大家帮忙看看绘制圆形的问题!(再加20分,凑个50分,呵呵)!
 
procedure DrawEllipse(x,y:Integer;);
begin
Canvas.Pen.Color := clblue;
Canvas.MoveTo(x,y);

Canvas.Ellipse(x-10,y-10,x+10,y+10);
end;

//x,y为中心点

//调用
DrawEllipse(100,100);
 
Form具有Canvas,可以直接画图的
 
to Hydra0:
谢谢,我就是想把他分开写,觉得有一种封装的感觉(虽然是狗屁,哈哈!)!
谢谢大家,给分在即,不过这个问题是不是很菜啊???怎么觉得我对大家都是一种高山仰止的感觉???高手如此多!
 
那就按照Dong_HC的方法来写,实际就是用的Form的Canvas
 
多人接受答案了。
 
后退
顶部