| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Ошибка при удалении динамической кнопки |
| Автор: RDC 8.6.2008, 21:31 | ||
| Вылетает ошибка Access violation at address 00440D4E in ..... Подозреваю что проблема в динамических кнопках. Вот код
|
| Автор: 586 9.6.2008, 08:17 |
В какой строчке? Приведи полное сообщение об ошибке. |
| Автор: RDC 9.6.2008, 08:45 | ||
| Project Project2.exe raised exception class EAccessViolation with message 'Access violation at address 00440D36 in module 'Project2.exe'. Read of address FFFFFFEE'. Process stopped. Use Step or Run to continue. И указывает на строчку 10... почему то.
|
| Автор: ama_kid 9.6.2008, 08:51 |
| RDC, показывай код, где вызывается ButShow. И еще непонятно - как у тебя из обычной функции (ButShow) видно Panel1... |
| Автор: Aline 9.6.2008, 12:33 |
| Подключи CodeGuard и пройдись отладчиком. CodeGuard дает больше информации при таких ошибках |
| Автор: RDC 9.6.2008, 19:10 | ||
Вот код где вызывается ShowBut
Добавлено через 5 минут и 6 секунд Ещё бывает в том же месте выскакивает ошибка Abstract Error. |
| Автор: ama_kid 9.6.2008, 19:23 |
| Хм... А где вызывается QuestNext? Случаем не в OnCreate формы? Есть подозрение, что панель к тому моменту еще не создана, чтобы обращаться к её свойству Owner... |
| Автор: RDC 9.6.2008, 21:05 | ||
Нет не в OnCreate. По кнопочке вызывается. |
| Автор: RDC 9.6.2008, 22:34 | ||
Вот в этом коде поставил 5 строку в конец if и ошибка исчезла. Но теперь то редко появляется Abstract Error... Мучаю компилятор.
|
| Автор: RDC 10.6.2008, 01:47 |
| Ошибка Abstract Error изредка появляется, заметил, когда большее кол-во кнопок меняется на меньшее (например было 5 кнопок, они стираются и выводится три кнопки). В принципе тема закрыта, всем спасибо. |
| Автор: RDC 11.6.2008, 11:46 | ||
| Сегодня общался со своим предадом. Он сказал следующее: 1. 6 сроку надо заменить на p[i]->Free(); 2. Что она никогда не выполниться!!!
Добавлено через 21 секунду А что такое delete []p; он ваще не знает. Кто объяснит? |
| Автор: HappyLife 11.6.2008, 11:53 | ||
| RDC, Ошибка случаем возникает не при закрывании формы? Все просто. Если ты даешь родителя объекту, Родитель сам заботится об удалении, а ошибка может возникать из-за двойного удаления обекта. Так что ты либо, создавай кноку так
|
| Автор: 586 11.6.2008, 12:29 | ||
Можно. В отладчике Break Point срабатывает. Кто прав? Отладчик или препод? Освобождение массива указателей. У меня код нормально работает. Вызываю несколько раз следующий код:
Нигде ошибка не появляется. Добавлено через 4 минуты и 32 секунды У тебя какой билдер? Я на 6 тестировал. |
| Автор: 586 11.6.2008, 13:27 | ||
При создании нескольких экземпляров формы они будут конфликтовать из-за статических переменных. Переделал.
|
| Автор: RDC 12.6.2008, 00:51 | ||
Препод вегда прав. Это даже не обсуждается ) Билдер тоже 6. Щас буду тестировать передел. Спасибо огромное. |