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

Вниз

Добавление объекта в динамический массив   Найти похожие ветки 

 
novice   (2007-06-08 21:17) [0]

Правильно ли реализован методд AddElement ?
type
 Element = class
 id: integer;
end;

type
 MyClass= class
arobjects: array of Element;
 arobjects_count: integer;
 constructor Create;
 destructor Destroy; override;
 procedure LoadFile(FileName: string);
 procedure AddElement(elm: Element);
end;

procedure Level.AddElement(elm: Element);
begin
 inc(arobjects_count);
 SetLength(arobjects,arobjects_count);
 arobjects[arobjects_count]:=elm;
end;

после добавления одного элемента, при выходе их программы, возникает ошибка.


 
trubin ©   (2007-06-08 21:31) [1]


> arobjects[arobjects_count]:=elm;

arobjects[arobjects_count - 1]:=elm;


 
Kolan ©   (2007-06-08 23:36) [2]

> Правильно ли реализован методд AddElement ?

Нет. Ты обращаешься к элементу за пределами массива. Нумерация с 0. Включи Range check в Project-Options.

По существу. Используй Low и High. То есть:
arobjects[High(arobjects)]:=elm;

Кроме того:
1. arobjects_count, MyClass, arobjects — три стиля форматирования :(. Правильно AddElement.
2. arobjects — название непонятное.


 
novice   (2007-06-09 00:39) [3]

в массиве   arobjects
После выхода из   LoadFile
полная чушь

procedure LoadFile;
...    
 while not eof (txt)  do
 begin
   temp_obj:=LevelElement.Create;
   temp_obj.id:=1;
   AddElement(temp_obj);
end
...

Такое ощущение что все ссылается но temp_obj.
параметры объектов не сохраняются.


 
Kolan ©   (2007-06-09 10:08) [4]

> LevelElement.Create;

Что такое LevelElement? Класс? Где «T»(TLevelElement)?
Хочешь чтобы отвечающие сломали моск?

В [0]
procedure Level.AddElement(elm: Element);
А ты передаеш LevelElement, это наследник?

И вообще выбрось массив и возьми TObjectList. Тогда твой AddElement не понадобится.



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

Текущий архив: 2007.07.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
15-1180932762
Павел Калугин
2007-06-04 08:52
2007.07.01
И снова про Delphi for PHP


15-1180770268
Kolan
2007-06-02 11:44
2007.07.01
Управление перспективами в Eclipse — как это реализовано?


6-1165004953
RealGanj
2006-12-01 23:29
2007.07.01
WebBrowser


2-1181198499
Solbon
2007-06-07 10:41
2007.07.01
Системный журнал


1-1177774179
Reketir
2007-04-28 19:29
2007.07.01
Как сохранить веб-страницу из webbrowser через savedialog?