我写好了一个MDI程序,现需要在MDI显示前出现登录窗口
以便判断登录名及密码,和用户权限,
请问如何解决!
多谢了
以便判断登录名及密码,和用户权限,
请问如何解决!
多谢了
解决方案 »
- 求助,DELPHI PANEL条件变色!
- 奇怪的 ado 文件不定时损坏的问题
- Advstringgrid的问题,我想让它的一个cell是checkbox.
- 有誰寫過條形碼系統?
- canvas中有没有画点的函数
- 请问:用delphi怎样来做一个网络检测器,访问网罗服务器的响应时间,用什么控件,或者该怎样编程?
- 如果判断鼠标按下的POS在某个窗口中?
- 关于时间的比较?
- 如何把文本转换为数据库?
- 有谁能提供f1book的帮助说明
- 为什么DELP的IMAGE不能加入GIF图片,我想加入不知有法吗?
- 我将TLabel改了一下,生成了dpk,安装的时候也没什么不对,但在标签栏上就是看不到,请问如何解决?
可以使登陆窗口与MDI 的MAI 主窗口都设为自动创建
然后在MID 的MAI 窗口的CREAT 事件中调用登陆窗口,此时再做权限判断
用户名密码也可以被关掉。
设置一个全局变量(用户名)如gs_username;
在显示登陆的时候判断
if gs_username<>'' then
.....登陆显示
在登陆成功后设置gs_username=你的用户名
就可以了,
Forms,
SysUtils,
var
vIndex : Integer;{$R *.res}begin
Application.Initialize;
Application.Title := '档案管理系统';
FlashFrm := TFlashFrm.Create(Nil);
FlashFrm.Show;
FlashFrm.Update;
DataModuleFrm := TDataModuleFrm.Create(Nil);
FlashFrm.Update;
for vIndex := 1 to 10 do
begin
Sleep(200); //1000 = 1S
FlashFrm.Update;
end;
LoginFrm := TLoginFrm.Create(Nil);
FlashFrm.Update;
FlashFrm.Free;
LoginFrm.ShowModal;
{ loginFrm里边写事件就可以了。
还有,这个loginFrm要设置为普通的窗体,不要设置为MDI子窗体。}
Application.CreateForm(TMainFrm, MainFrm);
1.gs_username全局变量定义在哪个窗体内?何时给它赋值。
2.能实现先出现登录窗体,登录后再出现主窗体的效果吗?不好意思,如果你能给出个小例子就更好了
在此先谢过了
if startExe('进销存管理系统') then begin
Application.Initialize;
Application.Title :='进销存管理系统';
Application.CreateForm(TDm, Dm);
Application.CreateForm(TMainFm, MainFm);
LoginFm :=TLoginFm.create(nil);
loginfm.Showmodal; Application.CreateForm(TMainFm, MainFm);
//dm.ShopCon.Connected := True;
Application.Run;
end;可是提示”cann't not make a visible widows modal“如果我改loginfm.show;
则loginfm不显未而只接进入到MDI主窗体啊。
请问怎么回事啊
(在project-->options-->antuo create forms中不出現即可),然後在
祝窗口的onshow事件中創建登陸窗口,並判斷用戶名和密碼,如果正確把輸入的用戶名賦值給
祝窗口中的變量,然後根據權限創建菜單
1.我要在登录窗口的确定BUTTON时判断用户名和密码,如果正确则赋给GS_USERNAME
可是其它的呢,我还是不太明白.....希望你能我个例子。非常感谢!
设置一个全局变量(用户名)如gs_username;
在显示登陆的时候判断
if gs_username<>'' then
.....登陆显示
在登陆成功后设置gs_username=你的用户名
//
gs_username你可以在数据模块中定义啊
登录成功后你可以将gs_username设置你进入的用户名,然后关闭登录窗口
你在程序中还可以使用“注销”功能,这时将gs_username='',登录窗口又会出现了gs_username前加上数据模块的名称,如 数据模块名称.gs_username
清楚了吗,你先做,在说
form2 := tform2.create(application);
form2.showmodal; Application.CreateForm(TForm1, Form1);
Application.Run;form2是登陆窗口,设置为不要自动创建,form1是主窗口
if startExe('进销存管理系统') then begin
Application.Initialize;
Application.Title :='进销存管理系统';
Application.CreateForm(TDm, Dm);
Application.CreateForm(TMainFm, MainFm); //将这句去掉就可以了
LoginFm :=TLoginFm.create(nil);
loginfm.Showmodal; Application.CreateForm(TMainFm, MainFm);
//dm.ShopCon.Connected := True;
Application.Run;
end;可是提示”cann't not make a visible widows modal“如果我改loginfm.show;
则loginfm不显未而只接进入到MDI主窗体啊。
请问怎么回事啊
procedure TMainFm.FormPaint(Sender: TObject);
begin
LoginFm :=TLoginFm.create(mainfm);
if dm.Login_UserName<>'' then begin
loginfm.Show;
end else begin
dm.Login_UserName:='';
loginfm.Close ;
end;
end;
可是主窗体显示出来了同时显示了登录窗口,我想得到如下登录顺序:先显示登录窗口再显示
MDI主窗口。
上边的代码如果我把loginfm.showmodal便报错:cann't make a visible windows modal;
loginfm不是自动创建,在project->option-》loginfm不自动创建登录窗口的确定按钮代码如下:
procedure TLoginFm.BtnOkClick(Sender: TObject);
var sPower:string;
begin
sPower :=Login(EtLoginid.Text,EtPW.Text);
if sPower='' THEN begin
msg('密码错误!','错误',2,0);
exit;
end else if sPower='0' then begin //一般操作 员
mainfm.N1.Visible :=false;
loginfm.close;
end else if sPower='1' then begin //管理员权限
loginfm.close;
end;
dm.Login_UserName:=EtLoginID.Text ;end;你能给我一个小例子吗
非常感谢。
2. 项目单元如下:
begin
Application.Initialize;
Application.ShowMainForm:=false; //程序不显示主窗口
Application.CreateForm(TForm_main, Form_main);
Application.CreateForm(TForm_money, Form_money);
//注意,Form_money的visible必须为false
Application.Run;
end.
3. Main单元的OnCreate如下:
begin
Form_login:= TForm_login.Create(Application); //创建登陆窗口
if Form_login.ShowModal=mrOK then self.show //登陆的密码正确,则显示自己
else Application.Terminate; //否则,程序结束
end;
4. login单元的Button的onClick如下:
begin
if 密码正确 then ModalResult:=mrOK //密码正确,关闭自己,返回值mrOK
else //除了ModalResult:=mrOK以外,随你写了
end;被ShowModal的窗体,只要有ModalResult:=[mrOK,mrCancel,mrAbort,..]等,就会自动关闭,并返回相应的值。
还是提示error : cann't make a visible widows modal
3. Main单元的OnCreate如下:
begin
Form_login:= TForm_login.Create(Application); //创建登陆窗口
form_login.showmodal; //密码正确错误全在登陆窗口中判断,关闭程序也在登陆窗口中完成,main窗体只负责调用登陆窗口,并显示自身
end;
你肯定在这之前设置了窗体的show,单步调试一下看看