Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.03.2010, 11:49
Taddy23 Taddy23 вне форума
Новичок
 
Регистрация: 28.04.2009
Сообщения: 54
Репутация: 10
По умолчанию TStringGrid

Вопрос по сеточке Стринг Грид

Пусть у нас есть сеточка n*n Stringgrid1. Не важно сколько фиксированных столбиков строчек.
Вопрос - как сделать чтобы в какие то ячейки заносился текст одним шрифтом, а в другие другим? И вообще это возможно?

Пытался сделать так
stringgrid1.font.size:=8;
stringgrid1.cells[1,1]:='бла бла бла';
stringgrid1.font.size:=10;
stringgrid1.cells[2,2]:='бло бло бло';

-не получается, пишет всё последнимь шрифтом = 10.

Можно тут что то сделать?
Ответить с цитированием
  #2  
Старый 11.03.2010, 12:22
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Отключить 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  
Старый 11.03.2010, 14:16
Taddy23 Taddy23 вне форума
Новичок
 
Регистрация: 28.04.2009
Сообщения: 54
Репутация: 10
По умолчанию

мне кажется это не очент удобно в моем случае так как строк тысячи, но попробую разобраться, спасибо.

Последний раз редактировалось Taddy23, 11.03.2010 в 14:20.
Ответить с цитированием
  #4  
Старый 11.03.2010, 15:52
Taddy23 Taddy23 вне форума
Новичок
 
Регистрация: 28.04.2009
Сообщения: 54
Репутация: 10
По умолчанию

не совсем ничего не пашет.
У меня табличка такая - в цикле добавляет строчку и заполняет ёё,колонок - 20.
Необходимо что бы первыя колонка была с шрифтом 8, все остальные с 6.
Может как то попроще можно сделать?
Ответить с цитированием
  #5  
Старый 11.03.2010, 15:59
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Все пашет. Внимательнее просто надо быть.
Конечно можно, все в том же обработчике пишем:
Код:
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  
Старый 11.03.2010, 22:28
Taddy23 Taddy23 вне форума
Новичок
 
Регистрация: 28.04.2009
Сообщения: 54
Репутация: 10
По умолчанию

Спасибо, работает. что то немножко потупил
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter