OnExit элемента управления съедает событие mouseup для нового элемента управления при отображении
другое окно
Проблема может быть легко воспроизведена.
Поместите 3 формы в форму. написать showmessage ('выход') в edit1's
событие onexit запустить программу дать edit1 фокус использовать мышь, чтобы дать
edit3 focus, нажмите ok, чтобы показать сообщение и посмотрите, как вы не можете написать
что-нибудь в edit3 сейчас, пока вы не нажмете мышью где-нибудь на
форма! дайте edit2 фокус, затем используйте мышь, чтобы придать edit3 фокус
Посмотрите, как вы можете ввести то, что вы хотите в edit3 сейчас!
Пока я установил, что проблема заключается в том, что edit3
не получает сообщение mouseup, когда старые элементы управления события onExit
отображает окно любого вида, я пробовал также показывать
моя собственная форма в событии onExit, тот же результат. На самом деле, окна это
под впечатлением, что мышка зажата над edit3 после
Вы нажали Ok, чтобы показать сообщение
Полагаю, это ошибка в Delphi / Windows, но как ее обойти? я
знаю, что я могу заставить WM_LBUTTONUP на событие onMouseDown edit3 (так как
это последнее событие, вызванное в процессе), но это больше, чем
утомительно и не всегда применимо
В событии onexit я показываю предупреждение и затем хочу продолжить
как обычно - перемещение фокуса туда, где фактически щелкнул пользователь.
Это возможно?