Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Exception в TObjectList при Add, из-за чего может быть?


Kolan ©   (2007-09-17 12:16:00) 

Здравствуйте,
 Есть такой класс:
  TCustomDomainObjectList = class(TObjectList)
 private
   function GetItem(Index: Integer): TCustomDomainObject;
   procedure SetItem(Index: Integer; const Value: TCustomDomainObject);
 public
   constructor Create;
   function Add(DomainObject: TCustomDomainObject): Integer;
   property Items[Index: Integer]: TCustomDomainObject read GetItem
     write SetItem; default;
 end;


function TCustomDomainObjectList.Add(
 DomainObject: TCustomDomainObject): Integer;
begin
 Result := inherited Add(DomainObject);
end;


Не могу понять почему при добавлении возникает Access Violation. Трассировка показала что возникает он здесь:
function TList.Add(Item: Pointer): Integer;
begin
  Result := FCount;
 if Result = FCapacity then
   Grow;
 FList^[Result] := Item;
 Inc(FCount);
 if Item <> nil then
   Notify(Item, lnAdded);
end;


Kolan   (2007-09-17 13:04:00) [1]

> Строки создания и вызова метода в студию.

Да разобрался уже, забыл inherited в середине иерархии классов, общий предок этой иерархии как раз и содержал поле типа  TCustomDomainObjectList…  Без inherited TCustomDomainObjectList не создавался — отсюда AV


Anatoly Podgoretsky   (2007-09-17 12:24:00) [2]

> Kolan  (17.09.2007 12:16:00)  [0]

TCustomDomainObjectList создан.
Строки создания и вызова метода в студию.


Вася Правильный   (2007-09-17 12:23:00) [3]

а зачем новый класс без внесения ничего нового в него, кроме ошибок?


Kolan   (2007-09-17 12:22:00) [4]

Блиин, экземпляр был не создан, забыл inherited…


Наверх

Титульная страница Поиск, карта сайта Написать письмо