Я хотел бы иметь: если для логической переменной будет установлено значение true, должна ли ячейка (сообщение об ошибке) в StringGrid быть красной. Он не работает автоматически с OnDrawCell. Как я могу достичь этого? Заранее спасибо.
delphi 7: Как обновить зависимость цвета ячеек StringGrid от состояния логической переменной
Ответы (1)
В событии OnDrawCell
проверьте состояние логической переменной и, если должна быть нарисована правильная ячейка, установите красный цвет.
См. delphi: как изменить цвет ячейки в сетке строк.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if (myBooleanState) and (ACol = 3) and (ARow = 2) then
with TStringGrid(Sender) do
begin
//paint the background red
Canvas.Brush.Color := clRed;
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+2,Rect.Top+2,Cells[ACol, ARow]);
end;
end;
При изменении состояния логического значения просто вызовите MyStringGrid.Repaint а> или MyStringGrid.Invalidate
.
person
LU RD
schedule
30.06.2016