Цвет текста в ячейке StringGrid

YuriyV
Дата: 18.10.2006 00:45:22
Доброй ночи! Подскажите, как изменить цвет текста в ячейке StringGrid.
StringGrid1.Cells[5,3]:= ??????? clRed;
StringGrid1.Cells[6,3]:= ??????? clGreen;
Спасибо!
Гаджимурадов Рустам
Дата: 18.10.2006 00:54:15

RTFM OnDrawCell.

Posted via ActualForum NNTP Server 1.3

YuriyV
Дата: 18.10.2006 01:20:18
Гаджимурадов Рустам

RTFM OnDrawCell.
Posted via ActualForum NNTP Server 1.3

Спасибо большое. Но как присвоить цвет текста одной из ячеек
 if StringGrid1.Cells[5,3]<>'' then
    StringGrid1.Cells[5,3]....??????
mv
Дата: 18.10.2006 01:28:10

YuriyV

Спасибо большое. Но как присвоить цвет текста одной из ячеек


Присвоить нельзя. В Виндоус все через жопу. В смысле - все происходит в свое
время.
Т.е. цвет задается во время рисования.
В OnDrawCell и смотри на номер ячейки. Цвет ее можешь хранить, например, во
вспомогательном массиве.
Заносишь туда значение, и говоришь: Оп! А ну- перернисуйся! (.Invalidate())
И тут же выполняется перерисовка, OnDrawCell смотрит на координаты рисуемой
ячейки, лезет в массив за цветом, и все...


Posted via ActualForum NNTP Server 1.3

Гаджимурадов Рустам
Дата: 18.10.2006 01:39:30

YuriyV> Но как присвоить цвет текста одной из ячеек
>
> if StringGrid1.Cells[5,3]<>'' then
> StringGrid1.Cells[5,3]....??????

Так и присвоить - в одном случае (Cells[5,3]<>'') рисовать одним цветом,
в другом (Cells[5,3]<>'значение для красного цвета' ) - другим (красным).

В справке даже пример есть, кажется.

Posted via ActualForum NNTP Server 1.3

mv
Дата: 18.10.2006 01:47:21

Пример: как зарисовать диагональ красным:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if (ACol = ARow) and (ACol > 0) then begin
    StringGrid1.Canvas.Brush.Color :=clRed;
    StringGrid1.Canvas.FillRect(Rect);
    StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[aCol, 
ARow]);
  end;
end;


Posted via ActualForum NNTP Server 1.3

YuriyV
Дата: 18.10.2006 01:58:17
Гаджимурадов Рустам

YuriyV> Но как присвоить цвет текста одной из ячеек
>
> if StringGrid1.Cells[5,3]<>'' then
> StringGrid1.Cells[5,3]....??????

Так и присвоить - в одном случае (Cells[5,3]<>'') рисовать одним цветом,
в другом (Cells[5,3]<>'значение для красного цвета' ) - другим (красным).

В справке даже пример есть, кажется.

Posted via ActualForum NNTP Server 1.3


Присвоить конкретной ячейке цвет не получается. Цвет меняется во всех ячейках.
mv
Дата: 18.10.2006 02:04:20

Чума...


Posted via ActualForum NNTP Server 1.3

Гаджимурадов Рустам
Дата: 18.10.2006 02:36:40

YuriyV> Присвоить конкретной ячейке цвет не получается. Цвет меняется во всех ячейках.

Приведите код. А перед этим гляньте на код в справке,
примерах, в постах mv и в поиске (уже приводили раньше).

И логику включите.

Posted via ActualForum NNTP Server 1.3