![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прорисовка StringGrid [D7]
Make © (2006-02-28 15:49:00)Подскажите, как в стринггриде изменить цвет у всех ячеек в строке?
antonn (2006-02-28 17:29:00) [1]для каждой ячейки вызывается персонально. в Rect: TRect; передается область, которая перерисовывется.
если строка "стабильно одна и та же", тогда можно воспользоваться case
case Arow of
0: begin
sgrResults.Canvas.Brush.Color := clYellow
sgrResults.canvas.FillRect(Rect);
sgrResults.canvas.TextOut(Rect.Left +2, Rect.Top +2, sgrResults.Cells[ACol,ARow]);
end;
end;
Make (2006-02-28 17:19:00) [2]событие OnDrawCell вызывается при прорисовке всех ячеек попорядку? Т.е. например при наведении фокуса на стринггрид заново перерисовываются все ячейки?
umbra (2006-02-28 17:15:00) [3]
> ResultArray[ARow-1].Idling
а что это? вообще приведенный код может не давать ожидаемых результатов потому, что условие не выполняется
Make (2006-02-28 16:55:00) [4]очему не работает такой код:
procedure TIndexMainForm.sgrResultsDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
TempIdx: Integer;
begin
if (ACol<1) or (ARow<1) then
Exit;
if ResultArray[ARow-1].Idling then // если заменить на
//if ARow=2 then то работает
begin
sgrResults.Canvas.Brush.Color := clYellow
sgrResults.canvas.FillRect(Rect);
sgrResults.canvas.TextOut(Rect.Left +2, Rect.Top +2, sgrResults.Cells[ACol,ARow]);
end;
end;
Make (2006-02-28 16:02:00) [5]Я использую OnDrawCell, но она рисует только сфокусированную ячейку
if нужная строка then:
begin
StringGrid1.Canvas.Brush.Color := clYellow;
StringGrid1.canvas.FillRect(Rect);
StringGrid1.canvas.TextOut(Rect.Left +2, Rect.Top +2, sgrResults.Cells[ACol,ARow]);
end;