Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.069 c
4-1272625269
Fred
2010-04-30 15:01
2015.09.10
Имя ярлыка


1-1330847094
rraktir
2012-03-04 11:44
2015.09.10
Проблема с DevExpress cxGrid - автоматическая перефильтрафия


15-1413837002
Юрий
2014-10-21 00:30
2015.09.10
С днем рождения ! 21 октября 2014 вторник


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


15-1417298499
Pavia
2014-11-30 01:01
2015.09.10
Родить объект