Вниз
Скачать: CL | DM;

Формат ячеек в StringGrid   Найти похожие ветки 

 
Lexa2504   (2003-06-24 10:07) [0]

Уважаемые знатоки, у меня в программе данные выводятся при помощи StringGrid. Для "красоты оформления" программы нужно, чтобы одни ячейки были одного шрифты, "жирные" и выровнены влево, другие - наобарот, все по-другому ... Как это осуществить? И возможно ли это сделать этим компонентом?


 
Соловьев ©   (2003-06-24 10:12) [1]

лови событие
TDrawCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState) of object;
property OnDrawCell: TDrawCellEvent;

(Sender as TStringGrid).Canvas....


 
Семен Сорокин ©   (2003-06-24 10:13) [2]

надо обрабатывать OnDrawCell


 
Lexa2504   (2003-06-24 10:36) [3]

Если я делаю на 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:41) [4]

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;


 
NAlexey ©   (2003-06-24 10:44) [5]

Щас насчет фона будет пост наверное...


 
Lexa2504   (2003-06-24 10:50) [6]

Спасибо, все получилось.
Последний глупый вопрос, выравнивание можно как-то сделать или только таким "макаром" - Rect.Left+2, Rect.Top+2 ?


 
Семен Сорокин ©   (2003-06-24 10:53) [7]

Lexa2504 (24.06.03 10:50)
вычисли середину Rect"a, вычти половину длины печатаемого текста Canvas.textHeight(...) div 2, твари и создавай :))


 
Anatoly Podgoretsky ©   (2003-06-24 11:02) [8]

SetTextAlign не устроит?


 
Lexa2504   (2003-06-24 11:16) [9]

Семен Сорокин ©
Canvas.TextHeight(Cells[ACol, ARow])
Почему-то, и для "23" и для "8" дает одну цифру =20.
Шрифт - MS Sans Serif.


 
Sandman25 ©   (2003-06-24 11:24) [10]

Lexa2504 (24.06.03 11:16)
TextWidth



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
3-55392
Alexander Vasjuk
2003-06-18 13:43
2003.07.17
TDbf V6.3 - MasterFields не устанавливается


3-55410
Mechanikus
2003-06-23 01:33
2003.07.17
Обращение к записям через DBGrid


1-55657
KSergey
2003-07-04 10:17
2003.07.17
Указатель на функцию: как проверить его значение, а не вызвать


1-55537
Maxim Pshevlotsky
2003-07-05 15:04
2003.07.17
Как узнать названия всех файлов в каталоге


1-55501
corte ™
2003-07-04 14:58
2003.07.17
как отставить выделение на treeview хотя фокус перешел.




   Наверх