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

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

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 выполняется неявно только при перемещении по НД.
Если так мешает - перехвати в гриде кнопку энтер и делай пост явно (если нужен - для этого достаточно проверить состояние НД).


Наверх

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