TcxVirtualVerticalGrid - как выделить значение по условию?

ёёёёё
Дата: 08.10.2019 06:09:14
Например, если значение < 100.0 ?
ёёёёё
Дата: 08.10.2019 06:19:50
Ответ: например, в OnDrawValue.

*.<grid>DrawValue(Sender: TObject; ACanvas: TcxCanvas;
  APainter: TcxvgPainter; AValueInfo: TcxRowValueInfo; var Done: Boolean);
begin
  if StrToFloatDef(VarToStr(AValueInfo.DisplayValue), 0.0) < 100.0 then begin // Условие

    ACanvas.Brush.Color := AValueInfo.ViewParams.Color;
    ACanvas.FillRect(AValueInfo.VisibleRect);

    ACanvas.Font.Style := [fsBold]; // Подсветка жирным шрифтом (например)

    ACanvas.DrawText(TcxCustomTextEditViewInfo(AValueInfo.EditViewInfo).Text,  AValueInfo.BoundsRect, 0);
    Done := True;
  end;
ёёёёё
Дата: 08.10.2019 07:34:35
ёёёёё
Ответ: например, в OnDrawValue.

*.<grid>DrawValue(Sender: TObject; ACanvas: TcxCanvas;
  APainter: TcxvgPainter; AValueInfo: TcxRowValueInfo; var Done: Boolean);
begin
  if StrToFloatDef(VarToStr(AValueInfo.DisplayValue), 0.0) < 100.0 then begin // Условие

    ACanvas.Brush.Color := AValueInfo.ViewParams.Color;
    ACanvas.FillRect(AValueInfo.VisibleRect);

    ACanvas.Font.Style := [fsBold]; // Подсветка жирным шрифтом (например)

    ACanvas.DrawText(TcxCustomTextEditViewInfo(AValueInfo.EditViewInfo).Text,  AValueInfo.BoundsRect, 0);
    Done := True;
  end;


Ой-ёй, отображение многострочных ячеек сломалось... высота меняется в зависимости от содержимого, а строчка отображается только первая... теперь все руками рисовать, что ли, раз обработчик установлен? :(
ma1tus
Дата: 08.10.2019 08:49:34
ёёёёё, не достаточно, разве, установить
    ACanvas.Brush.Color := AValueInfo.ViewParams.Color;
    ACanvas.Font.Style := [fsBold]; // Подсветка жирным шрифтом (например)
и не рисовать все руками, т.е.:
    ACanvas.FillRect(AValueInfo.VisibleRect);
    ACanvas.DrawText(TcxCustomTextEditViewInfo(AValueInfo.EditViewInfo).Text,  AValueInfo.BoundsRect, 0);
    Done := True;
?
white_nigger
Дата: 09.10.2019 14:18:30
ёёёёё
Например, если значение < 100.0 ?
Установить обработчик на OnGetContentStyle. А в последних версиях появилась возможность эндюзверю самому задавать отображение в рантайме, создавая через диалог правила (а-ля MS Excel)