![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGridEh проблемы перехода из режима редактирования [D7]
DelphiLexx © (2007-05-14 15:39:00)В FIBDataSet'e есть поле Percent, в DBGridEh'e по этому полю происходит суммирование и эта сумма отображается в Footer'e. В FIBDataSet.AfterPost'e я использую процедуру CheckPercentSum. Данная функции проверяет сумму процентов: если она > 100, то колонка Footer'a подсвечивается красным, если < 100, то желтым, если = 100, то зеленым.
procedure
TMyFrom.CheckPercentSum;
var
Value: Double;
ColumnEh: TColumnEh;
begin
ColumnEh := dgrDDB.GetColumnByFieldName('PERCENT');
if ColumnEh <> nil then
begin
Value := 0;
try
Value := StrToFloat(dgrDDB.GetFooterValue(0, ColumnEh));
except
Exit;
end;
if (Value > 100) then
begin
ColumnEh.Footer.Color := clMistakeMax;//красный
ColumnEh.Footer.Font.Color := clBlack;
end
else if (Value < 100) then
begin
ColumnEh.Footer.Color := clMistakeMin; //желтый
ColumnEh.Footer.Font.Color := clBlack;
end
else if (Value = 100) then
begin
ColumnEh.Footer.Color := clFooterColor; //зеленый
ColumnEh.Footer.Font.Color := clFooterFont;
end;
end;
end;
Проблема возникает в том, что когда я ввел в ячейку грида значение процента и затем нажмал клавишу Enter, ячейка все равно остается в режим редактирования, хотя должна была перевестись в режим не редактирования, и только повторное нажатие Enter спасает данную ситуацию. Как заставить грид сразу по нажатию на enter переходить из режима редактирования в режим не редактирования. DBGridEh.EditorMode := False не помогает
ANB (2007-05-15 15:52:00) [1]
> Да ставил я Post в ОnKeyPress когда нажимается Enter - не
> помагло
Не верю. Скорее всего ОnKeyPress не отрабатывал.
DelphiLexx (2007-05-14 18:32:00) [2]
> Если так мешает - перехвати в гриде кнопку энтер и делай
> пост явно (если нужен - для этого достаточно проверить состояние
> НД).
Да ставил я Post в ОnKeyPress когда нажимается Enter - не помагло
DelphiLexx (2007-05-14 18:32:00) [3]
> я что-то не увидел TDBGridEh.OnGetCellParams
Что-то я не понял причем здесь OnGetCellParams
PEAKTOP (2007-05-14 17:56:00) [4]я что-то не увидел TDBGridEh.OnGetCellParams
ANB (2007-05-14 17:03:00) [5]Режим редактирования не у грида, а у набора данных. Помнится, вроде как Post выполняется неявно только при перемещении по НД.
Если так мешает - перехвати в гриде кнопку энтер и делай пост явно (если нужен - для этого достаточно проверить состояние НД).