delphi中的赋值
withDataModule.ADOQuery1dobeginClose;SQL.Clear;SQL.Add('selectqxfrom用户表wherepwd='''+l...
with DataModule.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select qx from 用户表 where pwd='''+login_Form.Edit2.Text+'''');
Open;
qx:=DataModule.ADOQuery1.FieldByName('qx').Value;
login_Form.Edit2.Text是登录窗体中的。这段代码我放在main_form中。但是没有提示错误,但实际上qx没有被赋值 为什么?
if login_Form.Edit1.Text='admin' then...
但是上边的语句在main_Form中是可以调用的。login_Form是登录窗体,登录之后转到主窗体,同时登录窗体隐藏。所以应该是可以调用的
还是不太明白,请高手再拯救我.....
我的本意是想把登录窗体的用户名和密码先存起来,等一下可以判断权限,然后登录窗体就可以关掉了(如果没关掉会不会产生危险,我是当心这个),要不还有什么其他的方法,可以判断权限,然后主窗体有些功能隐藏??...... 展开
begin
Close;
SQL.Clear;
SQL.Add('select qx from 用户表 where pwd='''+login_Form.Edit2.Text+'''');
Open;
qx:=DataModule.ADOQuery1.FieldByName('qx').Value;
login_Form.Edit2.Text是登录窗体中的。这段代码我放在main_form中。但是没有提示错误,但实际上qx没有被赋值 为什么?
if login_Form.Edit1.Text='admin' then...
但是上边的语句在main_Form中是可以调用的。login_Form是登录窗体,登录之后转到主窗体,同时登录窗体隐藏。所以应该是可以调用的
还是不太明白,请高手再拯救我.....
我的本意是想把登录窗体的用户名和密码先存起来,等一下可以判断权限,然后登录窗体就可以关掉了(如果没关掉会不会产生危险,我是当心这个),要不还有什么其他的方法,可以判断权限,然后主窗体有些功能隐藏??...... 展开
若以下回答无法解决问题,邀请你更新回答
展开全部
1、login_Form是定义在登录窗体中的一个全局变量:
var login_Form:Tlogin_Form;
2、login_Form的所在单元被uses在了你的main_form中,而且,你的login_Form应该是在程序启动时自动创建的:
Application.createForm(TLogin_Form,login_Form)
所以,main_form可引用login_Form窗体变量而不会出错,但这时,login_Form.Edit2.Text的值为空而已。
=================================================================
在Main_Form中是可以调用Login_Form的啊,因为login_Form的unit被uses在Main_Form中了。
=================================================================
再补充:
你这个需求其实很简单的。
1、先将登录窗体和主窗体都设置非自动创建。需要时手工创建,灵活。(不知道怎么设置?project----->options---->auto-create forms)
2、将将登录窗体和主窗体设置为关闭时自动释放内存:
procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=caFree;
end;
3、写确定按钮事件:
onClick:
begin
modalResult:=mrOk;
end;
4、先显示登录窗体:
loginForm:=TLoginForm.create(Application);
//如果没有按确定按钮,则退出程序
if loginForm.showModal()<>mrOK then
begin
//退出程序
application.terminate;
exit;
end;
5、取出用户名和密码:
userName:=trim(edtUserName.text);
password:=trim(edtpassword.text);
6、写你用户身份校验和权限校验:
..........
7、显示主窗体:
mainForm:=TMainForm.create(Application);
mainForm.show();
var login_Form:Tlogin_Form;
2、login_Form的所在单元被uses在了你的main_form中,而且,你的login_Form应该是在程序启动时自动创建的:
Application.createForm(TLogin_Form,login_Form)
所以,main_form可引用login_Form窗体变量而不会出错,但这时,login_Form.Edit2.Text的值为空而已。
=================================================================
在Main_Form中是可以调用Login_Form的啊,因为login_Form的unit被uses在Main_Form中了。
=================================================================
再补充:
你这个需求其实很简单的。
1、先将登录窗体和主窗体都设置非自动创建。需要时手工创建,灵活。(不知道怎么设置?project----->options---->auto-create forms)
2、将将登录窗体和主窗体设置为关闭时自动释放内存:
procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=caFree;
end;
3、写确定按钮事件:
onClick:
begin
modalResult:=mrOk;
end;
4、先显示登录窗体:
loginForm:=TLoginForm.create(Application);
//如果没有按确定按钮,则退出程序
if loginForm.showModal()<>mrOK then
begin
//退出程序
application.terminate;
exit;
end;
5、取出用户名和密码:
userName:=trim(edtUserName.text);
password:=trim(edtpassword.text);
6、写你用户身份校验和权限校验:
..........
7、显示主窗体:
mainForm:=TMainForm.create(Application);
mainForm.show();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询