2011-08-02 20 views
2

大家好,如何在delphi程序開始時創建彈出窗體?

我想在應用程序運行時在主窗體上方顯示該選項窗體。那麼如何在啓動時在後臺顯示帶有主窗體的選項窗體?

感謝您的幫助。

+0

它像彈出窗體的主窗體應顯示在背景中。 – naren

+0

我嘗試在Main窗體的OnCreate或Onshow事件上創建選項窗體,但它只顯示選項窗體。 :( – naren

回答

2

可以使用OnActivate。必須將其包裝在一些代碼中,以防止在其他應用程序窗體關閉時觸發它,然後再次激活主窗體。

procedure TForm1.FormActivate(Sender: TObject); 
Const 
{$J+} 
    SettingsShown : Boolean = false; 
{$J-} 
begin 
    if SettingsShown = false then 
    begin 
    Form2.ShowModal; 
    SettingsShown := True; 
    end; 
end; 
+0

感謝布萊恩.. – naren

+0

我認爲一個非模態形式會更好的自動彈出窗體,如果你要使用模態形式,請確保你將永遠遭受可怕的Z - 除非你有一個修復版的Delphi版本(並且你使用修補程序,設置窗口的PopupParent),否則你需要編寫一些特殊的代碼來解決它。 –

0

而不是使用OptionForm.ShowModalOnCreateOnShow創建一個自定義消息,如Const AM_ShowOptionForm = WM_APP +1併發布消息回您的主窗體。

主窗體上添加一個消息處理程序,如

Procedure RecieveOptionFormMessage(var Msg:TMessage); Message AM_ShowOptionForm 
begin 
    OptionForm.ShowModal; 
end; 
相關問題