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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2012, 09:24   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Как подружить условия раскраски в DBGridEh

Добрый день еще раз! Не могу подружить условия раскраски в DBGridEh. Все классно раскрашивается для второй колонки в зеленый и красный цвета, в зависимости от условия. Но не работает второе условие где должно раскрашиваться в желтый и синий цвет.
Код:
Код:
procedure TForm1.DBGridEh3DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
begin
 if Column.FieldName = 'USER_ACCESS' then
 if Column.Field.DataSet.FieldByName('USER_ACCESS').AsString = 'Не заблокирован' then
 begin
  Form1.DBGridEh3.Canvas.Brush.Color := clLime;
  Form1.DBGridEh3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
 end;

 if Column.Field.DataSet.FieldByName('USER_ACCESS').AsString = 'Заблокирован' then
 begin
  Form1.DBGridEh3.Canvas.Brush.Color := clRed;
  Form1.DBGridEh3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
 end;
//код выше работает, а вот этот нет:
 if Column.FieldName = 'USER_STATUS' then
 if Column.Field.DataSet.FieldByName('USER_STATUS').AsInteger = 1 then
 begin
  Form1.DBGridEh3.Canvas.Brush.Color := clYellow;
  Form1.DBGridEh3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
 end;
 if Column.Field.DataSet.FieldByName('USER_STATUS').AsInteger = 0 then
 begin
  Form1.DBGridEh3.Canvas.Brush.Color := clBlue;
  Form1.DBGridEh3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
 end;
end;
он красит полностью строку для всех столбцов. А мне надо, чтобы красилось только в колонках которые указаны в Column.FieldName. Поправьте меня что не так?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.05.2012, 11:19   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

begin-end нормально расставить и все будет так, как надо
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.05.2012, 18:31   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Аватар, да, спасибо . Расставил и все заработало как надо :0.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подружить TwebBrowser, DLL и потоки??? d@lphi Общие вопросы Delphi 3 10.03.2012 21:09
MSAccess & VideoOCX. Как их подружить? Ангран Microsoft Office Access 0 15.05.2011 11:08
Как грамотно подружить Firebird и Interbase на 1 ПК? Alexei91 БД в Delphi 3 20.08.2010 13:29
Как подружить SendMessage и TIdHTTP zcoder Работа с сетью в Delphi 1 13.04.2009 06:01