Вниз
Скачать: CL | DM;

Почему падает деструктор   Найти похожие ветки 

 
id_privin ©   (2002-09-04 12:43) [0]

Второй день не могу понять. Есть класс наследник TObject.
В нем несколько моих полей. конструктор. деструктор.
Создаю. Пользаю. Вызываю Free. Весь мой код деструктора срабатывает нормально, а при вызове inherited выдает Access Violation.

Поставил деструктор в try except. Вызвал много раз. Потерь памяти не заметил. Те вроде все чистит.

В чем может быть дело? Профи ответте кто знает.


 
gek ©   (2002-09-04 12:45) [1]

приведи код


 
Dimka Maslov ©   (2002-09-04 12:45) [2]

Приведи код конструктроа и деструктора для начала


 
Виктор Щербаков ©   (2002-09-04 12:48) [3]


> Весь мой код деструктора срабатывает нормально, а при
> вызове inherited выдает Access Violation.

Вообще интересно. У TObject - пустой деструктор.


 
Digitman ©   (2002-09-04 12:48) [4]

приведи декларацию и реализацию деструктора


 
id_privin ©   (2002-09-04 18:56) [5]

TMyObj = class(TObject)
......
List : StringList;
Constructor Create(....); overload;
Constructor Create(....); overload;
....
Destructor Destroy; override;
end;

Constructor Create(...)
begin
inherited Create;
List := TStringList.Create;
end;

destructor Destroy
begin
List.Free;
Inherited Destroy;
end;

Собственно все.

To Виктор Щербаков © ну если он пустой то я не порога вылетает между строк кода. Хотя если долго жать F7 почемуто видно что после пользовательской части деструктора вызывается еще куча чего-то на asm-е. Уж не знаю что это, но падает там.



 
Ученик ©   (2002-09-04 19:10) [6]

TMyObj.Create.Free не вылетает ?


 
KSergey ©   (2002-09-05 07:25) [7]

Действительно странно... Ну разве что я обычно просто пишу
destructor Destroy
begin
...
inherited;
end;

хотя это вроде одно и тоже.
А вообще Ученик © (04.09.02 19:10) прав: если такой код не вылетает - значит косяк внутри других методов, просто проявляется это лишь в деструкторе (можно проверить чему равно значение List на момент вызова деструктора, например: ссылается ли на реальный объект). А вот если и такой простой код не работает (TMyObj.Create.Free) - тогда совсем не понятно.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
1-50687
maxim2
2002-09-05 07:52
2002.09.16
Подскажите функцию формирования опр. количества пробелов.


14-50962
JAndrey
2002-08-22 10:24
2002.09.16
Где взять компоненты для работы с COM, LPT, EPP, ECP портами???..


6-50891
boogier
2002-07-12 11:26
2002.09.16
TNMPOP3 - как получить прикрепленный файл?


3-50651
Gesser
2002-08-25 18:06
2002.09.16
MDB(access), связаны 2 табл, обновление в Delphi не проиходит


4-51039
Rookie
2002-07-26 13:35
2002.09.16
User32 под микроскопом




   Наверх