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

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

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

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

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

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

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

Попробовал через OnDrawColumnCell но так и не разобрался.
Изображения
Тип файла: png 12345.png (4.4 Кб, 38 просмотров)
Тип файла: jpg 12345.jpg (13.2 Кб, 129 просмотров)
drozdov9191 вне форума Ответить с цитированием
Старый 18.04.2019, 16:41   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

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

Нет конкретики.
drozdov9191 вне форума Ответить с цитированием
Старый 18.04.2019, 16:51   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

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

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

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

Помогите пожалуйста правильно условие составить.
Изображения
Тип файла: jpg 123.jpg (33.5 Кб, 63 просмотров)
drozdov9191 вне форума Ответить с цитированием
Старый 18.04.2019, 17:02   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от 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 в 17:13.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2019, 17:12   #8
drozdov9191
Пользователь
 
Регистрация: 13.12.2018
Сообщений: 19
По умолчанию

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

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

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

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

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


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрашивание строки 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 21:26
Колонки в DBGrid Len@09 БД в Delphi 6 26.01.2010 11:56