請教使用DBCheckBox時,如何在新增資料時能變成空白狀態? |
答題得分者是:channel
|
s9054469
一般會員 發表:21 回覆:35 積分:11 註冊:2003-04-21 發送簡訊給我 |
使用DBCheckBox1做為資料表的感知元件時,
當瀏覽資料時,其DBCheckBox1會隨我設定的
valueChecked及valueunchecked值對應其勾選狀態,
但是當資料做insert時,DBCheckBox卻變成以灰色區域顯示的狀態, 我試著像設CheckBox的state屬性一樣,
將DBCheckBox.state設成cbUnchecked,
但是卻無任何反應,所以是因為
DBCheckBox對應的DataField欄位型態有限制,
還是有其它屬性要設定才能使用state設定呢?
麻煩各位先進指導一下,謝謝!!
------
corn |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 使用DBCheckBox1做為資料表的感知元件時, 當瀏覽資料時,其DBCheckBox1會隨我設定的 valueChecked及valueunchecked值對應其勾選狀態, 但是當資料做insert時,DBCheckBox卻變成以灰色區域顯示的狀態, 我試著像設CheckBox的state屬性一樣, 將DBCheckBox.state設成cbUnchecked, 但是卻無任何反應,所以是因為 DBCheckBox對應的DataField欄位型態有限制, 還是有其它屬性要設定才能使用state設定呢? 麻煩各位先進指導一下,謝謝!!假設: 有一Query1 DBCheckBox1的DataField為YN 其ValueChecked為Y, ValueUnChecked為N 在TDateSet(TQuery、TTable…)的OnNewRecord事件寫: Query.FieldByName('YN').AsString := 'N' 理由:既然您知道DBCheckBox1是做為資料表的感知元件,所以DBCheckBox1是根據您的欄位值變化(打勾或不打勾),當您新增一筆資料時,其欄位值為Null所以DBCheckBox卻變成以灰色區域顯示的狀態,所以您只要在OnNewRecord事件給定欄位的值為ValueUnChecked的值,那就變空白的狀態囉... ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
s9054469
一般會員 發表:21 回覆:35 積分:11 註冊:2003-04-21 發送簡訊給我 |
版主william大大跟channel兄,非常感謝二位的幫忙!!
版主william大大又要請你原諒我一次了,
因為channel兄講的較仔細點,所以將給分給他,
請你見諒囉; 另外二位的方式我都去試了一下,
我發覺在AfterInsert事件中設定以下方式
==============================================
procedure Tset_accounting.SimpleDataSet1AfterInsert(
DataSet: TDataSet);
begin
DBCheckBox1.State := cbUnchecked;
end;
==============================================
就能做到使DBCheckBox程現未勾選的空白狀態,
如果是放在onNewRecord事件就沒有用了,
因此使用onNewRecord事件時,就可使用channel兄講的方法,
但因為我較不習慣一newRecord就去先去塞值給它,
所以我會選擇使用在afterInsert事件
去改變state的設定,不知這樣會不會比較好?
真的很感謝二位這麼快就回覆,3Q!! 發表人 -
------
corn |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |