有那位能提供我一个原代码,form1为主窗口,form2为密码验证窗口,通过密码验证前显示form2,通过密码验证之后显示form1,关闭验证窗口。没办法,我水

  • 主题发起人 主题发起人 dreamblue
  • 开始时间 开始时间
D

dreamblue

Unregistered / Unconfirmed
GUEST, unregistred user!
有那位能提供我一个原代码,form1为主窗口,form2为密码验证窗口,通过密码验证前显示form2,通过密码验证之后显示form1,关闭验证窗口。没办法,我水平太差了。(20分)<br />如 上
 
数据库的表名是pas.db
user字段值kent
mima字段值dd
 
先在Project OPtion立设置form2为Available forms;再在form2中置入button1,edit1

给button的onclick添加如下:
if form2.edit1.text&lt;&gt;'abcd' then
exit;
else
begin
form2:=Tform2.create(self);
form2.show;
form2.free;
end;
 
這都不想自己寫﹐怎么寫后面的程序呢﹖自己寫吧﹐以前也有這樣的貼子﹐找一下也行。
 
不是我不写,我写的通不过
是这样的,我有两个form,form1有edit1和edit2,以及一个确定的button,还有一个query.
我的数据库表名是pas.db,里面有两个字段,一个user,一个mima
我的button的动作如下,
begin
with query1 do
begin
close;
sql.clear;
sql.add('select user,mima from pas.db where user=:user and mima=:mima');
params[0].asstring:=edit1.text;
params[1].asstring:=edit2.text;
open;
if query1.recordcount&gt;0 then
begin
form1.hide;
form2.show;
end
else
showmessage('您输入的用户名或密码错误');
edit1.text:='';
edit2.text:='';
end;

怎么就是通不过呢,万分苦恼中。
 
program StarNetClub;

uses
Forms,
FormMain in 'FormMain.pas' {MainForm},
FormOfLogin in 'FormOfLogin.pas' {LoginForm},
DmForLogin in 'DmForLogin.pas' {DMLogin: TDataModule};

{$R *.res}
type
Tuser=class
name:string;
pass:string;
end;
var
allowlogin:boolean;
user:tuser;

begin

while not allowlogin do
begin
loginform:=tloginform.Create(application);
if loginform.ShowModal=2 then
begin
loginform.Free ;
exit;
end;
//在loginform中对user对象各变量赋值,代码自己完成.不过最好将对象tuser的定义写在单独的一个UNITS里,在各FORM中USES.
if (user.Name='') or (user.Pass='') then
begin
application.MessageBox('您的输入有误,请重新确认您的输入!','错误');
end
else
allowlogin := true;
end;

//验证身份
//dmlogin:=tdmlogin.Create(application);
//在这里使用dmlogin中的QUERY控件来查询数据库,如果和输入相符,则转入下一步执行,否则可以使用EXIT退出程序.
//相应的代码自己完成.



Application.Initialize;

Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
 
easy!!!
在form1的onshow事件里Showmodal form2不就可以了吗?
 
begin
with query1 do
begin
close;
sql.clear;
sql.add('select user,mima from pas.db where user=:user and mima=:mima');
params[0].asstring:=edit1.text;
params[1].asstring:=edit2.text;
open;
if recordcount&gt;0 then begin
form1.hide;
form2.show;
end
else begin
showmessage('您输入的用户名或密码错误');
edit1.text:='';
edit2.text:='';
end;
end;
end;
改了一下﹐你哪兒通不過﹐總得把那一行划出來嘛。
 
难道大富翁的人都不会吗?
我是初学者,你们都是高手,这点小问题都不能解决。
看来今天高手睡觉去了。
 
to:dreamblue

照我说的去做,准没错,这是从我的程序代码里精简出来的.

 
呵呵,其实我的代码没写错,只是数据库用了uers这个关键字,找到答案了。
不过,还谢谢大家了。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部