我使用Devexpress
和Delphi xe7
,
我试图以不同的方式改变TcxGridDBLayoutViewItem
的风格。
if AItem.EditValue = 'Discharge' then
begin
AStyle := cxstylNewDischarge;
end
else
if AItem.EditValue = 'Operation' then
begin
AStyle := cxstylNewOperation;
end
else if AItem.EditValue = 'Admission' then
begin
AStyle := cxstylNewAdmission;
end
else if AItem.EditValue = 'Transfer' then
begin
AStyle := cxstylNewAdmission;
end
else
begin
AStyle := cxstylNewNormal;
end;
但是,当我使用此代码时,项目的所有样式都更改为只有一个样式,即使AItem.EditValue
彼此不同。
此外,当我在这些项目上单击或鼠标时,样式会自动更改。
如何修复此代码?
您需要测试de ARecord Param。我认为AItem代表的是de Item(列),而不是您正在测试的记录的值。
这样做你就会没事的:
//You can test if the Value is not null before the conditions, or use
//VarToStr (on unit Variants)
AStyle := cxstylNewNormal;
if ARecord.Values[AItem.Index] = 'Discharge' then
AStyle := cxstylNewDischarge
else
if ARecord.Values[AItem.Index] = 'Operation' then
AStyle := cxstylNewOperation
else
if ARecord.Values[AItem.Index] = 'Admission' then
AStyle := cxstylNewAdmission
else
if ARecord.Values[AItem.Index] = 'Transfer' then
AStyle := cxstylNewAdmission;
end;