Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2008, 16:43   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Запускаю программу - ничего не происходит.
У меня вот так работает:
Код:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
 if acol=1 then Font.Color:=clred else Font.Color:=clblack;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.02.2008, 16:51   #12
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Пример из моего справочника (размещен на сайте форума для всех):
Цитата:
Для раскрашивания будем использовать событие "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.lef t,rect.top,stringgrid1.cells[acol,arow]);
end;
Если Вы захотите чтобы цвет ячеек менялся в зависимости от значения в них, то можно заменить 3 линии (if acol = 2 ......) на что-нибудь вроде этого
if stringgrid1.cells[acol,arow] = 'highlight it'
then stringgrid1.canvas.brush.color := clpalered
else stringgrid1.canvas.brush.color := clwhite;
mihali4 вне форума Ответить с цитированием
Старый 11.02.2008, 17:14   #13
Almaas
Пользователь
 
Регистрация: 02.01.2008
Сообщений: 27
По умолчанию

Всем спасибо. Теперь думаю - заработает.
Almaas вне форума Ответить с цитированием
Старый 14.02.2008, 07:33   #14
Almaas
Пользователь
 
Регистрация: 02.01.2008
Сообщений: 27
По умолчанию

Извините, еще вопрос. Не совсем по теме, конечно, но все к той же таблице...
Когда я хочу шрифт сделать жирным, я пишу
StringGrid1.Canvas.Font.Style:=[fsBold];...
А вот как его сделать обратно нормальным?
пробовал [fsNormal], ругается, что я обращаюсь к свойствам формы
пробовал [fsClear], ругается на неизвестную переменную?
Неужели возврат к нормальному шрифту по-умолчанию возможен только через сохранение канвы и ее последующего восстановления?
Almaas вне форума Ответить с цитированием
Старый 14.02.2008, 10:59   #15
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Немного не так, это все же список...
Включаем жирный:
StringGrid1.Canvas.Font.Style:=Stri ngGrid1.Canvas.Font.Style+[fsBold];
Выключаем жирный:
StringGrid1.Canvas.Font.Style:=Stri ngGrid1.Canvas.Font.Style-[fsBold];
mihali4 вне форума Ответить с цитированием
Старый 14.02.2008, 11:44   #16
Almaas
Пользователь
 
Регистрация: 02.01.2008
Сообщений: 27
По умолчанию

Спасибо, mihali4, заработало.
Almaas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid Devikss Общие вопросы Delphi 8 25.05.2008 16:14
StringGrid MAcK Общие вопросы .NET 2 31.03.2008 11:40
StringGrid bart77 Помощь студентам 9 27.04.2007 09:35
StringGrid dj jo Компоненты Delphi 2 15.02.2007 07:47
Код 13 и stringGrid Alar Общие вопросы Delphi 1 08.02.2007 22:44