我有一个工程,主窗体用的是MDI。在这基础上我又做了一个用户登录窗体,用的是SDI窗体。我想让用户登录成功之后,直接进入MDI这个窗体。现在的问题是能进入,但一运行MDI窗体中各子模块时,就提示“没有活动MDI窗体之类“的错误!
怎样才能实现我上述所说的功能呢?
另:当SDI窗体运行时,怎样让用户不能更改窗体的大小呢?
谢谢!
怎样才能实现我上述所说的功能呢?
另:当SDI窗体运行时,怎样让用户不能更改窗体的大小呢?
谢谢!
2、设置窗体的BorderStyle为bsDialog。
begin
Application.Initialize;
with TSplashFrm.Create(Application) do
try
MakeSplash;
Application.Title := 'XX管理系统';
Application.CreateForm(TMainFrm, MainFrm); //主窗体,也就是你的MDI父窗体
Application.CreateForm(TNormalFrm, NormalFrm);
Close;
finally
Free;
end; with TLoginFrm.Create(Application) do //然后创建登录窗体
try
ShowModal;
finally
Free;
if ModalResult = mrOK then
Application.Run
else
Application.Terminate;
end;
end.
begin
Application.Initialize;
with TSplashFrm.Create(Application) do
try
MakeSplash;
Application.Title := 'XX管理系统';
Application.CreateForm(TMainFrm, MainFrm); //主窗体,也就是你的MDI父窗体
Application.CreateForm(TNormalFrm, NormalFrm);
Close;
finally
Free;
end; with TLoginFrm.Create(Application) do //然后创建登录窗体
try
ShowModal;
finally
Free;
if ModalResult = mrOK then
Application.Run
else
Application.Terminate;
end;
end.
if ModalResult = mrOK then
出现以下错误:
[Error] WHJXC.DPR(50): Undeclared identifier: 'mrOK'
Controls,
Forms,
begin
ShowModal;
if ModalResult = mrOK then
Application.Run;
end;
请问你uses
Controls,
Forms,是在哪里加上去的,我在主工程里加的,怎么不行啊!再帮帮我吧!
然后再MDI OnShow事件里面添加代码 form1.showmodal;就可以实现了
Controls,
Forms,
Main in 'Frm\Main.pas' {MainFrm},
Splash in 'Frm\Splash.pas' {SplashFrm},
Login in '..\Share\Units\Login.pas' {LoginFrm};{$R *.res}begin
Application.Initialize;
with TSplashFrm.Create(Application) do
try
MakeSplash;
Application.Title := 'XX管理系统';
Application.CreateForm(TMainFrm, MainFrm);
Close;
finally
Free;
end; with TLoginFrm.Create(Application) do
try
ShowModal;
finally
Free;
if ModalResult = mrOK then
Application.Run
else
Application.Terminate;
end;
end.
请问你的这个语句是用来做什么的:
Splash in 'Frm\Splash.pas' {SplashFrm},
再帮助我解答一下吧!
这句相当于变量声明,即SplashFrm在哪个单元里。D自动给你加上的。
program whjxc;uses
Controls,
Forms,
Main in 'Main.pas' {frmMain},
dm in 'DM.PAS' {whdata: TDataModule},
cgcx in 'cgcx.pas' {frm_cgcx},
childwin in 'CHILDWIN.PAS' {mdichild},
ckcx in 'ckcx.pas' {frm_ckcx},
wh_spbm1 in 'wh_spbm1.pas' {spbm1},
pdcx in 'pdcx.pas' {frm_pdcx},
kctj in 'kctj.pas' {wh_cktj},
kccx in 'kccx.pas' {frm_kccx},
wh_spbm2 in 'wh_spbm2.pas' {spbm2},
wh_spbm in 'wh_spbm.pas' {spbm},
cgrk in 'cgrk.pas' {wh_cgrk},
kmcx in 'kmcx.pas' {frm_kmcx},
zybm in 'zybm.pas' {frm_zybm},
kfbm in 'kfbm.pas' {frm_kfbm},
whspbm in 'whspbm.pas' {wh_jbspbm},
khgysbm in 'khgysbm.pas' {wh_khgysbm},
xsck in 'XSCK.PAS' {wh_xsck},
kcpd in 'KCPD.PAS' {wh_kcpd},
login in 'login.pas' {frm_login},
fregister in 'fregister.pas' {Form1},
register in 'register.pas' {AboutBox},
pdqb in 'pdqb.pas' {frm_pdqb},
logon in 'logon.pas' {wh_logon};{$R *.res}begin
Application.Initialize;
Application.Title := '五环进销存';
Application.CreateForm(Twhdata, whdata);
Application.CreateForm(Twh_logon, wh_logon);
Application.CreateForm(TfrmMain, frmMain);
if NoRegistry then
begin
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TAboutBox, AboutBox);
end
else
Application.CreateForm(TfrmMain, frmMain);
with Twh_logon.Create(Application) do //然后创建登录窗体
try
ShowModal;
finally
Free;
if ModalResult = mrOK then
Application.Run
else
Application.Terminate;
end;
//Application.Run;
end.
Application.Initialize;
Application.Title := '五环进销存';
Application.CreateForm(TfrmMain, frmMain); //这个应该是主窗体吧,要
第一个被创建!
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TAboutBox, AboutBox);
// Application.CreateForm(TfrmMain, frmMain); //这里就不用了 with Twh_logon.Create(Application) do //然后创建登录窗体
try
ShowModal;
finally
Free;
if ModalResult = mrOK then
begin
if NoRegistry then
begin
Form1.Show; //在Form1中的操作成功后,就Application.Run
end
else
Application.Run
else
Application.Terminate;
end;
//Application.Run;
end.
cancle 里面写 mainform1.close;关闭主窗口。那个登入窗口也就关闭了
ok里面写 form1.close 关闭这个登入窗口,那个主窗口就出来了