Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Цвет в StringGrid, можно ли... 
:(
    Опции темы
Underdark
  Дата 5.11.2004, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 12.7.2004
Где: Ульяновск

Репутация: 1
Всего: 2



Народ, я сталкнулся с такой проблемой:
Нужно выделить цветом столбец таблицы StringGrid (в смысле цвет фона ячеек). Вообще такое возможно и если возможно, то как?

Или хотя бы цвет текста в отдельных ячейках...
PM MAIL   Вверх
Zero
Дата 5.11.2004, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Underdark, я конечно давно работал, со StringGrid, и непомню как там делать многие вещи, но чтобы изменить цвет шрифта и всё остальное что сним связано, то зайди в свойство Font, он работает с шрифтом любого обекта...
Кстати если хочеш узнать как что делать со стандарными объектами delphi, то открой справочник и посмотри там расписаны основные свойства каждого стандартного объекта Delphi. smile
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 5.11.2004, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Даю направление:
Работаем с канвой в момент отрисовки...
Может получится...
PM   Вверх
Underdark
Дата 6.11.2004, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 12.7.2004
Где: Ульяновск

Репутация: 1
Всего: 2



Zero, это всё понятно, но Font меняет свойства всего объекта, а мине нужно, чтобы менялся один столбец - вот в чём загвоздка! smile
PM MAIL   Вверх
Zero
Дата 6.11.2004, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



smile
Могу только предложить, использовать несколько Srriggrido'ов, и в каждой свой цвет,
визуально буде смотрется как одна и тогда можно будет сделать всё чё ты хотел сделать сними в начале...
PM MAIL ICQ   Вверх
devmstr
  Дата 6.11.2004, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 28.4.2004
Где: Ukraine

Репутация: 2
Всего: 11



Цитата из DRKB:

Для раскрашивания будем использовать событие "OnDrawCell". Следующий код показывает, как сделать в Grid красный бэкраунд. Бэкграунд второй колонки будет зелёным.

Код


procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;  
 Rect: TRect; State: TGridDrawState);  

Const   //сдесь определяем Ваш цвет. Так же можно использовать  
       //цвета по умолчанию.  
 clPaleGreen = TColor($CCFFCC);  
 clPaleRed =   TColor($CCCCFF);  

begin  

//Если ячейка получает фокус, то нам надо закрасить её другими цветами  
if (gdFocused in State) then begin      
  StringGrid1.Canvas.Brush.Color := clBlack;  
  StringGrid1.Canvas.Font.Color := clWhite;  
end  
else  //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным  

  if ACol = 2   //Вторая колонка будет зелёной , другие - ячейки красными  
   then StringGrid1.Canvas.Brush.color := clPaleGreen  
   else StringGrid1.canvas.brush.Color := clPaleRed;  

//Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column  
//Естевственно это завит от того, есть у Вас title-Row/Columns или нет.  

If (ACol > 0) and (ARow>0) then  
 begin  
     //Закрашиваем бэкграунд  
   StringGrid1.canvas.fillRect(Rect);  

     //Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д..  
   StringGrid1.canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);  
 end;  
end;  



Если Вы захотите чтобы цвет ячеек менялся в зависимости от значения в них, то можно заменить 3 линии (if Acol = 2 ......) на что-нибуть вроде этого

if StringGrid1.Cells[ACol, ARow] = 'highlight it' then
 StringGrid1.Canvas.Brush.color := clPalered
else
 StringGrid1.canvas.brush.Color := clwhite;




Если че непонятно, спрашивай, постараюсь помочь smile

Это сообщение отредактировал(а) magician - 6.11.2004, 12:17


--------------------
Think different ©Steve Jobs 
user posted image
PM MAIL WWW   Вверх
Underdark
Дата 6.11.2004, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 12.7.2004
Где: Ульяновск

Репутация: 1
Всего: 2



Бальшая СПАСИБА! Я побёг пробовать... smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0953 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.