全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1155
推到 Plurk!
推到 Facebook!

如何实现oncellExit?

答題得分者是:P.D.
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-06 14:27:25 IP:125.121.xxx.xxx 訂閱
各位大大好,想问一下,在dbgrid的events中有oncolExit,却没有oncellExit,
如果想要实现oncellexit,该如何做呢?
編輯記錄
luowy651 重新編輯於 2008-03-06 15:05:26, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-07 10:21:44 IP:61.67.xxx.xxx 未訂閱
你可以用這種方式

因為 dbgrid 的 col 是 table field, row 是table record, 而cell的組合是[col, row]
所以可以在 onColExit 中去判斷 table record 上下筆是否有曾經被移動過 , 如果是就代表這個cell發生exit事件了
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-07 13:46:10 IP:125.121.xxx.xxx 訂閱
多谢!小弟初学,能否说得再明白些?
===================引 用 P.D. 文 章===================
你可以用這種方式

因為 dbgrid 的 col 是 table field, row 是table record, 而cell的組合是[col, row]
所以可以在 onColExit 中去判斷 table record 上下筆是否有曾經被移動過 , 如果是就代表這個cell發生exit事件了
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-08 12:28:52 IP:61.67.xxx.xxx 未訂閱
1. dbgrid 的 column 與 column 之間是已經有 onColExit 的事件, 所以當你在 col[1]移動到 col[2] 時, 在 onColExit 就可以偵測到
2. dbgrid 的重點在於沒有 onRowExit, 因為是資料連結模式, 所以可以透過資料庫的移動判斷是否有從 row[1]移到row[2]
那這就問題來了, dbgrid 沒有任何關於 row 的事件, 上一封沒考慮仔細, 叫你在 onColExit加判斷, 我發現沒有意義 , 所以當row被移動, 就代表記錄被移動, 而記錄被移動會觸發那一個事件呢? 最直接的就是連結這個dbgrid 的 query中的 AfterScroll
因此你必須處理
1.宣告一個private 或public 變數 nowcol: integer
2.在 onColEnter 事件 指定 nowcol:= dbgrid1.SelectedIndex; (第一個欄位是0)
3.在query1.AfterScroll 去做了你要在cell離開時的事情, 上面講的 nowcol 可以讓你知道你目前的dbgrid 是在第幾個欄位
4.而 col 被移動, 在 onColExit 做就可以
你想要cell判斷被移動, 不是row 就是 col 這兩個做判斷, 只要任何一個移動都代表 cell 不同了, 不是嗎?
系統時間:2024-05-16 11:55:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!