|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Выделить Жирным Столбец в Stringgrid??
Подскажите пожалуйста как можно сделать жирным текст только в первом столбце Stringgrida?? пробовал так:
Код:
procedure TMainForm.SGDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (ACol=0) then SG.Font.Style:=[fsBold]else SG.Font.Style:=[]; end; |
#2
|
||||
|
||||
Вот это работает хорошо (свойство DefaultDrawing установлено в false), естественно нужно еще обрабатывать прорисовку фиксированных столбцов/колонок.
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin //Выделим ячейку (3,3) цветом, а остальные зеленые if (ACol=3) and (ARow)=3 then (Sender as TStringGrid).Canvas.Brush.Color:=clRed else (Sender as TStringGrid).Canvas.Brush.Color:=clGreen; (Sender as TStringGrid).Canvas.FillRect(Rect); //Текст третьего столбца - жирным if ACol=1 then (Sender as TStringGrid).Canvas.Font.Style:=[fsBold] else (Sender as TStringGrid).Canvas.Font.Style:=[]; (Sender as TStringGrid).Canvas.TextOut(Rect.Left,Rect.Top,(Sender as TStringGrid).Cells[ACol,ARow]); end; Последний раз редактировалось Aristarh Dark, 14.12.2006 в 06:35. |
#3
|
||||
|
||||
Изменить цвет ячейки, цвет текста, стиль, шрифт и т.д, добавить значок в ячейку Можно сделать в обработчике TStringGrid(TDrawGrid).onDrawCell:
Примерно так: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin With TStringGrid(Sender),TStringGrid(Sender).Canvas Do Begin // Очистим клиентскую область ячейки FillRect(Rect); // Аттрибуты Brush.Color:=ClYellow; // цвет ячейки Font.Color:=ClBlue; // цвет шрифта Font.Style:=[fsBold]; // стиль шрифта Font.Size:=14; // размер шрифта // Добавить картинку можно нарисовав её через метод TCanvas.Draw: // Draw(Rect.Left + 2, Rect.Top + 2, значок); // А теперь выведем текст TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol,ARow]); End; end; |