Dbgrid 選取的控制 |
答題得分者是:wameng
|
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
我是這樣作的
1. 產生二個 TStrings (or TStringList)的物件(instance), TStrings1 是異常資料, TStrings2 是選取的資料 2. 將異常資料的 key 值(可以區分的唯一值) Add 進 TStrings1 中 3. 異常資料在 ondrawcolumncell 中用一個 function (如 FindData ) 4. 選取資料用 MouseDown KeyPress 事件等(如wameng 版主所言), 選擇的資料 key 值 Add 進 TStrings2 中 5. function (如 FindData ) 找 TStrings1 及 TStrings2 的物件, TStrings1 找得到顯示另一種顏色, TStrings2 (選取的資料)再顯示另一種顏色 ===================引 用 rita.i880 文 章=================== ?大家好 : 事件中有針對異常資料則做顏色區別, 請問要如何判斷呢? ?
------
將問題盡快結案也是一種禮貌! |
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
===================引 用 wameng 文 章=================== 大概有幾個方向可以處理。 1. 透過 BookMarkList 的 CurrentRowSelected 由於無法 Override 可能需 MouseDown KeyPress 事件等。 ====================================================== 感謝您們的回應, 想請教 wameng 有關方法一, 可否請您稍為詳細說明作法呢?TKS |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
突然想到還有一種解決方法,利用 HighlightCell 處理。
再次強調 自己動作做,其樂無窮。 type TDBGrid = Class(DBGrids.TDBGrid) Protected function HighlightCell(DataCol, DataRow: Integer; const Value: string;AState: TGridDrawState): Boolean;Override; Public end; Tform1 = Class(TForm) ... ... function TDBGrid.HighlightCell(DataCol, DataRow: Integer; const Value: string;AState: TGridDrawState): Boolean; begin Result := inherited HighlightCell(DataCol, DataRow,Value,AState); if Result and (dgMultiSelect in Options) and Datalink.Active then begin { 判斷 若第一欄內容為 1169 不要被選 } if (Columns[0].Field.AsString='1169') then begin SelectedRows.CurrentRowSelected := False; Result := False; end; end; end; |
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
|
mypigbaby
高階會員 發表:11 回覆:168 積分:155 註冊:2006-07-20 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
|
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |