powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
6 сообщений из 6, страница 1 из 1
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
    #39817554
Совсем вкратце:
При переходе фокуса с 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
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
    #39817557
Андрей Игоревич,
Для наглядности:
...
Рейтинг: 0 / 0
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
    #39817611
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внизу повесить кнопочку "Сохранить", при нажатии на которую проверяется правильность ввода значений.
1. Если все значения введены правильно, то происходит сохранение
2. Если одно из значений неверно, то выдаётся сообщение и курсор переводится в Edit с неправильным значением.
...
Рейтинг: 0 / 0
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
    #39817628
DimaBrВнизу повесить кнопочку "Сохранить", при нажатии на которую проверяется правильность ввода значений.
1. Если все значения введены правильно, то происходит сохранение
2. Если одно из значений неверно, то выдаётся сообщение и курсор переводится в Edit с неправильным значением.
Думал о таком варианте, но забыл уточнить - на каждом узле дерева будут генерироваться свои настройки, при том узлов будет куда больше, чем на картинке (сотни узлов и тысячи параметров). При наличии кнопки каждый раз придется заставлять пользователя сохранять каждую страничку. Что не очень удобно, а главное - совсем не интуитивно, сейчас везде "сохранить" срабатывает уже ко всем настройкам, а не к каждой страничке.
Но как вариант можно...
Но тогда логично в TreeViewChanging тоже самое делать, о чем я в п.3 писал.
...
Рейтинг: 0 / 0
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
    #39817658
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит, при смене узла дерева проверять правильность введения данных, и не давать поменять узел, если данные неправильные
...
Рейтинг: 0 / 0
Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
    #39817895
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повесить на смену узла самое логичное. Только еще предусмотреть, чтобы перед любыми действиями с данными вызывался "уход" с текущего узла.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не срабатывает OnExit для компонента TEdit (в некоторых случаях).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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