Вниз
Скачать: CL | DM;

ExpressQuantumGrid 5 .. доступ к ячейке   Найти похожие ветки 

← →
barakuda ©   (2007-07-21 23:23) [0]

Уважаемые мастера

как в ExpressQuantumGrid 5 закрасить другим цветом ячейку по условью?

например чтобы все ячейки со словом "резерв" были зелёные

заранее благодарен...


← →
turbouser ©   (2007-07-22 18:46) [1]

У колонки есть событие OnCustomDrawCell его и надо обрабатывать.
Выглядеть это будет примерно так:
procedure TForm1._Column_For_Draw_CustomDrawCell(Sender: TcxCustomGridTableView;
 ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: boolean);
begin
 ADone := True;
// Если имя поля = "а" и текст в текущей ячейке = "резерв" то закрашиваем
 with TcxGridDBColumn(AViewInfo.Item).DataBinding.Field do
 begin
   if (FieldName = "a") and (AViewInfo.Text = "резерв") then
     ACanvas.Brush.Color := clGreen;
   ACanvas.FillRect(AViewInfo.ClientBounds);
   ACanvas.DrawText(AViewInfo.Text,
     AViewInfo.TextAreaBounds, cxAlignHCenter);
 end;
end;


← →
ari_9   (2007-07-25 15:33) [2]

подниму этот вопрос

есть ли более "прямой" способ при отрисовке ExpressQuantumGrid обратиться к значению не того поля таблицы, которое в данной ячейке, а другого, недели этот:

cxGridDBColumn(ACellViewInfo.Item).DataBinding.Field.DataSet.FieldByName("***ДРУ ГОЕ ПОЛЕ***").Value

?


← →
turbouser ©   (2007-07-25 15:52) [3]


> ari_9   (25.07.07 15:33) [2]

Вот так:
AViewInfo.GridRecord.DisplayTexts[index]
только index колонки надо будет вычислять, т.к.
при перемещении ее юзером индекс изменится.


← →
turbouser ©   (2007-07-25 15:56) [4]


> ari_9   (25.07.07 15:33) [2]

И, к стати, ...Field.DataSet.FieldByName("***ДРУ ГОЕ ПОЛЕ***").Value
выдаст неправильное значение, т.к. не обязательно текущая запись
прорисовывается.


← →
ari_9   (2007-07-25 16:07) [5]

хорошо, тогда поставим вопрос иначе

в cxGridDBTableView есть поле B, которое не отображается (Visible = False). в зависимости от его значения должен меняться стиль соответствующей ячейки поля А. как это возможно сделать ?


← →
turbouser ©   (2007-07-25 17:04) [6]


> ari_9   (25.07.07 16:07) [5]
>
> хорошо, тогда поставим вопрос иначе

Не проверял, но должно подойти:
TcxDataController(Sender.Controller).Values[AViewInfo.GridRecord.RecordIndex,_ин декс_скрытой_ячейки_];
т.е. это и будет значение поля в скрытой ячейке


← →
Lacmus ©   (2007-07-25 17:50) [7]


procedure TForm2.cxGrid1DBTableView1FIRST_NAMECustomDrawCell(
 Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
 AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
 if aViewInfo.GridRecord.Values[cxGrid1DBTableView1FIRST_NAME.Index] = "Debra" then
   ACanvas.Brush.Color := clRed
end;


← →
ari_9   (2007-07-25 21:16) [8]

спасибо, помогло


← →
barakuda ©   (2007-07-25 22:43) [9]

Lacmus, спасибо - ОЧЕНЬ помогло



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
4-1179517041
YARA
2007-05-18 23:37
2007.12.02
Рабочий стол


8-1170253186
Alek_1
2007-01-31 17:19
2007.12.02
как создать ави файл?


2-1194626179
asd00
2007-11-09 19:36
2007.12.02
как с эмитировать нажатие правой/левой кнопки мыши?


2-1194357802
pasha_golub
2007-11-06 17:03
2007.12.02
Ошибка при вызове SHFileOperation после ForceDirectories


15-1193766687
@!!ex
2007-10-30 20:51
2007.12.02
где почитать про дебагинг под Delphi




   Наверх