![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Формат ячеек в StringGrid [D6]
Lexa2504 © (2003-06-24 10:07:00)Уважаемые знатоки, у меня в программе данные выводятся при помощи StringGrid. Для "красоты оформления" программы нужно, чтобы одни ячейки были одного шрифты, "жирные" и выровнены влево, другие - наобарот, все по-другому ... Как это осуществить? И возможно ли это сделать этим компонентом?
Sandman25 (2003-06-24 11:24:00) [1]Lexa2504 (24.06.03 11:16)
TextWidth
Lexa2504 (2003-06-24 11:16:00) [2]Семен Сорокин ©
Canvas.TextHeight(Cells[ACol, ARow])
Почему-то, и для "23" и для "8" дает одну цифру =20.
Шрифт - MS Sans Serif.
Anatoly Podgoretsky (2003-06-24 11:02:00) [3]SetTextAlign не устроит?
Семен Сорокин (2003-06-24 10:53:00) [4]Lexa2504 (24.06.03 10:50)
вычисли середину Rect"a, вычти половину длины печатаемого текста Canvas.textHeight(...) div 2, твари и создавай :))
Lexa2504 (2003-06-24 10:50:00) [5]Спасибо, все получилось.
Последний глупый вопрос, выравнивание можно как-то сделать или только таким "макаром" - Rect.Left+2, Rect.Top+2 ?
NAlexey (2003-06-24 10:44:00) [6]Щас насчет фона будет пост наверное...
Семен Сорокин (2003-06-24 10:41:00) [7]with TstringGrid(Sender) do
if (ACol=0) Or (ARow=0) Then begin
Canvas.Font.Style := [fsBold];
Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow])
end
else begin
Canvas.Font.Style := [fsItalic];
Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow])
end;
Lexa2504 (2003-06-24 10:36:00) [8]Если я делаю на OnDrawCell так :
If (ACol=0) Or (ARow=0) Then
begin
(Sender as TStringGrid).canvas.Font.Style:=[fsBold];
end
else
begin
(Sender as TStringGrid).canvas.Font.Style:=[fsItalic];
end;
то не видно никакого результата
Если без canvas
If (ACol=0) Or (ARow=0) Then
begin
(Sender as TStringGrid).Font.Style:=[fsBold];
end
else
begin
(Sender as TStringGrid).Font.Style:=[fsItalic];
end;
то на форме нет половины компонентов и StringGrid "дрожит" ...
Семен Сорокин (2003-06-24 10:13:00) [9]надо обрабатывать OnDrawCell
Соловьев (2003-06-24 10:12:00) [10]лови событие
TDrawCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState) of object;
property OnDrawCell: TDrawCellEvent;
(Sender as TStringGrid).Canvas....