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

如何取得 TwwDBGrid 內的 CheckBox 控制項

尚未結案
soonly
一般會員


發表:19
回覆:15
積分:6
註冊:2002-12-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-17 15:08:20 IP:203.73.xxx.xxx 未訂閱
各位大大, 小弟在 TwwDBGrid 中將某個欄位的 Edit Control 設成CheckBox, 但小弟想在某些情況下將CheckBox設成disable, 請問各位大大, 要如果才能取得在TwwDBGrid 中 CheckBox 這個控制項的 Name... 需要各位大大的協助
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-19 08:29:01 IP:202.39.xxx.xxx 未訂閱
小弟的想法是在 AfterScroll Event 中判斷您所謂的某些條件 如果條件式立的話, 該 TField 的 ReadOnly 屬性便設為 True 否則便設為 False    --
soonly
一般會員


發表:19
回覆:15
積分:6
註冊:2002-12-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-19 08:41:06 IP:203.73.xxx.xxx 未訂閱
hagar 兄, TField 的 ReadOnly= True 是針對整個 Column, 我想針對的某些特殊的 Row, 有些 CheckBox disable, 有些 enable 讓user 做 check or uncheck.
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-19 13:41:16 IP:61.218.xxx.xxx 未訂閱
在BeforeEdit裡去檢查該筆資料可否讓user更改,如果不允許修改,就raise 一個錯誤.如下:
form1.DataSet1OnBeforeEdit(DataSet:TDataSet);
begin
  if ... then
    raise Exception.Create('這筆資料不允許修改');
   //或者如果你不想跳出錯誤訊息的話,可以改用abor
end;
引言: hagar 兄, TField 的 ReadOnly= True 是針對整個 Column, 我想針對的某些特殊的 Row, 有些 CheckBox disable, 有些 enable 讓user 做 check or uncheck.
soonly
一般會員


發表:19
回覆:15
積分:6
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-22 10:06:02 IP:203.73.xxx.xxx 未訂閱
謝謝大大, 我想做的是控制 checkbox, 不知道有沒有大大有好的方法...
soonly
一般會員


發表:19
回覆:15
積分:6
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-22 10:06:46 IP:203.73.xxx.xxx 未訂閱
謝謝大大, 我想做的是控制 checkbox, 不知道大大有沒有好的方法...
OsX
版主


發表:6
回覆:151
積分:111
註冊:2003-05-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-22 23:26:16 IP:219.84.xxx.xxx 未訂閱
引言: 各位大大, 小弟在 TwwDBGrid 中將某個欄位的 Edit Control 設成CheckBox, 但小弟想在某些情況下將CheckBox設成disable, 請問各位大大, 要如果才能取得在TwwDBGrid 中 CheckBox 這個控制項的 Name... 需要各位大大的協助
控制的程式寫在 OnCalcCellColors 事件裏 例如:
procedure TFPM51104.DBGrid1CalcCellColors(Sender: TObject; Field: TField;
  State: TGridDrawState; Highlight: Boolean; AFont: TFont; ABrush: TBrush);
begin
  if ClientDataSet2.FieldByName( 'SELECTED' ).AsString = 'Y' then
    // disable checkbox cloumn
    DBGrid1.ColumnByName( 'PRIV_WRITE' ).ReadOnly := False
  else
    // enabled checkbox cloumn 
    DBGrid1.ColumnByName( 'PRIV_WRITE' ).ReadOnly := True;
  end;
end;
soonly
一般會員


發表:19
回覆:15
積分:6
註冊:2002-12-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-23 19:43:27 IP:203.73.xxx.xxx 未訂閱
謝謝 OsX 大大, 如果在 CDS 的 AfterScroll 再加上中再加上 if ClientDataSet.FieldbyName('CHK')='Y' then DATASET.AutoEdit := False else DATASET.AutoEdit := True; 就更完美了....
系統時間:2024-11-22 22:15:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!