Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо