Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не срабатывает OnExit для компонента TEdit (в некоторых случаях). / 6 сообщений из 6, страница 1 из 1
24.05.2019, 10:35
    #39817554
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
Совсем вкратце:
При переходе фокуса с Edit на узел TreeView (и MainMenu) у Edit не срабатывает обработчик OnExit, в остальных случаях срабатывает;

Вкратце:
Есть Form, на ней есть Panel1.
На Panel_lvl1 есть TreeView и ScrollBox.
На ScrollBox динамически создаются в некоторых значительных количествах Panel_lvl2.
На Panel_lvl2 динамически рисуются всякие нужные мне поля отображения (label, Image и прочее неважное) и поле для ввода Edit, тут же при динамическом создании Edit прикручивается обработчик OnExit к каждому. В котором проверяется введенные пользователем данные (проверка на число и на диапазон), если всё правильно - то число запоминается в массив данных, если неправильно - сбрасывается до исходного (ну и сообщение о ошибке ввода можно вывести).
Но есть одно "но!", при клике на узле TreeView (ещё не срабатывает при клике на MainMenu) не срабатывает обработчик OnExit, ничего не проверяется и не сохраняется.

Можно ли как-нибудь заставить всегда срабатывать обработчик OnExit? Если нет, как проще всего реализовать проверку динамически генерируемых (!) Edit-ов на вводимое содержимое и последующее сохранение.
Из моих мыслей (костылей):
1. Проверять и сохранять при вводе каждого символа, но сбрасывать только при OnExit.
2. Обрабатывать событие формы OnClick, но тут куча сложностей: как отследить какой Edit был выделен, что первое сработает OnClick или TreeViewChanging?
3. Как-то впихнуть обработку ввода в TreeViewChanging..

Может что подскажите дельного?
...
Рейтинг: 0 / 0
24.05.2019, 10:37
    #39817557
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
Андрей Игоревич,
Для наглядности:
...
Рейтинг: 0 / 0
24.05.2019, 11:14
    #39817611
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
Внизу повесить кнопочку "Сохранить", при нажатии на которую проверяется правильность ввода значений.
1. Если все значения введены правильно, то происходит сохранение
2. Если одно из значений неверно, то выдаётся сообщение и курсор переводится в Edit с неправильным значением.
...
Рейтинг: 0 / 0
24.05.2019, 11:29
    #39817628
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
DimaBrВнизу повесить кнопочку "Сохранить", при нажатии на которую проверяется правильность ввода значений.
1. Если все значения введены правильно, то происходит сохранение
2. Если одно из значений неверно, то выдаётся сообщение и курсор переводится в Edit с неправильным значением.
Думал о таком варианте, но забыл уточнить - на каждом узле дерева будут генерироваться свои настройки, при том узлов будет куда больше, чем на картинке (сотни узлов и тысячи параметров). При наличии кнопки каждый раз придется заставлять пользователя сохранять каждую страничку. Что не очень удобно, а главное - совсем не интуитивно, сейчас везде "сохранить" срабатывает уже ко всем настройкам, а не к каждой страничке.
Но как вариант можно...
Но тогда логично в TreeViewChanging тоже самое делать, о чем я в п.3 писал.
...
Рейтинг: 0 / 0
24.05.2019, 11:56
    #39817658
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
Значит, при смене узла дерева проверять правильность введения данных, и не давать поменять узел, если данные неправильные
...
Рейтинг: 0 / 0
24.05.2019, 16:35
    #39817895
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
Повесить на смену узла самое логичное. Только еще предусмотреть, чтобы перед любыми действиями с данными вызывался "уход" с текущего узла.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не срабатывает OnExit для компонента TEdit (в некоторых случаях). / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]