如何給一個應用程序設定主窗體,登錄窗體及子窗體的模式?(15分)

  • 主题发起人 主题发起人 秋日
  • 开始时间 开始时间

秋日

Unregistered / Unconfirmed
GUEST, unregistred user!
我的一個人事管理系統,主窗體(main),登錄窗體(login)及子窗體(rs)的FORMSTYLE屬性均是設定為fsNormal,系統登入過程為在產生main窗體之前先產生login窗體,進入main窗體後,點某個按鈕進入rs窗體.我調用rs窗體的程序代碼為:
rs_form:=trs_form.Create(self);
rs_form.showmodal;
rs_form.free;
但運行時卻提示"cannot make a visible window modal"(不能創建一個可視的模式窗體),另外我的main窗體最小化時沒有最小化在操作系統任務欄,而是最小化在操作系統左下角(即"開始"按鈕上面一點).
請問如何解決這兩個問題?我的要求是在main窗體與rs等子窗體同一級別,即各窗體最小化時均在任務欄顯示,且可以同時打開多個子窗體.
請高手解答,我急於寫一個小小的人事系統.謝謝!
 
看DELPHI自带的例子
 
rs_form:=trs_form.Create(owner);
rs_form.showmodal;
rs_form.free;
 
procedure TMainForm.FormShow(Sender: TObject);
begin
MainForm.Visible := False;
with TLoginForm.Create(nil) do
begin
try
ShowModal;
finally
Free;
end;
end;
MainForm.Visible := True;
end;
 
各位高手:
分數不多了,誠請解答!(上面幾種方法均不能解答!),或發郵件給我也行:rssgm@163.com
 
欢迎界面
此界面在系统启动前出现2.5秒,作为程序名称介绍和欢迎界面。
需要在程序初始化时加入代码来启动。

begin
Application.Initialize;
WelcomeFrm:=TWelcomeFrm.create(Application);
WelcomeFrm.Show;
WelcomeFrm.Update;
Application.Title := 'Book';
Application.CreateForm(TManagerLoginFrm, ManagerLoginFrm);
Application.CreateForm(TMainFrm, MainFrm);
WelcomeFrm.hide;
WelcomeFrm.free;
Application.Run;
end.
并在主程序中加入休眠程序以使其停留2.5秒。
procedure TMainFrm.FormCreate(Sender: TObject);
begin
Sleep(2500);
end;

或者将Sleep加在Application.Run前面
 
我十分怀疑你是把login窗体做成主窗口了,照你所描述的样肯定是把
LoginForm的建立顺序排在MainForm的前面了,你试试看把顺序调过来
就行了。

在Project---->options------>forms里面的auto create forms
调整
 
后退
顶部