我在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 ;
begin
if startExe('进销存管理系统') then begin
Application.Initialize;
Application.Title :='进销存管理系统';
Application.CreateForm(TDm, Dm);
Application.CreateForm(TMainFm, MainFm); //将这句去掉就可以了
LoginFm :=TLoginFm.create(nil);
loginfm.Showmodal;
begin
if startExe('进销存管理系统') then begin
Application.Initialize;
Application.Title :='进销存管理系统';
Application.CreateForm(TDm, Dm);
Application.CreateForm(TMainFm, MainFm);
LoginFm :=TLoginFm.create(nil);
loginfm.Showmodal;