2013-12-17 41 views
-1

我想我幾個RadioButton S和Checkbox ES真正的或我的應用程序啓動時假的......但是當我這麼做是OnShowOnActivateOnCreate事件處理程序我得到異常,甚至整個表單都沒有繪製(表單上缺少很多控件)。德爾福XE5 - 在啓動組件初始化

你有什麼好的做法來做到這一點?

+1

是的。刪除代碼中的錯誤(使用調試器)。 – TLama

+0

oncreate事件可能有這個,但onshow事件不能產生這種問題你使用自定義繪圖嗎?如果沒有,那麼嘗試創建一個演示項目放下幾個複選框,並將它們設置爲Form OnShow事件爲true,如果問題會重複,那麼IDE會出現錯誤,如果不是,那麼問題出現在代碼中,沒有它我們不能說太多也下次嘗試粘貼堆棧跟蹤:) – AirWolf

+0

而你的代碼是? SSCEE?以及究竟有什麼例外說?至少他們的類型? http://www.catb.org/~esr/faqs/smart-questions.html –

回答

5

您選擇使用哪個事件取決於您希望何時執行該操作。

  • OnCreate只在表單的生命週期內執行一次。
  • OnShow每次窗體從隱藏到顯示時執行。它可能會在表單的生命週期中執行很多次。
  • OnActivate每次表單獲得焦點時執行。它可能會在表單的生命週期中執行很多次。

在.dfm文件中定義的控件都是在每個事件觸發時實例化的。

所以,在它的表面上,這些選擇中,OnCreate可能是初始化代碼最合理的選擇。但是隻有當你想要這段代碼運行時,你才能確定地知道。

至於你遇到的例外,他們是因爲你的代碼包含錯誤。由於我們看不到您的代碼,因此您需要在沒有我們幫助的情況下調試代碼。