我想用timer组件实现自动登陆,把timer的时间定位1000,当点击程序出现登陆界面,然后隔1000之后,自动响应登陆按钮的时间,出现主窗口.但是主窗体出现之后就不停的出现cannot make a visible window modal的对话框,一直出,不知道怎么解决.是个菜鸟,请各位网友指导一下,谢谢.40分
这个不是很难 看例子: program MT;uses Forms, controls, U_Main in 'Form\U_Main.pas' {Fm_Main}, U_DM in 'Form\U_DM.pas' {DM: TDataModule}, U_IdeSerialNumber in 'Form\U_IdeSerialNumber.pas', U_Des in 'Form\U_Des.pas', U_Globe in 'Form\U_Globe.pas', U_EditPass in 'Form\U_EditPass.pas' {Fm_EditPass}, U_Login in 'Form\U_Login.pas' {Fm_Login}, U_UpdateTM in 'Form\U_UpdateTM.pas' {Fm_UpdateTM}, U_SysObj in 'Form\U_SysObj.pas', u_DM1 in 'Form\u_DM1.pas' {Fm_DM}, U_ST_GL in 'Form\U_ST_GL.pas' {Fm_ST_GL}, U_ZW in 'Form\U_ZW.pas' {Fm_ZW}, U_TMQK in 'Form\U_TMQK.pas' {Fm_TMQK}, U_ST_Select in 'Form\U_ST_Select.pas' {Fm_ST_Select}, U_Public in 'Form\U_Public.pas', U_Select_MB in 'Form\U_Select_MB.pas' {FM_Select_MB}, U_Test_Paper in 'Form\U_Test_Paper.pas', Unit5 in 'Form\Unit5.pas' {Form5}, U_MB_M in 'Form\U_MB_M.pas' {FM_MBGL}, U_SJ_M in 'Form\U_SJ_M.pas' {FM_SJ}, U_updateMB in 'Form\U_updateMB.pas' {fm_UpdateMB}, U_UpdateXM in 'Form\U_UpdateXM.pas' {fm_UpdateXM}, U_MTServiceIntf in 'Form\U_MTServiceIntf.pas', U_PRO in 'Form\U_PRO.pas' {frm_pro}, U_showSJ in 'Form\U_showSJ.pas' {fm_showSJ}, U_SZ in 'Form\U_SZ.pas' {frm_SZ}, U_Parts in 'Form\U_Parts.pas' {fm_Parts}, U_Frame in 'Form\U_Frame.pas' {Doc: TFrame}, U_TXEdit in 'Form\U_TXEdit.pas' {fm_TXEdit};{$R *.res}begin Application.Initialize; Application.CreateForm(TFm_Main, Fm_Main); Application.CreateForm(TDM, DM); Application.CreateForm(TFm_Login, Fm_Login); Application.CreateForm(Tfm_TXEdit, fm_TXEdit); Fm_Main.Show; if Fm_Login.ShowModal=mrOK then begin fm_main.UpdateMainMenu(true); Application.CreateForm(TFm_EditPass, Fm_EditPass); Application.CreateForm(TFm_UpdateTM, Fm_UpdateTM); Application.CreateForm(TFm_DM, Fm_DM); Application.CreateForm(TFM_Select_MB, FM_Select_MB); Application.CreateForm(Tfm_UpdateMB, fm_UpdateMB); Application.CreateForm(Tfm_UpdateXM, fm_UpdateXM); Application.CreateForm(Tfm_showSJ, fm_showSJ); Application.CreateForm(Tfm_Parts, fm_Parts); end else application.Terminate; Application.Run; end.
用Show就行了,ShowModal只能用于非MDI CHILD的窗体。
program MT;uses
Forms,
controls,
U_Main in 'Form\U_Main.pas' {Fm_Main},
U_DM in 'Form\U_DM.pas' {DM: TDataModule},
U_IdeSerialNumber in 'Form\U_IdeSerialNumber.pas',
U_Des in 'Form\U_Des.pas',
U_Globe in 'Form\U_Globe.pas',
U_EditPass in 'Form\U_EditPass.pas' {Fm_EditPass},
U_Login in 'Form\U_Login.pas' {Fm_Login},
U_UpdateTM in 'Form\U_UpdateTM.pas' {Fm_UpdateTM},
U_SysObj in 'Form\U_SysObj.pas',
u_DM1 in 'Form\u_DM1.pas' {Fm_DM},
U_ST_GL in 'Form\U_ST_GL.pas' {Fm_ST_GL},
U_ZW in 'Form\U_ZW.pas' {Fm_ZW},
U_TMQK in 'Form\U_TMQK.pas' {Fm_TMQK},
U_ST_Select in 'Form\U_ST_Select.pas' {Fm_ST_Select},
U_Public in 'Form\U_Public.pas',
U_Select_MB in 'Form\U_Select_MB.pas' {FM_Select_MB},
U_Test_Paper in 'Form\U_Test_Paper.pas',
Unit5 in 'Form\Unit5.pas' {Form5},
U_MB_M in 'Form\U_MB_M.pas' {FM_MBGL},
U_SJ_M in 'Form\U_SJ_M.pas' {FM_SJ},
U_updateMB in 'Form\U_updateMB.pas' {fm_UpdateMB},
U_UpdateXM in 'Form\U_UpdateXM.pas' {fm_UpdateXM},
U_MTServiceIntf in 'Form\U_MTServiceIntf.pas',
U_PRO in 'Form\U_PRO.pas' {frm_pro},
U_showSJ in 'Form\U_showSJ.pas' {fm_showSJ},
U_SZ in 'Form\U_SZ.pas' {frm_SZ},
U_Parts in 'Form\U_Parts.pas' {fm_Parts},
U_Frame in 'Form\U_Frame.pas' {Doc: TFrame},
U_TXEdit in 'Form\U_TXEdit.pas' {fm_TXEdit};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TFm_Main, Fm_Main);
Application.CreateForm(TDM, DM);
Application.CreateForm(TFm_Login, Fm_Login);
Application.CreateForm(Tfm_TXEdit, fm_TXEdit);
Fm_Main.Show;
if Fm_Login.ShowModal=mrOK then
begin
fm_main.UpdateMainMenu(true);
Application.CreateForm(TFm_EditPass, Fm_EditPass);
Application.CreateForm(TFm_UpdateTM, Fm_UpdateTM);
Application.CreateForm(TFm_DM, Fm_DM);
Application.CreateForm(TFM_Select_MB, FM_Select_MB);
Application.CreateForm(Tfm_UpdateMB, fm_UpdateMB);
Application.CreateForm(Tfm_UpdateXM, fm_UpdateXM);
Application.CreateForm(Tfm_showSJ, fm_showSJ);
Application.CreateForm(Tfm_Parts, fm_Parts);
end else application.Terminate;
Application.Run;
end.
在OnTime时间最后一行加上:
Timer1.Enable:=False;//如果是Timer1的话!
让OnTimer时间只执行一次!