Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что-то туплю с раскрашиванием строк TDBGrid(Eh) [D7]


TheEd ©   (2015-09-08 15:48:00) 

Уважаемые мастера! Началось с того, что часть строк в DBGridEh решил подкрасить бледным цветом (нередактируемые), потом к ним поля присоединились, получилось примерно так:
procedure TSomeForm.SomeGridGetCellParams(Sender: TObject;
 Column: TColumnEh; AFont: TFont; var Background: TColor;
 State: TGridDrawState);
begin
 inherited;
 if (not quSomeDatasetSomeIntegerField.AsBoolean) // 0 - false, 1 - true флаг редактируемости
    or
   (Column.FieldName = 'NotEditingField1')
 then
 begin
   Background := Darker(clWindow, 10); // темнее
   AFont.Color := Lighter(clWindowText, 30); // светлее
 end;
end;

Всё работает, но как вычислить вставленную запись, чтобы её не подсвечивать?


TheEd   (2015-09-09 00:38:00) [1]

Нет, разобрался сам. Если кому пригодится:
В момент вставки, логическое поле quSomeDatasetSomeIntegerField, которое формируется как селект из хранимой процедуры - null!
Т.о. достаточно это проверить и текущая вставленная строка может быть подсвечена особо:
procedure TSomeForm.SomeGridGetCellParams(Sender: TObject;
 Column: TColumnEh; AFont: TFont; var Background: TColor;
 State: TGridDrawState);
begin
 inherited;
 if quSomeDatasetSomeIntegerField.IsNull then
   Background := clYellow;
 if (not quSomeDatasetSomeIntegerField.AsBoolean) // 0 - false, 1 - true флаг редактируемости
    or
   (Column.FieldName = 'NotEditingField1')
 then
 begin
   Background := Darker(clWindow, 10); // темнее
   AFont.Color := Lighter(clWindowText, 30); // светлее
 end;
end;

Само собой, после любых телодвижений с данными надо CloseOpen сделать.


TheEd   (2015-09-08 23:56:00) [2]

По ходу не там вопрос задал. Счас в Базы перенесу...


Наверх

Титульная страница Поиск, карта сайта Написать письмо