|
#1
|
|||
|
|||
TStringGrid
Вопрос по сеточке Стринг Грид
Пусть у нас есть сеточка n*n Stringgrid1. Не важно сколько фиксированных столбиков строчек. Вопрос - как сделать чтобы в какие то ячейки заносился текст одним шрифтом, а в другие другим? И вообще это возможно? Пытался сделать так stringgrid1.font.size:=8; stringgrid1.cells[1,1]:='бла бла бла'; stringgrid1.font.size:=10; stringgrid1.cells[2,2]:='бло бло бло'; -не получается, пишет всё последнимь шрифтом = 10. Можно тут что то сделать? |
#2
|
||||
|
||||
Отключить DefaultDrawing и самостоятельно перерисовывать все ячейки в событии onDrawCell. Например так:
Код:
if (ACol=1) and(AROw=1) then // для ячейки 1-1 begin StringGrid1.Canvas.Brush.color := clYellow; // цвет фона StringGrid1.Canvas.Font.Size:=14; // размер шрифта StringGrid1.Canvas.FillRect(Rect); // рисуем фон StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]); // рисуем текст end; |
#3
|
|||
|
|||
мне кажется это не очент удобно в моем случае так как строк тысячи, но попробую разобраться, спасибо.
Последний раз редактировалось Taddy23, 11.03.2010 в 14:20. |
#4
|
|||
|
|||
не совсем ничего не пашет.
У меня табличка такая - в цикле добавляет строчку и заполняет ёё,колонок - 20. Необходимо что бы первыя колонка была с шрифтом 8, все остальные с 6. Может как то попроще можно сделать? |
#5
|
||||
|
||||
Все пашет. Внимательнее просто надо быть.
Конечно можно, все в том же обработчике пишем: Код:
if ACol=1 then // для первого столбца StringGrid1.Canvas.Font.Size:=8 // размер шрифта else StringGrid1.Canvas.Font.Size:=6; StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]); |
#6
|
|||
|
|||
Спасибо, работает. что то немножко потупил
|