Форум: "Начинающим";
Текущий архив: 2017.05.21;
Скачать: [xml.tar.bz2];
ВнизЧто-то туплю с раскрашиванием строк TDBGrid(Eh) Найти похожие ветки
← →
TheEd (2015-09-08 15:48) [0]Уважаемые мастера! Началось с того, что часть строк в 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-08 23:56) [1]По ходу не там вопрос задал. Счас в Базы перенесу...
← →
TheEd (2015-09-09 00:38) [2]Нет, разобрался сам. Если кому пригодится:
В момент вставки, логическое поле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 сделать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.05.21;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.001 c