呵呵,兄弟,把你吸引进来了。谢谢谢谢。
[问题描述]
界面上有ADOQUERY,dbgrid(使用了cxgrid),adoquery的sql.text:='select 0 as flag,abc from table';然后双击adoquery加入静态字段,flag和abc,把flag的readonly修改为false.然后在DBGRID里面加两列,FLAG和ABC,把FLAG设置为CHECKBOX类型。并且设置了当NULL时不大钩,0时候也不打钩,1时候打钩。然后在DBGRID的双击事件中写 
ADOQUERY.EDIT;
ADOQUERY.FIELDBYNAME('FLAG').ASINTERGER:=1;
ADOQUERY.POST;
LABEL1.CAPTION:=ADOQUERY.FIELDBYNAME('FLAG').ASSTRING;
我想:应该这样就能实现使用CHECKBOX来多选行的效果,但是根本不能选择,双击表格中CHECKBOX不会钩上。LABEL1显示也空的(也就是ADOQUERY.POST后,字段flag还是空),不知道为什么。谢谢高手指点

解决方案 »

  1.   

    当你 POST后在, 刷新dbgrid(使用了cxgrid);
    ADOQUERY.EDIT;
    ADOQUERY.FIELDBYNAME('FLAG').ASINTERGER:=1;
    ADOQUERY.POST;
    ADOQuery1.Refresh;//刷新
    LABEL1.CAPTION:=ADOQUERY.FIELDBYNAME('FLAG').ASSTRING;

    再执行一下ADOQUERY查询!!
      

  2.   

    dbgrid 对应的帮定 flag字段的 column的 keylist 属性里面设两个值 1和0 (1 和 0 之间要换行的)
      

  3.   

    因为ADO是ReadOnly的;试试从一个实际存在的表中加载数据试试,好像ADO中计算字段是不能修改的。