Динамический поиск

Здравствуйте знатоки!
Есть привередливый пользователь, который хочет, чтобы было как в интернете.
Задача вроде бы простая, но пока застрял в глюках.
Есть текстбокс. Пользователь хочет, чтобы при вводе текста раскрывался список найденных значений.
Каждая новая буква - новый список.
В InteractiveChange поставил такой код:
[code]cText = ALLT(THIS.VALUE)
IF LEN(cText) >= 3
IF USED('cdek_citylist')
USE IN SELECT('_cities')
SELECT DISTINCT CAST(city AS C(250)) AS city FROM cdek_citylist INTO CURSOR _cities ;
ORDER BY 1 ;
WHERE UPPER(cText) = UPPER(city)
IF _TALLY > 0
THISFORM.GridFindTown.RECORDSOURCE = '_cities'
THISFORM.GridFindTown.VISIBLE = .T.
THISFORM.GridFindTown.REFRESH()
ELSE
THISFORM.GridFindTown.VISIBLE = .F.
ENDIF
ENDIF
ENDIF
[/code]
На форму положил невидимый грид, убрав всё лишнее (заголовки, гридлайнс и .т.д.). Он становится видимым только если в текстбокс добавляется >= 3 букв и если _TALLY > 0.
После ввода первых 3х букв в гриде показывается вполне адекватный список.
Но при добавлении новых букв или исправления старых начинаются глюки.
При отладке обнаружил, что THISFORM.GridFindTown.Column1.text1.width становится равным 10. Принудительное изменение длины Text1 ничего не дает. И в результате появляется грид, где в первой и единственной колонке видны только первые три буквы.
Видимо проблема пустяковая, но бьюсь с ней уже полдня.

0

Автор публикации

Пользователи не найдены
Оставить комментарий
Авторизация
*
*
Генерация пароля