Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-99433
Гость22
2003-12-06 20:09
2003.12.30
Расскажите об ADO! Где почитать на русском?


1-99554
Cyberjack
2003-12-18 02:55
2003.12.30
Интерфейс MDI


14-99699
Думкин
2003-12-07 05:47
2003.12.30
С днем рождения! 7 декабря.


3-99488
BlackKing
2003-12-04 13:26
2003.12.30
Массив в параметре хранимой процедуры


14-99759
panov
2003-11-03 22:02
2003.12.30
Пара ссылок. Кто дождется, пока закачаются, тот удивится.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский