delphi如何在独立单元中定义全局变量?
我是新手,刚学delphi,各位大侠帮帮忙。现在做了一个登录系统,当验证身份成功后,需要把用户名赋值给全局变量,当子窗体需要签名时把全局变量赋值给相应控件。网友推荐的方法...
我是新手,刚学delphi,各位大侠帮帮忙。现在做了一个登录系统,当验证身份成功后,需要把用户名赋值给全局变量,当子窗体需要签名时把全局变量赋值给相应控件。网友推荐的方法是:新建一个没有窗体的单元,把全部全局变量包含进去,在需要加入全局变量的单元里uses这个单元。我新建单元如下:unit Unit2;interfacevar username:string;endimplementationend.
username是全局变量,但运行时显示错误,大意是声明了username变量但没有使用:[Hint] Unit2.pas(5): Variable 'username' is declared but never used in 'Unit2'我希望的是在程序运行中动态赋值,应该如何定义这个新单元和全局变量呢? 展开
username是全局变量,但运行时显示错误,大意是声明了username变量但没有使用:[Hint] Unit2.pas(5): Variable 'username' is declared but never used in 'Unit2'我希望的是在程序运行中动态赋值,应该如何定义这个新单元和全局变量呢? 展开
2013-08-23
展开全部
就如网友所说 File->new->unit,先新建一个单元文件,然后取一个名字,我的取名为U_common。U_common的代码如下:unit U_common;interfaceuses Forms,Classes,Windows,Controls;//这里要根据实际需要添加相应的类。 var pub_username : string; //用户姓名 pub_userId : string; //用户ID
pub_userRights : string; //用户权限
pub_userGrade : string; //用户级别 implementation end; 然后你在用户登录界面的users 部分引用u_common然后在用户登录成功后的事件中写如下代码: with Adoquery1 do begin Close; sql.clear; //users 是你实际的用户表名 E_userid.text 是用户登录界面输入用户id的编辑框名称 sql.add('SELECT * FROM USERS WHERE USERID = '''+E_userid.text+''' AND PASSWORD = '''+E_password.text+''''); open; if RecordCount > 0 then begin pub_username := Adoquery1.FieldByName('username').Asstring; pub_userId := Adoquery1.FieldByName('userid').Asstring; pub_userRights := Adoquery1.FieldByName('userrights').Asstring;
pub_userGrade := Adoquery1.FieldByName('usergrade').Asstring; end; end; 最后,你想在那个窗体调用已登陆信息,比如要取用户名或用户id那么就在本窗体的Uses 中引入 U_common,然后直接将pub_username pub_userid等全局变量赋值给相应的控件或者变量就ok了!
pub_userRights : string; //用户权限
pub_userGrade : string; //用户级别 implementation end; 然后你在用户登录界面的users 部分引用u_common然后在用户登录成功后的事件中写如下代码: with Adoquery1 do begin Close; sql.clear; //users 是你实际的用户表名 E_userid.text 是用户登录界面输入用户id的编辑框名称 sql.add('SELECT * FROM USERS WHERE USERID = '''+E_userid.text+''' AND PASSWORD = '''+E_password.text+''''); open; if RecordCount > 0 then begin pub_username := Adoquery1.FieldByName('username').Asstring; pub_userId := Adoquery1.FieldByName('userid').Asstring; pub_userRights := Adoquery1.FieldByName('userrights').Asstring;
pub_userGrade := Adoquery1.FieldByName('usergrade').Asstring; end; end; 最后,你想在那个窗体调用已登陆信息,比如要取用户名或用户id那么就在本窗体的Uses 中引入 U_common,然后直接将pub_username pub_userid等全局变量赋值给相应的控件或者变量就ok了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询