关于DBcheckbox的问题!(解决不了,急!!请高手) (100分)

  • 主题发起人 主题发起人 斌斌
  • 开始时间 开始时间

斌斌

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用DBcheckbox时,表中对应的是BIT字段,想通过DBcheckbox来控制该字段为1或0,
但我在实际写程序时,发现:当我新增加一条记录时,DBcheckbox的状态为“灰”了,该控件
在设计就被设为“不能为灰”了,不知如何控制才能使DBcheckbox在新增记录时为“未选中”。
以前在DB数据中,正常,但在SQL后,就不正常了。
 
设置 控件的以下属性。
ValuedChecked 为 1
ValuedUnchecked 为 0
 
jsxjd:
我设了,还是不行呀!怎么办?
 
只能是字符型的字段。

数值型可能要用 TCheckbox
 
jsxjd:
还是不行呀!
我在控件属性中设置为“TRUE”和“FALSE”,程序中设也不行,不知为什么?
 
该控件
在设计就被设为“不能为灰”了?
这是什么意思
不能为灰,那如何未选中
 
可以不必通过DBCheckBox设置,直接调整后台的数据库表,将该字段的缺省值设置为0
 
没解决!
 
调数据库表了,将该字段的缺省值设置为0,但还是这样。
 
在插入之后自己给他写个值
 
要修改DBCtrls.pas

function TDBCheckBox.GetFieldState: TCheckBoxState;
var
Text: string;
begin
if FDatalink.Field <> nil then
if FDataLink.Field.IsNull then
//Chinbo
//如果Tag < -100 则可以为灰色,不然只有两种状态
//Result := cbGrayed
if Tag < -100 then
Result := cbGrayed
else
Result := cbUnchecked
else if FDataLink.Field.DataType = ftBoolean then
if FDataLink.Field.AsBoolean then
Result := cbChecked
else
Result := cbUnchecked
else
begin
Result := cbGrayed;
Text := FDataLink.Field.Text;
if ValueMatch(FValueCheck, Text) then Result := cbChecked else
if ValueMatch(FValueUncheck, Text) then Result := cbUnchecked;
end
else
Result := cbUnchecked;
end;
 
设置默认值为true 或者false
 
后退
顶部