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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2016, 11:39   #11
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а разве так не сработает?
Код:
procedure TForm1.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
   if (Key=VK_RETURN) and (DBGridEh1.DataSet.State=dsEdit) then DBGridEh1.DataSet.Post;
end;
К сожалению для обоих вариантов нет. Только для Enter.

Вот так работает для обоих:

Код:
procedure TForm1.DBGridEh1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key=VK_RETURN) then ClientDataSet1.Post;
end;

procedure TForm1.DBGridEh1ColExit(Sender: TObject);
begin
  if ClientDataSet1.State=dsEdit then ClientDataSet1.Post;
end;
bilibian вне форума Ответить с цитированием
Старый 20.09.2016, 11:40   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ага, забыл, что по Enter не переходит, Можно по OnKeyPress, исправил в #6
Вот, теперь согласен!


Цитата:
Сообщение от Аватар Посмотреть сообщение
PS вообще-то это не есть хорошо, post не должен быть после обработки каждой колонки
и тут полностью согласен! Я постом выше писал тоже самое!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.09.2016, 11:41   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Вот так работает для обоих:
Код:
procedure TForm1.DBGridEh1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key=VK_RETURN) then ClientDataSet1.Post;
end;
а не должно! Если нажать Enter несколько раз подряд, ошибки разве не возникает?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.09.2016, 11:43   #14
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ошибки разве не возникает?!
Возникает, еще как!
bilibian вне форума Ответить с цитированием
Старый 20.09.2016, 11:45   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну так добавьте туда проверку
Код:
if ClientDataSet1.State=dsEdit then
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.09.2016, 11:51   #16
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Работает, спасибо!
bilibian вне форума Ответить с цитированием
Старый 20.09.2016, 12:03   #17
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А то можно дойти до того, чтобы повесить обработчик на изменение значения и по каждой буковке делать Post в БД. Если в БД логгирование висит, вот цирк будет!
Согласен, но в данном случае в ячейке находится выпадающий список. Пользователь выбирает нужную ему запись и жмет Enter, либо совершает переход к новой строке.
bilibian вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление данных в ClientDataSet bilibian Общие вопросы Delphi 1 28.08.2016 09:58
Обновление компонента Label Karik_ Общие вопросы по Java, Java SE, Kotlin 5 03.05.2016 11:45
шифровка данных в Clientdataset iliili БД в Delphi 1 08.07.2011 20:04
Обновление отдельного компонента шаблона CodeNOT JavaScript, Ajax 2 16.04.2011 02:15
Возможно ли обновление отдельного компонента шаблона CodeNOT PHP 1 14.04.2011 19:35