Форум: "Начинающим";
Текущий архив: 2016.05.01;
Скачать: [xml.tar.bz2];
ВнизGridKeyUp и InputBox - застреваю при нажатии Ентера Найти похожие ветки
← →
Дмитрий (2014-09-26 15:20) [0]В обработчике грида KeyUp проверяю нажатые клавиши (Ентер или Ф2) и вызываю ИнпутБокс.
После ввода значения и подтверждения Ентером тут же повторно открывается ИнпутБокс.
Как предотвратить?
← →
junglecat © (2014-09-26 15:21) [1]а почему не KeyPress?
← →
Дмитрий (2014-09-26 15:44) [2]Ф2 не отрабатывается по КейПресс
← →
junglecat © (2014-09-28 11:35) [3]тогда почему не KeyDown?
← →
Дмитрий (2014-09-30 14:38) [4]чтобы обработка происходила при отпускании клавиши
думаете, повлияет на сабж?
← →
junglecat © (2014-09-30 14:52) [5]повлияет, так как сейчас ловится ненужный keyup от инпутбокса, судя по всему
← →
Дмитрий (2014-09-30 15:55) [6]взамен будет ловиться ненужный кейдаун
разве нет?
← →
junglecat © (2014-09-30 15:59) [7]нет. кейдаун уже отловлен инпутбоксом при закрытии
← →
Дмитрий (2014-09-30 16:50) [8]почему кейап не ловится?
← →
junglecat © (2014-09-30 17:21) [9]потому что модальные диалоги закрываются по факту нажатия, а не отпускания
← →
Плохиш © (2014-09-30 18:36) [10]Key := 0;
← →
junglecat © (2014-09-30 21:00) [11]> Key := 0;
здесь не поможет
← →
Плохиш © (2014-10-01 00:33) [12]
> здесь не поможет
это скажет системе, что нажатие кнопки уже обработано и дальнейшая обработка не требуется.
← →
junglecat © (2014-10-01 10:06) [13]> [12] Плохиш © (01.10.14 00:33)
в данном случае мы все равно попадем в обработчик keyup после закрытия инпутбокса, так что не сработает
← →
Дмитрий (2014-10-01 14:36) [14]> Key := 0;
подтверждаю,
пробовал - не памагаит
((((
← →
junglecat © (2014-10-01 15:00) [15]если уж очень хочется повесить на 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-06 18:22) [16]к настоящему моменту у меня был реализован вариант с подпоркой
попробовал перенести в обработчик кейдаун - там подпорка не потребовалась. а внешний эффект абсолютно идентичен
даже при длительном удержании клавиши
так что, приму кейдаун
вариант с
PeekMessage(WinMsg, Handle, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE);
не помог, лишний "ентер" не сбрасывается
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.05.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c