解决方案 »

  1.   

    你的代码使用了循环while not ClientDataSet1.Eof do
    所以每次单击后所有记录都被操作
      

  2.   

    我用循环while not ClientDataSet1.Eof do是为了选择所有记录中被标记的记录,现在的问题是只有我标记其中一个,其余的也是默认标记了,这是我的问题。
      

  3.   

    我用下面的代码实现Fields[9].AsBoolean的初始值为False
    procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
    begin
    with ClientDataSet1 do
      begin
        if Fields[9].Value = Null then Fields[9].AsBoolean := False;
      end;
    end;