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

D2006. lookup-field. DBControl

Добавлено: 29 ноя 2006, 16:02
Aristarh
(прошу прощения, что так размусоливаю свой вопрос - просто хочу избежать наводящих вопросов и может быть сам чегой-то пойму по ходу изложения:))

После перевода проекта с D5 на D2006 нарисовался глюк отображения обNULLения lookup-полей

Накидав на форму стандартных компонент
TDataBase (ибо проект наш разрабатывался давно и работает под BDE), TTable (ибо кому-то пришло в голову написать свой датасет наследник от TDataSet)
TDBEdit (потому именно они юзаются)
TdxDBEdit (аналогично и для сравнения)
TDBText (для проверки)

Существует DatasetMain.
В нем присутствуют поля:
Uid - айди записи,
URefId - ссылка на справочник (DataSetSecond)
URefText - lookup-поле, значение которого подсасыватся из DataSetSecond

Всё это лежит на формочке редактирования одной конкретной записи

проявилась следующая ситуация:

URefText выводится через TDBEdit. Заполнение происходит по кнопочке (вызывается справочник, выбирается запись, присваивается айдишник, lookup подхватывает текст) - всё работает как нужно и как было под D5

Для удаления значения отрабатывается TDBEdit.OnKeyDown и айдишнику URefId присваивается NULL. Так вот. Под D2006 айдишник принимает (присваиваемое ему программно) значение NULL. Значение lookup-поля также становится NULL, но визуально оно обнуляется лишь после того как DBEdit теряет фокус. Табом мля с него ушли и только после этого видно что там таки да пустое значение. С TdxDBEdit та же мулька

Если к полю прикрутить скажем TDBText, то его содержимое в принципе изменится только после Post

Сталкивался ли кто-либо с подобным и что собственно рабить:)?