0 / 0 / 1
Регистрация: 14.05.2015
Сообщений: 34
|
||||||
1 | ||||||
Access Violation при попытке удалить "существующий объект"14.05.2015, 22:58. Показов 1322. Ответов 7
Метки нет Все метки)
(
Есть такой вот код.
0
|
|
14.05.2015, 22:58 | |
Ответы с готовыми решениями:
7
Структура "Список", Access Violation при вызове функции Ошибка при создании массива "Access violation. Link terminated" Ошибка при компиляции: "Access violation" Ошибка при компиляции: "Access violation at adress 32F7E924 in module 'CC32150MT.DLL'" |
Практикантроп
4787 / 2686 / 518
Регистрация: 23.09.2011
Сообщений: 5,747
|
|
14.05.2015, 23:10 | 2 |
![]() Решение
Потому что неверно. У вас же в цикле каждый компонент формы "пробуется" на принадлежность классу TImage. По правилам сначала нужно отфильтровать (ClassNameIs ) из всех компонентов именно картинки, и с ними уже можно так обращаться. ( Hint -то по идее у подавляющего большинства компонентов присутствует, но тут - дело принципа
![]()
1
|
0 / 0 / 1
Регистрация: 14.05.2015
Сообщений: 34
|
||||||
14.05.2015, 23:13 [ТС] | 3 | |||||
Значит дописать что-нибудь типа
0
|
Практикантроп
4787 / 2686 / 518
Регистрация: 23.09.2011
Сообщений: 5,747
|
|
14.05.2015, 23:13 | 4 |
И вдобавок такого рода цикл лучше начинать "сверху". А то удалите из середины..., индекс цикла уже инкрементирован, а под прежним индексом компонент окажется пропущенным.
0
|
0 / 0 / 1
Регистрация: 14.05.2015
Сообщений: 34
|
|
14.05.2015, 23:14 [ТС] | 5 |
0
|
Практикантроп
4787 / 2686 / 518
Регистрация: 23.09.2011
Сообщений: 5,747
|
|
14.05.2015, 23:16 | 6 |
Нет, первый анализ - на принадлежность классу, и только в положительном случае вот это: ((TImage*)Form1->Components[i]. А вообще, мэтры С++ (и С) избегают такого явного указания и применяют ..._cast .
0
|
0 / 0 / 1
Регистрация: 14.05.2015
Сообщений: 34
|
|
14.05.2015, 23:18 [ТС] | 7 |
Окей. Понял Вас. К сожалению, я не мэтр, да и сроки поджимают. Курсовую сдам, и обязательно посмотрю про ..._cast.
![]()
0
|
Супер-модератор
![]() ![]() |
|
14.05.2015, 23:21 | 8 |
Не ..._cast, а именно dynamic_cast, чтобы, в случае невозможности каста (а значит, в случае когда тип компонента не тот, который нужен) вернулся NULL...
1
|
14.05.2015, 23:21 | |
Помогаю со студенческими работами здесь
8
При запуске уже скомпелированной программы ошибка: "Access violation at address in module. Write of address." Ошибка access violation in adress. in module "dclite60.bpl" Подключение библиотеки вызывает ошибку "access violation"
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |