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

cxGrid每一條記錄前顯示一個checkBox

尚未結案
double9999
一般會員


發表:8
回覆:12
積分:4
註冊:2004-12-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-19 14:23:04 IP:218.79.xxx.xxx 未訂閱
請教大大one個問題 我們想在cxGrid每一條記錄的最前面,顯示一個checkBox(就是一個欄位以CheckBox呈現),用來表示是否選中這個記錄,這個CheckBox我們需要可以編輯, 就是如果check=true的話,用鼠標點擊后就check=False。 這個功能如何實現? thank you
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-19 15:57:33 IP:210.243.xxx.xxx 未訂閱
引言: 請教大大one個問題 我們想在cxGrid每一條記錄的最前面,顯示一個checkBox(就是一個欄位以CheckBox呈現),用來表示是否選中這個記錄,這個CheckBox我們需要可以編輯, 就是如果check=true的話,用鼠標點擊后就check=False。 這個功能如何實現? thank you
有一個類似的題目, 參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=61079
OsX
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-19 20:14:01 IP:60.248.xxx.xxx 未訂閱
引言: 請教大大one個問題 我們想在cxGrid每一條記錄的最前面,顯示一個checkBox(就是一個欄位以CheckBox呈現),用來表示是否選中這個記錄,這個CheckBox我們需要可以編輯, 就是如果check=true的話,用鼠標點擊后就check=False。 這個功能如何實現? thank you
在 cxGrid 中 先加入一個 GridColumn, 把這個 GridColumn 的 Properties 設成 CheckBox 就可以了
double9999
一般會員


發表:8
回覆:12
積分:4
註冊:2004-12-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-20 18:29:56 IP:218.79.xxx.xxx 未訂閱
引言: 在 cxGrid 中 先加入一個 GridColumn, 把這個 GridColumn 的 Properties 設成 CheckBox 就可以了
这样的话,那个CheckBox 是可以显示出来的,但就是不能编辑,不知道为什么。
StrongLemon
高階會員


發表:10
回覆:166
積分:105
註冊:2004-04-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-21 15:53:58 IP:221.169.xxx.xxx 未訂閱
这样的话,那个CheckBox 是可以显示出来的,但就是不能编辑,不知道为什么。 --->沒有對應的欄位當然不能編輯,還有DataSource.AutoEdit=? 欄位看你是要實體還是calculate Field。
double9999
一般會員


發表:8
回覆:12
積分:4
註冊:2004-12-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-21 16:53:12 IP:218.79.xxx.xxx 未訂閱
引言: 沒有對應的欄位當然不能編輯,還有DataSource.AutoEdit=? 欄位看你是要實體還是calculate Field。 --checkBox是没有对应欄位,也没有对应的数据库字段,如何做?
double9999
一般會員


發表:8
回覆:12
積分:4
註冊:2004-12-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-21 16:54:50 IP:218.79.xxx.xxx 未訂閱
引言: 沒有對應的欄位當然不能編輯,還有DataSource.AutoEdit=? 欄位看你是要實體還是calculate Field。 --DataSource.AutoEdit= true,这个是肯定的拉,别的字段都可以编辑 checkBox是没有对应欄位,也没有对应的数据库字段,如何做?
StrongLemon
高階會員


發表:10
回覆:166
積分:105
註冊:2004-04-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-21 19:45:31 IP:221.169.xxx.xxx 未訂閱
所需元件 TADOQuery or TQuery or xxxx SQL:='select *,'1' as is check from test' DataSetProvider ClientDataSet 這樣就可以解決TADOQuery暫存欄位無法寫入的情況。
OsX
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-01-22 23:59:04 IP:219.84.xxx.xxx 未訂閱
引言: 所需元件 TADOQuery or TQuery or xxxx SQL:='select *,'1' as is check from test' DataSetProvider ClientDataSet 這樣就可以解決TADOQuery暫存欄位無法寫入的情況。
就我印像, ADO 的資料集來源的 SQL 是不存在於實體 Table schema 中的話,抓回來之後到 ClientDataSet 中都被 mapping 成不可修改的, Ex: 'select *,'1' as is check from test' 裏面中的 1 就是對應不到的實體欄位. 用 ClientDataSet 的話, 你試試看有一種 InternalCalc Field 可搭配這種狀況當成 checkbox 的欄位來使用.
StrongLemon
高階會員


發表:10
回覆:166
積分:105
註冊:2004-04-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-01-23 03:49:17 IP:211.74.xxx.xxx 未訂閱
引言: 就我印像, ADO 的資料集來源的 SQL 是不存在於實體 Table schema 中的話,抓回來之後到 ClientDataSet 中都被 mapping 成不可修改的, Ex: 'select *,'1' as is check from test' 裏面中的 1 就是對應不到的實體欄位. 用 ClientDataSet 的話, 你試試看有一種 InternalCalc Field 可搭配這種狀況當成 checkbox 的欄位來使用.
算是漏寫了一點.. 程式碼中執行.. TADOQuery.FieldByName('ischeck').ReadOnly:=False; TADOQuery.FieldByName('ischeck').ProviderFlags:=[]; 這樣ClientDataSet就可以修改了。
double9999
一般會員


發表:8
回覆:12
積分:4
註冊:2004-12-09

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-01-24 10:34:12 IP:218.79.xxx.xxx 未訂閱
謝謝各位大大,這個功能已經可以實現了,如下 1,書寫TxLocalClientDataSet的CommandText,如Select * from TableName,並Active = True; 2,雙擊TxLocalClientDataSet打開字段編輯器,添加所有字段,再添加一個用來對應CheckBox的boolean類型的字段,Field Type = fkInternalCalc(Field is calculated but values are stored in the dataset.),設置該字段的ReadOnly = False 3.在cxGrid中添加所有的字段,設定chekbox字段的Properties為CheckBox,Properties的ReadOnly = False
double9999
一般會員


發表:8
回覆:12
積分:4
註冊:2004-12-09

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-01-24 10:41:57 IP:218.79.xxx.xxx 未訂閱
感謝OsX和StrongLemon給與指導
系統時間:2024-03-29 13:28:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!