!!登陆!!
我想在完成的应用程序中添加登陆界面,如何设计结构最合理?要考虑注销。由于第一个创建的窗口总是Application.MainForm,所以我不知道如何是好。请帮忙。 问题点数:100、回复次数:8Top
1 楼l_xiaofeng(行到水窮處,坐看雲起時!)回复于 2002-11-17 00:04:45 得分 0
搜索一下有很多例子。Top
2 楼baby19820917()回复于 2002-11-17 00:09:26 得分 0
你可以在你的Application.MainForm 的onshow里加上就可以了。让他先显示你的登陆form .如果要注销的话就再让你的登陆form.show就不是可以了吗??
Top
3 楼cnsuyong(小可)回复于 2002-11-17 00:12:30 得分 80
经验:
1、可以在主窗口的OnShow事件中调用登陆函数,这样做对实现注销不利;
2、可以在主窗口的OnCreate事件中调用登陆函数,这样做对登陆失败处理不利;
3、可以在主窗口中用一个Timer来控制,这样做很方便,对于实现注销也很简单。
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
//Timer1的Interval应当尽量小
Timer1.Enabled := False;
if Login then begin
//初始化
end else begin
//登陆失败处理
Close;
end;
end;
如果要注销,则直接:
Timer1.Enabled := True;
即可。Top
4 楼hfycl(袒右)回复于 2002-11-17 00:47:46 得分 0
up一下Top
5 楼cgh1970(聊天别找我)回复于 2002-11-17 06:31:47 得分 0
upTop
6 楼hawksoft(明月清风)回复于 2002-11-17 08:40:36 得分 0
最好还是搜索一下,这个问题已经谈过很多次。
cnsuyong(小可)的方法不可取。因为注销牵扯到很多东西,如权限问题,界面用户化定义问题。建议登录在主窗体建立之前进行比较好。Top
7 楼nightroad(一年)回复于 2002-11-17 08:49:34 得分 0
兄弟,我不太理解你的注消是什么意思:)如果只是要加上一个登陆窗体那就比较好办:先NEW一个FORM,在project->options->forms,把Main form置为你的LOGIN FORM就可以了Top
8 楼xiaoyan21(明月心)回复于 2002-11-17 08:52:15 得分 20
给一个登录用户验证函数:
function TMainF.CheckUser(AUserName , AUserPwd : string):integer;
var
Query : TQuery;
begin
try
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('select * from tsyhb where UserName=:UserName');
Query.ParamByName('UserName').AsString := AUserName;
Query.Open;
if Query.RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit;
end else begin
if Query.FieldByName('UserPwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query.FieldByName('Class').AsInteger;
end;
Query.Close;
Query.Free;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;Top




