Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

Access violation   Найти похожие ветки 

 
Alexs   (2012-03-05 11:43) [0]

есть некая программа после выполнения определенных действий вылетает
Access violetion at address 0040602A in module sm.exe read of address ffffffc4.
через отладчик выхожу вот на эту строку кода
@@haveVMT:
       MOV     EDI,[EDX].vmtDynamicTable
это System.pas самого delphi XE2 как выйти на строку кода в самой программе?
в программе создается много компонентов но все они удаляются таким вот образом
for i := 0 to pScrollBox.ControlCount - 1 do
 begin
   pScrollBox.Controls[0].Free;
 end; // for
destroy ничего не меняет


 
CRLF   (2012-03-05 12:14) [1]

for i := Pred(pScrollBox.ControlCount) downto 0 do
begin
  pScrollBox.Controls[i].Free;
end;


 
Dimka Maslov ©   (2012-03-05 12:30) [2]

1. Есть такая замечательная весчь - называет Call Stack. Показывает (по мере сил, конечно) всю последовательность вызовов подпрограмм, приведшую к текущему месту.

2. Если контрол был добавлен через InsertControl или через присвоение Parent, то он будет удалён вместе со всеми. Отдельно удалять его не надо.


 
Ega23 ©   (2012-03-06 13:59) [3]


> в программе создается много компонентов но все они удаляются
> таким вот образом
> for i := 0 to pScrollBox.ControlCount - 1 do


Во-первых, конкретную ошибку тебе уже показали [1]
Во-вторых, если компоненты правильно создавать, то и убивать их самому не надо будет, у них механизм самоликвидацией через Owner заложен.
Ты же не пишешь деструктор формы, хотя накидываешь на неё в design-time кучу контролов.


 
Ega23 ©   (2012-03-06 15:07) [4]


> Во-первых, конкретную ошибку тебе уже показали [1]


Тут вот товарищи поправили, а я и проглядел.
Ошибки-то у автора нет, он нулевой элемент удаляет. Это не оптимально, т.к. ненужный Move много раз делается, но не ошибка.

Мне кажется, что это из-за Controls, а не Components. Надо код создания смотреть.


 
Dimka Maslov ©   (2012-03-06 17:17) [5]

По моему уничтожает объекты всё-такие Оwner, a не Parent. Вот у нас и получается, что Parent прибил их "таким вот образом ", а потом Owner пытается сделать это ещё раз в собственном деструкторе


 
Anatoly Podgoretsky ©   (2012-03-06 17:47) [6]

> Dimka Maslov  (06.03.2012 17:17:05)  [5]

Визуальные контролы убиваются по parent, они могут не иметь собственника.
Проблемы с удалением по Owner нет, при убиение по Controls он убирается
также и из списка Сomponents


 
Ega23 ©   (2012-03-11 13:36) [7]


> По моему уничтожает объекты всё-такие Оwner, a не Parent.
>  Вот у нас и получается, что Parent прибил их "таким вот
> образом ", а потом Owner пытается сделать это ещё раз в
> собственном деструкторе


Чё гадать-то, загляни в код.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.041 c
15-1421388097
Silvestr22
2015-01-16 09:01
2015.09.10
SSD кеш на неосновной диск - возможно ли ?


4-1272049250
@!!ex
2010-04-23 23:00
2015.09.10
Как из service удалить куки для всех пользователей?


4-1271754311
QAZ
2010-04-20 13:05
2015.09.10
FindFirstFileW и FindNextFileW


15-1414158286
Дмитрий С
2014-10-24 17:44
2015.09.10
Удаление SpeedChecker


15-1413142327
xayam
2014-10-12 23:32
2015.09.10
Задача





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский