![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ComboBox
Alex8 © (2008-04-01 12:31:00)Уважаемые мастера !
Помогите, пожалуйста, разобраться в следующей ситуации.
Выпадающий список компонента ComboBox формируется при
открытии формы в процедуре FormActivate() Посредством
cmb.Item.Add();
Дальше. Если мои действия стандартны (т.е. кликаю
кнопку списка, а затем выбираю одну из его позиций),
то все нормально.
А вот если после раскрытия списка кликнуть в любом
пустом месте формы (вне списка), то взникает исключение
непонятно к чему относящееся.
Текст сообщения следующий:
" 65536 is not a valid value for field 'iKod'.
The allowed range is -32768 to 32767"
При этом все это происходит только с тем ComboBox'ом,
Список которого формируется в процедуре FormActivate().
Остальные ComboBox этой формы работают нормально.
Кликай где угодно-никаких исключений.
Пробовал остановиться по событию OnClick - не останавливается.
я в полной растеряности. Спасибо
tesseract (2008-04-01 13:21:00) [41]
> а в том, что в поле смалинт попадает itemindex при уходе
> с комбо. а это -1.
Smallint не понимает -1, может word ? Возможно только если одно значение знаковое (iKOD), а другое не очень. И только если в беззнаковое предварительно попадёт -1, а потом будет приравнено к знаковому
> 65536 это -1 по-русски.
Только для word справедливо.
{RASkov} (2008-04-01 13:18:00) [42]> [9] Reindeer Moss Eater © (01.04.08 13:08)
> проблема-то не в событиях, а в том, что в поле смалинт попадает
> itemindex при уходе с комбо. а это -1
В каком поле? :) У Комбобокса полей как таковых нет)
Это понятно что -1 кудато попадает, но где это может попадать? В реализации обработчиков событий комбика)...
Reindeer Moss Eater (2008-04-01 13:08:00) [43]проблема-то не в событиях, а в том, что в поле смалинт попадает itemindex при уходе с комбо. а это -1.
Сергей М. (2008-04-01 13:06:00) [44]
> FormCreate, как я и опасался, показал, что список формируется
> раньше создания самого ComboBox
Момент формирования списка тебе полностью подконтролен.
> Не добавлять же кнопку создания
> списка
Конечно, не не нужна она.
Такая кнопка уже есть - кнопка открытия выпадающего списка комбобокса, при нажатии на которую возбуждается событие OnDropDown
{RASkov} (2008-04-01 13:05:00) [45]> [5] Alex8 (01.04.08 13:01)
Какие обработчики задействованы у данного комбобокса? Возможно в них ошибка, раз говоришь наполнение проходит нормально и уже при раскрытии и "не правильном" закрытии - ошибка.
oldman (2008-04-01 13:03:00) [46]
> Выпадающий список компонента ComboBox формируется при
> открытии формы в процедуре FormActivate()
ЗАЧЕМ??????????
Alex8 (2008-04-01 13:01:00) [47]> Используй FormShow или FormCreate. Activate тебе задолбает.
FormShow дает тот же результат.
FormCreate, как я и опасался, показал, что список формируется
раньше создания самого ComboBox
> При бездумном использовании хрен редьки не слаще будет
Так, что сделать, если подумать? Не добавлять же кнопку создания
списка.
Сергей М. (2008-04-01 12:38:00) [48]
> tesseract © (01.04.08 12:33) [1]
> Используй FormShow
При бездумном использовании хрен редьки не слаще будет)
Reindeer Moss Eater (2008-04-01 12:35:00) [49]65536 это -1 по-русски.
точнее -1 это 65536, которое не влазит в смалинт.
Сергей М. (2008-04-01 12:35:00) [50]
> ComboBox формируется при
> открытии формы в процедуре FormActivate()
А теперь подумай головой, что произойдет, если это событие будет возбуждено неоднократно в ходе работы твоего приложения.
tesseract (2008-04-01 12:33:00) [51]
> Список которого формируется в процедуре FormActivate().
Используй FormShow или FormCreate. Activate тебе задолбает.
> " 65536 is not a valid value for field 'iKod'. The allowed
> range is -32768 to 32767"
Поле Smallint у тебя наверно с адской скоростью заполняеться..