![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TString [D6]
Dudee © (2005-10-24 20:45:00)Подскажите пожалуйста, как в StringGrid'e изменить цвет конкретной ячейки и стиль, шрифт текста в ней.
Работаю с 8:00 до 23:00, поэтому времени копаться в книжках к сожалению нет :( Вся надежда на вас мастера
Dudee (2005-10-26 18:46:00) [1]Удалено модератором
Dudee (2005-10-26 18:45:00) [2]Спасибо msguns за примерчик
msguns (2005-10-26 17:48:00) [3]Просто как пример. Колонки стрингрида красятся под некий DBGrid, при этом последняя стрка, итоговая, выделяется.
procedure TMainForm.sgrChartDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ARow>0 then
with TStringGrid(Sender) do
begin
if (Tag>0) and (ARow=RowCount-1) then
Canvas.Brush.Color := clBtnFace // Режим вывода итоговой строки
else
if ACol<grAll.Columns.Count then
Canvas.Brush.Color := grAll.Columns[ACol].Color
else
if ACol<20 then
Canvas.Brush.Color := clMoneyGreen // Доп.колонки гориз.итогов
else
Canvas.Brush.Color := clCream; // Доп.колонки кон.остатков
Canvas.TextRect(Rect,2,2,Cells[ACol,ARow]);
Canvas.TextOut(Rect.Left+2,Rect.Top+2,Cells[ACol,ARow]);
end;
Dudee (2005-10-26 15:55:00) [4]Спасибо Артём, всё, как я и думал, очень просто и классно работает. Просто не знал, что у StringGrid'a есть Canvas :(
А ты думкин очень смешной, чуть не обосался, когда читал твой ответ!!! Петросяну пора на пенсию >:(
Думкин (2005-10-25 06:30:00) [5]> Работаю с 8:00 до 23:00, поэтому времени копаться в книжках
> к сожалению нет
Есть замечательная история про Резерфорда и его аспиранта. Найдете время - прочтите.
В ту же тему: сколько нужно прапорщиков чтобы завернуть лампочку? А сколько тех кто как-то работает с 8 до 23 и нифига не читает? Где больше? Кто быстрее?
:(
Карелин Артем (2005-10-24 20:55:00) [6]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ACol=2) and (ARow=3) then
begin
StringGrid1.Canvas.Brush.Color:=clRed;
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,'asda');
StringGrid1.Canvas.Font.Style:=[fsBold];
end;
end;