簡體   English   中英

如何確定何時在TDataSet中插入記錄?

[英]How do I determine when a record is inserted in a TDataSet?

我正在編寫一個網格控件,它將顯示TDataSet或TObjectList的內容。 當您只需要支持TDataSet時,事情就很簡單了:

  1. 通過TDataLink后代鏈接到數據集。
  2. 繪制網格內容時,可以使用該TDataLink中緩沖的記錄來繪制所需的內容。
  3. 不需要在某處有單獨的對象來表示TDataSet中的行,因為您總是只在緩沖區中繪制行。

就我而言,我還需要接受來自其他一些來源的數據,這意味着我需要有一個代表每一行的對象(也是因為控件需要相當多的行狀態)。

但這會導致上述模型出現問題。 因為我有一個代表每一行的對象,所以在向TDataSet添加或刪除記錄時需要通知我。 我只是看不到該怎么做。

顯然,我不想迷上數據集事件。 它們可能已經在使用中,並且TDataLink應該是我的控件和數據集之間的中介。 我使用DataEvent虛擬方法的嘗試失敗了,因為它根本不會告訴您是否要添加/刪除記錄。

有任何想法嗎?

如果將TDataLink后代掛接到連接到TDataSet的TDataSource,則當數據更改時,您會在RecordChanged過程中得到調用。

您可以使用連接到TDataSet的TDataSource的事件OnDataChange和OnUpdateData。

看來,您必須從要使用的基本數據集類派生自己的類。 在那里,您將需要重寫InternalAddRecord,InternalPost,InternalDelete方法並處理記錄的添加/刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM