例:给TClientDataSet1绑定数据后,字段state值为1、2、3
需在DBGrid1中对应显示为
1:我很好
2:我非常好
3:我非常非常好做法:
if (TClientDataSet1.FieldCount>0) and (TClientDataSet1.RecordCount>0) then
begin
with TClientDataSet1 do
begin
First;
while not Eof do
begin
Edit;
if FieldByName('state').AsString='1' then FieldByName('state').AsString:='我很好';
if FieldByName('state').AsString='2' then FieldByName('state').AsString:='我非常好';
if FieldByName('state').AsString='3' then FieldByName('state').AsString:='我非常非常好';
Next;
end;
First;
end;
end;
结果:
显示结果
state=3的显示成了“我非常非”
这是为什么?有什么解决办法
需在DBGrid1中对应显示为
1:我很好
2:我非常好
3:我非常非常好做法:
if (TClientDataSet1.FieldCount>0) and (TClientDataSet1.RecordCount>0) then
begin
with TClientDataSet1 do
begin
First;
while not Eof do
begin
Edit;
if FieldByName('state').AsString='1' then FieldByName('state').AsString:='我很好';
if FieldByName('state').AsString='2' then FieldByName('state').AsString:='我非常好';
if FieldByName('state').AsString='3' then FieldByName('state').AsString:='我非常非常好';
Next;
end;
First;
end;
end;
结果:
显示结果
state=3的显示成了“我非常非”
这是为什么?有什么解决办法
Field 的DisplayText 根据需要修改成你要显示的内容就可以了
结果又错误
[DCC Error] OperateList.pas(229): E2129 Cannot assign to a read-only property