Страница 1 из 1

Изменение значения tStringEdit

СообщениеДобавлено: 25.09.2008 20:32:02
t-ea
Я раньше уже спрашивал как отследить ввод данных в StringEdit и сейчас использую событие OnTextEdited.

Однако, в случае если в поле ввода содержится какое-то значение и оно через буфер обмена заменяется на новое, то это событие срабатывает дважды: сначала с пустой строкой, затем с новым содержимым вставленным из буфера.
Так StringEdit используется для моментальной фильтрации в зависимости от содержимого, подобное поведение приводит к тому, что выполняется два запроса к базе данных, причём первый запрос — с пустой строкой, а значит и без фильтрации — приводит к выборке всех строк, что мало того что не нужно, так ещё и достаточно долго выполняется.

Что можно сделать, чтобы при вставке строки из буфера обмена, первое событие с пустой строкой пропускалось?

Re: Изменение значения tStringEdit

СообщениеДобавлено: 25.09.2008 20:51:29
Logo
tStringEdit, Это из какой бибилотеки?

Re: Изменение значения tStringEdit

СообщениеДобавлено: 26.09.2008 10:59:30
Attid
t-ea
используй onsetvalue, и внутри процедуры используй проверку на avalue

Добавлено спустя 1 минуту 41 секунду:
Logo писал(а):tStringEdit, Это из какой бибилотеки?

это МСЕ, читаем в каком форуме тема.

Re: Изменение значения tStringEdit

СообщениеДобавлено: 26.09.2008 17:53:30
t-ea
Не-е, для моей текущей идеи не подходит, так как OnSetValue срабатывает только при покидании «контрола».
При нажатии символьной клавиши, Backspace или Delete событие не вызывается.

Re: Изменение значения tStringEdit

СообщениеДобавлено: 30.09.2008 11:40:12
Attid
ну дык изменение только в OnSetValue все остальное не изменение и по ескейпу будет отменено, в таком случае я бы онкейдоун юзал.