Updating bool 是否正在更新字串串列,只讀屬性。
當改變 TStrings 的屬性值的時候,會處于更新狀態,Updating 屬性為 true,更新完成,Updating 為 false。
可以呼叫 BeginUpdate 方法讓 Updating 為 true,告訴相關程式代碼這個字串串列在處于更新狀態,呼叫 EndUpdate 方法讓 Updating 為 false。BeginUpdate 和 EndUpdate 必須成對出現,EndUpdate 和 EndUpdate 次數相等的時候,Updating 恢復 false 狀態。BeginUpdate 和 EndUpdate 的內部計數器為 UpdateCount 屬性,是 protected 訪問權限的。
如果要更新字串串列,例如 Memo 的 Lines 屬性,先呼叫 BeginUpdate 使 Updating 屬性為 true,可以防止在多次更新的程序中重繪顯示,當更新完成之后,呼叫 EndUpdate 告訴字串串列更新完成了,內部計數器歸零,Updating 屬性為 false,才會重繪顯示。
OnChanging TNotifyEvent 當添加、洗掉、移動、修改的時候,都會產生這個事件。
無論是否在 BeginUpdate 和 EndUpdate 之間操作,或者說 Updating 的狀態如何,都會產生這個事件。
控制元件和字串串列有關聯,控制元件在這個事件產生的時候可以停止重繪,因為字串串列現在開始更新內容了,一直等到產生 OnChange 事件,說明更新作業已經結束了。
————————————————————
是不是修改字串時,Updating為true,觸發OnChanging事件,關聯控制元件停止重繪,
修改完畢,Updating為false,觸發OnChage事件,關聯控制元件可以重繪?
BeginUpdate會將Updating設為true,使得觸發OnChanging事件,關聯控制元件停止重繪嗎?
但是為什么又說:
無論是否在 BeginUpdate 和 EndUpdate 之間操作,或者說 Updating 的狀態如何,都會產生(OnChanging)這個事件。
難道是觸發OnChanging事件在先,Updating為true在后?
uj5u.com熱心網友回復:
BeginUpdate void __fastcall BeginUpdate(void);開始更新,當字串串列被修改的時候,會自動呼叫,請參考 Updating 屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/189704.html
標籤:基礎類
上一篇:騰訊內部技術檔案:Netty+Nginx+Redis實戰筆記
下一篇:這個問題怎么解決
