В примере ячейки таблицы будут закрашиваться разными цветами, в зависимости от того, какие числа хранятся в них: 0 - белый, 1 - красный, 2 - желтый, 3 - зеленый.
На форме разместим компонент sg: TStringgrid и создадим обработчик события OnDrawCell
// Процедура перерисовки таблицы вызывается при любом изменении StringGrid
procedure TForm1.sgDrawCell(Sender: TObject; aCol, aRow: integer;
aRect: TRect; aState: TGridDrawState);
begin
sg.Canvas.Pen.Width := 0;
sg.Canvas.Pen.Color := clWhite;
// В зависимости от данных, хранимых в ячейках, закрашиваем их разными цветами
if sg.Cells[aCol, aRow] = '0' then
begin
sg.Canvas.Brush.Color := clWhite;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
else if sg.Cells[aCol, aRow] = '1' then
begin
sg.Canvas.Brush.Color := clRed;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
else if sg.Cells[aCol, aRow] = '2' then
begin
sg.Canvas.Brush.Color := clYellow;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
else if sg.Cells[aCol, aRow] = '3' then
begin
sg.Canvas.Brush.Color := clGreen;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
end;
На форме разместим компонент sg: TStringgrid и создадим обработчик события OnDrawCell
// Процедура перерисовки таблицы вызывается при любом изменении StringGrid
procedure TForm1.sgDrawCell(Sender: TObject; aCol, aRow: integer;
aRect: TRect; aState: TGridDrawState);
begin
sg.Canvas.Pen.Width := 0;
sg.Canvas.Pen.Color := clWhite;
// В зависимости от данных, хранимых в ячейках, закрашиваем их разными цветами
if sg.Cells[aCol, aRow] = '0' then
begin
sg.Canvas.Brush.Color := clWhite;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
else if sg.Cells[aCol, aRow] = '1' then
begin
sg.Canvas.Brush.Color := clRed;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
else if sg.Cells[aCol, aRow] = '2' then
begin
sg.Canvas.Brush.Color := clYellow;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
else if sg.Cells[aCol, aRow] = '3' then
begin
sg.Canvas.Brush.Color := clGreen;
sg.Canvas.Rectangle(aRect);
sg.Canvas.TextOut(aRect.Left + 10, aRect.Top + 4, sg.Cells[ACol, ARow]);
sg.Canvas.Brush.Color := clWhite;
end
end;
Комментариев нет:
Отправить комментарий