在Delphi 2006中,我展示了一種模態形式。該表單中的用戶輸入可以更改當前在作爲mainform的父表單上顯示的數據。爲了反映這些變化,我需要強制重繪mainform上的一些ownerdraw組件。我試圖做這樣的模式形式:如何在模態窗體處於活動狀態時重新繪製父窗體?
MainForm := Application.MainForm;
MainForm.Invalidate;
MainForm.Update;
這並沒有改變一點。我一直認爲表單上的「更新」會一直重新繪製 - 顯然不是這樣。繪畫代碼本身應該是可以的,因爲我可以通過這些ownerdraw組件移動模態窗體來強制手動重畫。
但是,如何在數據更改時以編程方式強制重繪?
編輯:我會嘗試Application.ProcessMessages和刷新下週,感謝您的建議。
對不起,花了這麼長的時間來回答,並感謝所有誰迴應。調用Refresh()是解決方案的一部分,但它必須在自定義繪製組件上完成,而不是在它們所在的窗體上。現在我想接受多個答案;-)
我沒有使用皮膚庫,但自定義繪製組件可能與此相當。我必須「手動」找到這些組件並明確刷新它們。 – 2009-02-10 11:31:16