C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Автоматическое дополнение вводимого текста, DBComboBox->Field->AsString рубит пробел
iAlexander
  Отправлено: 17.08.2003, 15:43


Дежурный стрелочник

Группа: Участник
Сообщений: 70




Необходимо было сделать выпадающий список с возможностью автоматического дополнения вводимого текста на основе имеющегося списка. Воспользовался примером из хелпа, немного его модифициовал, засунул в OnKeyPress — отлично работает для простых ComboBox'ов. Сделал то же самое для DBComoBox'ов, только заменил ComboBox->Text на DBComboBox->Field->AsString. Все бы ничего, но вот только теперь невозможно ввести финиширующий пробел. Пробел между уже введенными буквами поставить можно. Посмотрел, потрассировал. Оказывается, при присвоении DBComboBox->Field->AsString = TmpStr, где TmpStr- нормальная строка с пробелом, этот пробел обрубается. Видимо, Builder делает это из каких-то своих соображений. Полазил в хелпе, потрассировал заголовки — ничего не нашел. Попытался запихнуть строку внутрь AnsiString'a его методом data() (strcpy), но, оказывается, он не является реальным указателем на данные внутри AnsiString'a. Замена типа TStringField на TField тоже не помогла. Может, какие-то настройки все-таки отключают такое поведение? Или можно как-то врезать строку в обход?

Если кому-то нужен обработчик для Combobox'ов, могу его вставить.

Вернуться в Работа с базами данных в C++Builder