| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Access violation at address... |
| Автор: igmyrj 21.3.2006, 19:28 | ||||
| Итак, у меня есть форма на которой есть ListBox, 2 кнопки (добавить и удалить) и 2 edit'а. Мне надо, что бы при нажатии на кнопку Добавить в ListBox'е появлялось новое поле с именем из 1-го edit'а и запоминалось значение 2-го edit'а. Когда в ListBox'е пользователь выбирает какую-нибудь запись в этих 2-ух полях высвечивается её имя и запомненное значение 2-го edit'а. Вот код для кнопки Добавить:
Вот это происходит при клике на ListBox:
Там еще есть PaintBox, но это не существенно, проблема не в нем. А проблема вот в чем. Если у меня в ListBox'е больше 2-ух полей, то при нажатии на них (кроме как на первые два) выскакивает сообщение:"Access violation at address...и т.д" Как с этим бороться не подскажете? И еще одна проблема. Он вообще как-то коряво выводит в edit'ы данные о выбраной записи. То не выводит вообще, то выводит только о последней... P.S Я наверное плохо описал=) так что спрашивайте если что=) |
| Автор: Демо 21.3.2006, 19:33 |
| Для начала убери из названий переменных, структур зарезервированные слова - Name, Items, чтобы можно было хотя бы видеть, где у тебя объекты, а где твои переменные. |
| Автор: igmyrj 21.3.2006, 20:33 |
| Отредактировал |
| Автор: Демо 22.3.2006, 01:18 | ||||
| 1. Сразу же вопрос: В первом примере кода в else у тебя только одна строка должна выполняться или все три? Если три, тогда код нужно изменить так:
2. Что за тип MyItems? Под него ты не выделяешь память. Это так и нужно? Если это динамический массив, то зачем проверка
3. Ты не сказал, что в сообщении об Exception сказано. 4. Пройди отладчиком и посмотри, на какой строке возникает исключение. |
| Автор: igmyrj 22.3.2006, 20:00 | ||||
| Спасибо, с этим вопросом я уже справился. Но теперь возникла другая проблема на ту же тему. Форма та же самая только 2-го Edit'а нет. В общем все то же самое... Вот код для кнопки Добавить:
Вот что происходит при клике на Лист Бокс:
При исполнении этой процедуры (клик) выскакивает сообщение "Access violation...". Я не знаю, что с этим делать, не подскажете? |
| Автор: igmyrj 22.3.2006, 21:57 |
| Ладно, уже все=) Каким то образом заработало, хотя я вроде ничего и не менял |
| Автор: Dian 23.3.2006, 03:51 | ||
Здесь была проблема. High - на 1 меньше длины массива. В SetLength длина не меняется, поэтому Myitems[l] выходит за границу. |
| Автор: igmyrj 23.3.2006, 12:28 |
| Ага! Спасибо! Теперь понятно! |