Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

TdxComboBox - OnFieldChange

Все о том как сделать что-то с помощью скриптов.
kok80
Эксперт
Сообщения: 321
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 22 раза

TdxComboBox - OnFieldChange

Сообщение kok80 » Сб окт 06, 2018 10:20 pm

TdxComboBox - OnFieldChange срабатывает только после потери фокуса Control`ем.
TComboBox - OnChange срабатывает сразу при смене значения.

Баг или фича ?
Если фича - как отследить смену значения не теряя фокус ?
Вложения
TdxComboBox.zip
(46.6 КБ) 41 скачивание

Аватара пользователя
admin
Разработчик
Сообщения: 4628
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 20 раз
Поблагодарили: 95 раз

Re: TdxComboBox - OnFieldChange

Сообщение admin » Сб окт 06, 2018 10:37 pm

Это же разные события. OnChange - это изменение содержимого визуального компонента. OnFieldChange - это изменение поля в наборе данных. Изменения записываются в поле, только после потери фокуса. На таком принципе работают все компоненты данных Lazarus и Delphi.

kok80
Эксперт
Сообщения: 321
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 22 раза

Re: TdxComboBox - OnFieldChange

Сообщение kok80 » Сб окт 06, 2018 10:40 pm

Понятно, получается никак не отследить ?
Приходит в голову - поместить TComboBox поверх TDXComboBox и отслеживать его, при смене меняя значение TDXComboBox.

kok80
Эксперт
Сообщения: 321
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 22 раза

Re: TdxComboBox - OnFieldChange

Сообщение kok80 » Сб окт 06, 2018 10:45 pm

помещаю на форму dxDateEdit1, кликаю, чтобы фокус был на нем, выбираю дату, фокус все еще на нем - но OnFieldChange срабатывает. Или я что-то не так понимаю?

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 9 раз

Re: TdxComboBox - OnFieldChange

Сообщение Гocть » Сб окт 06, 2018 10:45 pm

kok80 писал(а):Приходит в голову - поместить TComboBox поверх TDXComboBox и отслеживать его, при смене меняя значение TDXComboBox.
Правильно приходит. Других вариантов нет.

kok80 писал(а):помещаю на форму dxDateEdit1, кликаю, чтобы фокус был на нем, выбираю дату, фокус все еще на нем - но OnFieldChange срабатывает. Или я что-то не так понимаю?

Так работают DB компоненты. Поюзайте DataControls в Lazarus или в Delphi, увидите.
Фрилансер. Разработка на заказ. Консультирование.

Аватара пользователя
admin
Разработчик
Сообщения: 4628
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 20 раз
Поблагодарили: 95 раз

Re: TdxComboBox - OnFieldChange

Сообщение admin » Сб окт 06, 2018 11:42 pm

kok80 писал(а):помещаю на форму dxDateEdit1, кликаю, чтобы фокус был на нем, выбираю дату, фокус все еще на нем - но OnFieldChange срабатывает. Или я что-то не так понимаю?

Это я сделал для удобства.

kok80
Эксперт
Сообщения: 321
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 2 раза
Поблагодарили: 22 раза

Re: TdxComboBox - OnFieldChange

Сообщение kok80 » Сб окт 06, 2018 11:57 pm

Тогда, если быть последовательным, следует изменить значение в базе при выборе из списка значения визуального компонента TDXComboBox. По сути - тот же выбор из списка как и TdxDateEdit без потери фокуса.

Но, как я понимаю, тут встает вопрос, что делать при вводе с клавиатуры значения TdxComboBox...как и с TdxEdit