Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TcxVirtualVerticalGrid - как выделить значение по условию? / 5 сообщений из 5, страница 1 из 1
08.10.2019, 06:09
    #39873096
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxVirtualVerticalGrid - как выделить значение по условию?
Например, если значение < 100.0 ?
...
Рейтинг: 0 / 0
08.10.2019, 06:19
    #39873097
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxVirtualVerticalGrid - как выделить значение по условию?
Ответ: например, в OnDrawValue.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
*.<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;
...
Рейтинг: 0 / 0
08.10.2019, 07:34
    #39873110
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxVirtualVerticalGrid - как выделить значение по условию?
ёёёёёОтвет: например, в OnDrawValue.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
*.<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;



Ой-ёй, отображение многострочных ячеек сломалось... высота меняется в зависимости от содержимого, а строчка отображается только первая... теперь все руками рисовать, что ли, раз обработчик установлен? :(
...
Рейтинг: 0 / 0
08.10.2019, 08:49
    #39873140
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxVirtualVerticalGrid - как выделить значение по условию?
ёёёёё, не достаточно, разве, установить
Код: pascal
1.
2.
    ACanvas.Brush.Color := AValueInfo.ViewParams.Color;
    ACanvas.Font.Style := [fsBold]; // Подсветка жирным шрифтом (например)

и не рисовать все руками, т.е.:
Код: pascal
1.
2.
3.
    ACanvas.FillRect(AValueInfo.VisibleRect);
    ACanvas.DrawText(TcxCustomTextEditViewInfo(AValueInfo.EditViewInfo).Text,  AValueInfo.BoundsRect, 0);
    Done := True;

?
...
Рейтинг: 0 / 0
09.10.2019, 14:18
    #39874024
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxVirtualVerticalGrid - как выделить значение по условию?
ёёёёёНапример, если значение < 100.0 ?Установить обработчик на OnGetContentStyle. А в последних версиях появилась возможность эндюзверю самому задавать отображение в рантайме, создавая через диалог правила (а-ля MS Excel)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TcxVirtualVerticalGrid - как выделить значение по условию? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]