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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.03.2016, 17:00
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию Закрасить строку DBGrid

Помогите пожалуйста, закрасить полностью строку, где попадает мое условие
у меня закрашивается только одна ячейка, а нужно закрасить всю строку!!!!

Делаю так

Код:
if Column.FieldName = 'Статус' then
begin
if (Column.Field.AsString = 'Выполнено') then
begin
with  DBGrid.Canvas do begin
Brush.Color:=clGreen;
Font.Color:=clBlack;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
DBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;

результат

Ответить с цитированием
  #2  
Старый 16.03.2016, 17:08
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

не проверяй столбец и значение поле бери из набора
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 16.03.2016, 18:02
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

не понял, поясни пожалуйста
Ответить с цитированием
  #4  
Старый 17.03.2016, 11:07
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

первую строчку удали, а третью замени на
Код:
if Column.Field.DataSet.FieldByName('Статус').AsString='Выполнено' then
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
ApxaHGe1 (17.03.2016)
  #5  
Старый 18.03.2016, 12:08
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Код:
if Column.Field.DataSet.FieldByName('Статус').AsString='Выполнено' then
begin
with  DBGrid.Canvas do begin
Brush.Color:=$00FF77;
Font.Color:=clBlack;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
DBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;

---------------------------
Debugger Exception Notification
---------------------------
Project KiP.exe raised exception class EDatabaseError with message 'ADOQuery1: Field '' not found'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

не пойму причем тут ADOQuery1
в этой адошке у меня вообще другие запросы выполняются

Последний раз редактировалось ApxaHGe1, 18.03.2016 в 12:11.
Ответить с цитированием
  #6  
Старый 18.03.2016, 14:36
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну так смотри почему FieldByName не находит поле. может ему кириллица не нравится. на худой конец к полю можно по индексу обратиться. можно еще Column.Field на пустоту проверить, хотя без этого работает в большинстве случаев.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 18.03.2016, 15:40
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Если без дебагера запустить и ошибки через окей пропустить то он закрпсит все .. но почему ошибки эти
Ответить с цитированием
  #8  
Старый 18.03.2016, 15:53
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

в смысле закрасит все? все записи все зависимости от значения поля Статус? а если весь код в обработчике события закомментарить ошибка будет?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 18.03.2016, 18:23
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Закрасит те строки где выполнено!!! Просто ошибка берется до тех пор и выводит ее. Пока не дойдет до поля статус!
Ответить с цитированием
  #10  
Старый 18.03.2016, 19:31
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

И еще такой момент... можно как цвет поля сохранить при редактиповании? Т.е если оно зеленое. То при редактировании становится белое... как этого избежать
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter