![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GridKeyUp и InputBox - застреваю при нажатии Ентера [D7, XP, 2003]
Дмитрий © (2014-09-26 15:20:00)В обработчике грида KeyUp проверяю нажатые клавиши (Ентер или Ф2) и вызываю ИнпутБокс.
После ввода значения и подтверждения Ентером тут же повторно открывается ИнпутБокс.
Как предотвратить?
Дмитрий (2014-10-06 18:22:00) [1]к настоящему моменту у меня был реализован вариант с подпоркой
попробовал перенести в обработчик кейдаун - там подпорка не потребовалась. а внешний эффект абсолютно идентичен
даже при длительном удержании клавиши
так что, приму кейдаун
вариант с
PeekMessage(WinMsg, Handle, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE);
не помог, лишний "ентер" не сбрасывается
junglecat (2014-10-01 15:00:00) [2]если уж очень хочется повесить на keyup, то нужен костыль
типа
S := InputBox(...);
if (S <> '') then begin
...
PeekMessage(Msg, Handle, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE);
end;
либо
if FInputConfirmed then begin
FInputConfirmed := false;
Exit;
end;
S := InputBox(...);
if (S <> '') then begin
FInputConfirmed := true;
...
end;
Дмитрий (2014-10-01 14:36:00) [3]> Key := 0;
подтверждаю,
пробовал - не памагаит
((((
junglecat (2014-10-01 10:06:00) [4]> [12] Плохиш © (01.10.14 00:33)
в данном случае мы все равно попадем в обработчик keyup после закрытия инпутбокса, так что не сработает
Плохиш (2014-10-01 00:33:00) [5]
> здесь не поможет
это скажет системе, что нажатие кнопки уже обработано и дальнейшая обработка не требуется.
junglecat (2014-09-30 21:00:00) [6]> Key := 0;
здесь не поможет
Плохиш (2014-09-30 18:36:00) [7]Key := 0;
junglecat (2014-09-30 17:21:00) [8]потому что модальные диалоги закрываются по факту нажатия, а не отпускания
Дмитрий (2014-09-30 16:50:00) [9]почему кейап не ловится?
junglecat (2014-09-30 15:59:00) [10]нет. кейдаун уже отловлен инпутбоксом при закрытии
Дмитрий (2014-09-30 15:55:00) [11]взамен будет ловиться ненужный кейдаун
разве нет?
junglecat (2014-09-30 14:52:00) [12]повлияет, так как сейчас ловится ненужный keyup от инпутбокса, судя по всему
Дмитрий (2014-09-30 14:38:00) [13]чтобы обработка происходила при отпускании клавиши
думаете, повлияет на сабж?
junglecat (2014-09-28 11:35:00) [14]тогда почему не KeyDown?
Дмитрий (2014-09-26 15:44:00) [15]Ф2 не отрабатывается по КейПресс
junglecat (2014-09-26 15:21:00) [16]а почему не KeyPress?