DevExpress TcxGridDBLayoutViewItem OngetContentStyle 不起作用



我使用DevexpressDelphi 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;

相关内容

  • 没有找到相关文章

最新更新