delphi 登陆界面后显示主窗体,受限于字数限制只能贴出来部分代码
目的就是做个登陆窗体,用户名密码正确后,显示主窗体,目前问题,编译在withTADOquery.create(nil)do出错,错误提示form1form2问题如下,我想...
目的就是做个登陆窗体,用户名密码正确后,显示主窗体,目前问题,编译在with TADOquery.create(nil) do
出错,错误提示
form1
form2
问题如下,我想知道,form1,和form2,想设置fomr1为父窗体,那么form2应该是哪个类型的窗体?我不清楚,是不是一定要是子窗体,帮忙看我下边的程序,哪里出错导致编译失败,该怎么改写?还有怎么实现目的,即先显示登陆窗体,登陆成功后,显示著窗体,问题完毕,程序如下
form2程序
procedure TForm2.Button1Click(Sender: TObject);var name,password,sqlstr:string;begin if (length(trim(edit1.Text))>0) or (length(trim(edit2.Text))>0) then begin name:=trim(edit1.Text); //取得用户输入的用户名 password:=trim(edit2.Text); //取得用户输入的密码 sqlstr:='select * from t_user where (username='''+name+''') and(userpass='''+password+''')'; with Tadoquery.create(nil) do try connection:=form1.adoconnection1; close; sql.clear; sql.add(sqlstr); open; if recordcount>0 then begin form2.close; form1.show; end else begin showmessage('用户名密码错误'); edit1.SetFocus; edit1.SelectAll; end;
finally free; end;
end else begin showmessage('请输入用户名密码'); edit1.SelectAll; end;end;
end. 展开
出错,错误提示
form1
form2
问题如下,我想知道,form1,和form2,想设置fomr1为父窗体,那么form2应该是哪个类型的窗体?我不清楚,是不是一定要是子窗体,帮忙看我下边的程序,哪里出错导致编译失败,该怎么改写?还有怎么实现目的,即先显示登陆窗体,登陆成功后,显示著窗体,问题完毕,程序如下
form2程序
procedure TForm2.Button1Click(Sender: TObject);var name,password,sqlstr:string;begin if (length(trim(edit1.Text))>0) or (length(trim(edit2.Text))>0) then begin name:=trim(edit1.Text); //取得用户输入的用户名 password:=trim(edit2.Text); //取得用户输入的密码 sqlstr:='select * from t_user where (username='''+name+''') and(userpass='''+password+''')'; with Tadoquery.create(nil) do try connection:=form1.adoconnection1; close; sql.clear; sql.add(sqlstr); open; if recordcount>0 then begin form2.close; form1.show; end else begin showmessage('用户名密码错误'); edit1.SetFocus; edit1.SelectAll; end;
finally free; end;
end else begin showmessage('请输入用户名密码'); edit1.SelectAll; end;end;
end. 展开
展开全部
提示的错误是找不到TADoQuery,没有引用单元,你在窗体中放一个TADoQuery可解决
更多追问追答
追问
你好,我对delphi不是很熟悉,我看书上说,动态创建Tadoquery,是不是在form2是不需要放adoquery控件了啊?如果要放adoquery控件,程序貌似也应该改成with TADOquery1.create(nil)do
追答
你的问题是出在没有引用TADOQuery这个类所在的单元,手动放一个这个控件到窗体,编译一下再删掉,可以自动帮你带出所需要的单元,就不会出错。
另外
with TADOquery1.create(nil)do
这是针对类的创建,不是Name属性
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询