Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 18.04.2019, 17:38   #1
drozdov9191
Пользователь
 
Регистрация: 13.12.2018
Сообщений: 19
Репутация: 10
Восклицание DbGrid закрашивание колонки по условию.

Добрый день.Очень сильно нужна помощь.
Имеется таблица Dbgrid, в ней есть 2 столбца:Название и количество баллов.Как сделать(прописать условие) что бы если в столбце есть значения =>60,то надо что бы закрашивалась колонка в красный цвет.

Попробовал через OnDrawColumnCell но так и не разобрался.
Миниатюры
Нажмите на изображение для увеличения
Название: 12345.jpg
Просмотров: 58
Размер:	13.2 Кб
ID:	96413  
Изображения
 
drozdov9191 вне форума   Ответить с цитированием
Старый 18.04.2019, 17:41   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,900
Репутация: 6688
По умолчанию

похожие темы внизу чем не подошли для того, что бы разобраться?
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 18.04.2019, 17:48   #3
drozdov9191
Пользователь
 
Регистрация: 13.12.2018
Сообщений: 19
Репутация: 10
По умолчанию

Нет конкретики.
drozdov9191 вне форума   Ответить с цитированием
Старый 18.04.2019, 17:51   #4
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,900
Репутация: 6688
По умолчанию

Там готовый код для конкретных ситуаций. Конкретней не бывает )
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 18.04.2019, 17:51   #5
drozdov9191
Пользователь
 
Регистрация: 13.12.2018
Сообщений: 19
Репутация: 10
По умолчанию

Помоги пожалуйста переделать под мой пример,если не трудно и раз зашёл.

Последний раз редактировалось drozdov9191; 18.04.2019 в 17:54.
drozdov9191 вне форума   Ответить с цитированием
Старый 18.04.2019, 17:59   #6
drozdov9191
Пользователь
 
Регистрация: 13.12.2018
Сообщений: 19
Репутация: 10
По умолчанию

Помогите пожалуйста правильно условие составить.
Изображения
 
drozdov9191 вне форума   Ответить с цитированием
Старый 18.04.2019, 18:02   #7
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,829
Репутация: 5617
По умолчанию

Цитата:
Сообщение от drozdov9191 Посмотреть сообщение
Помоги пожалуйста переделать под мой пример,если не трудно и раз зашёл.
закрасить всю строку:
Код:
 if  TDBGrid(Sender).DataSource.DataSet.FieldByName('количество баллов').Value>=60
   then 
    with TDBGrid(Sender).Canvas do
      begin
       Brush.Color := clRed;
       Font.Color := clWhite;
       FillRect(Rect);
       TextOut(Rect.Left + 2, Rect.Top + 2, Column.Field.Text);
      end;
и не выкладывайте код в виде изображения.
иначе Вам и ответы будут в виде изображения кода!!!


вариант 2
Код:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 
if Column.FieldName = 'количество баллов' then
 
if (Column.Field.AsDouble>=60) then
begin
TDBGrid(Sender).Canvas.Brush.Color := clRed;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
 
end;

Последний раз редактировалось Serge_Bliznykov; 18.04.2019 в 18:13.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 18.04.2019, 18:12   #8
drozdov9191
Пользователь
 
Регистрация: 13.12.2018
Сообщений: 19
Репутация: 10
По умолчанию

А что бы только колонку баллов закрашивало можно?
Огромное спасибо.Да бог вам здоровья.
drozdov9191 вне форума   Ответить с цитированием
Старый 18.04.2019, 18:14   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 25,829
Репутация: 5617
По умолчанию

Цитата:
Сообщение от drozdov9191 Посмотреть сообщение
А что бы только колонку баллов закрашивало можно?
либо добавьте в код проверку
Код:
if Column.FieldName = 'количество баллов' then
либо попробуйте вариант 2 (см. выше - я дописал свой пост)

p.s. Пожалуйста!
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 18.04.2019, 18:18   #10
drozdov9191
Пользователь
 
Регистрация: 13.12.2018
Сообщений: 19
Репутация: 10
По умолчанию

В строке if (Column.Field.AsDouble<=60) then - тут ругается.
Во втором варианте.

Последний раз редактировалось drozdov9191; 18.04.2019 в 18:22.
drozdov9191 вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрашивание строки dbgrid city32 Общие вопросы Delphi 5 13.05.2012 20:37
Закрашивание ячеек в DBGRID jimmi З Помощь студентам 2 05.05.2011 06:38
Необходимо сравнить 2 колонки и посчитать количество, удовлетворяющих условию druzimm3 Microsoft Office Excel 4 04.05.2010 00:27
Нестандартное закрашивание DBGrid Kisma БД в Delphi 4 16.02.2010 22:26
Колонки в DBGrid Len@09 БД в Delphi 6 26.01.2010 12:56


10:19.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.