Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Внизглюк в родном TComboBox? Найти похожие ветки
← →
Big Error (2003-12-16 00:11) [0]Имеем Delphi 7, форму, а на ней TComboBox.
TComboBox.Strings[0] равно "" (пустая строка).
TComboBox.Strings[1..n] содержат любые строки.
Когда юзер выбирает в выпадающем меню любую строку от "1" до "n" - проблем нет. Но стоит ему выбрать строку "0" - происходит access violation в ntdll.dll
Причем, если присвоить TComboBox.Strings[0]:=" " (пробел или любой другой символ(ы) - выбор нулевой строки происходит без проблем.
Что это - глюк? Фича? Как бороться? Можно, конечно, оставить пробел, но..
← →
mfender (2003-12-16 00:35) [1]А зачем пустая первая строка?
А если любую другую строку оставить пустой и выбрать ее - такая же беда?
← →
Big Error (2003-12-16 18:39) [2]Ага, сейчас проверил, выбор любой пустой строки приводит к access violation.
Строка же пустая первой нужна, чтобы юзер мог оставить данный параметр незаполненным, а выбрав что-то, не стирать строку самостоятельно - просто выбрать пустую строку.
Видимо, придется заюзать какой-то другой компонент, например, из EhLib - он лишен этого глюка.
← →
Семен Сорокин (2003-12-16 19:02) [3]ошибка не в делфе, а в том что руки не оттуда растут.
посмотри обработчик onChange твоего ComboBox"а, отладчиком пройдись чтоль.
вот так всегда первым делом на Delphi валить.
← →
Big Error (2003-12-16 19:18) [4]А на кого мне еще валить если исключение происходит в стандартном модуле Controls.pas? А именно в строке:
Result:=CallWindowProc(FDefWndProc, FHandle, Msg, WParam, LParam);
Ну, только если на Билла Г. валить остается.
← →
panov (2003-12-16 20:01) [5]У меня в D6 такой ошибки не возникает. Уверен, что нет ее и в D7.
Приводи код обработчиков, иначе ничего не подсказать.
← →
belyh (2003-12-16 20:14) [6]У меня такое было.
ошибка возникает не в тот момент когда выбираешь пустую строку из списка - а когда пытаешься присвоить это значение чему либо.
типа:
....... .value:=combobox.text;
← →
TUser (2003-12-16 20:17) [7]А в D7 такая ошибка возникает и без всяких обработчиков. В design time добавляем нужные Item"ы, и при выборе первого (пустого) получаем AV.
← →
Big Error (2003-12-16 20:19) [8]Уважаемые! :)
Нет никакого кода обработчика, нет его в принципе.
Так как мне нужно просто значение из TComboBox.Text, то я его оттуда и беру, а в обработчике никаких значенией не меняю. В этом-то все и дело!
Усомнившись в прямости моих рук (хотя уж не первый десяток лет, как я пишу софт), я сейчас просто создал новый пустой проект - пустая форма, на нем один TComboBox. В Объект Инспекторе ручками заполняю:
1 строка - пустая
вторая - "брям-брям"
третья - "бла-бла"
Запуск - выбор _не_ пустой строки - норма. Выбор пустой строки - access violation в ntdll.dll
Автоматом подгружается Controls.pas и показывается, что вылет произошел при вызове CallWindowProc(FDefWndProc, FHandle, Msg, WParam, LParam).
Поэтому, все же, проблема либо в Дельфи 7, либо в Windows XP Pro SP1 Russian.
А может и именно в моем экземпляре Винды причина. Но она у меня уже года полтора работает без нареканий.
В общем, голова кругом и удивление - проблема, блин, на пустом месте. :)
Хотя, уже не проблема, конечно. Поставил другой компонент а-ля TComboBox - работает и не пищит.
← →
Sergey_Masloff (2003-12-17 00:29) [9]да это глюк D7. "патч" на сайте борланда. Ссылку не помню обсуждалось это на этом форуме с месяц назад. Автор топика я исчерпывающий ответ дал MBo
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c