2011-05-17 73 views
1

所以我運行一個仿真使用通過代碼框架隊列

當你選擇模型的程序,它會打開一個屏幕,可讓您選擇「運行模式」,這將打開另一個窗口,從中可以可以按下啓動按鈕

我想打一個隊列,以便用戶可以選擇多個模型和程序將通過這些畫面,而無需用戶輸入運行

於是,我打電話這樣的框架:

ProgForm := TProgressForm.Create(Self, FModItem); 
Self.Visible := False; 
try 
ProgForm.ShowModal; 

現在,我可以通過在Create的末尾添加一行來運行程序來運行仿真,但問題是仿真結束前它沒有顯示幀(因爲Create構造函數isn直到我完成的運行函數完成)

我不知道該怎麼做,因爲如果我沒有在Create函數中添加任何東西,我打電話,似乎沒有任何其他方式自動調用任何功能,但如果我做一些創建,將不顯示的幀,直到創建完成

感謝

回答

1

我建議閱讀:

http://delphi.about.com/od/formsdialogs/a/delphiformlife.htm

您可以使用窗體的OnShow事件做的東西之前的形式完全在屏幕上繪製。
OnActivate通常是繪製表單時最好做的東西。

BTW
你說的框架,但在你的代碼,它說:TProgressForm所以我猜你的意思是Form一個Frame內。

+0

非常感謝,這正是我所尋找的,OnActivate完美的作品 – KingKong 2011-05-17 14:06:53

+1

如果在同一個「模式堆棧」級別中有兩個或多個表單並且用戶在這些表單之間切換,則也會調用OnActivate。因此,使用OnActivate作爲「OnAfterShow」時要小心。 – 2011-05-17 20:36:56