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

Вниз

Не получается правильно удалить объект   Найти похожие ветки 

 
CMOS ©   (2005-11-19 21:32) [0]

Делаю неправильно - прога работает. Правильно вешается.

Я создал массив объектов. Чтобы удалить n-ый объект я  присваиваю все значения последнего (gMax-1) объекта в массиве n-му. Затем уничтожаю последний (g[gMax-1].Free|Destroy) и уменьшаю размер массива на 1. Таким образом внешне кажется что n-ый объект уничтожился, на самом деле он встал на место последнего, сохранил он только свой номер n.
Все это происходит в методе Die.
g[n].Die
Если объявляю этот метод как обычный то "Project  raised exception class EAccessViolation..."
Если как деструктор, то все работает правильно. Но ведь в этом случае едаляется n-ый элемент, a максимальный должен остаться существовать? Вот код:

destructor Life.Die;
var m: Word;
begin
m:= fg[x, y];
f[x, y]:= f[x, y] xor 1;
fg[g[gMax-1].x, g[gMax-1].y]:= m;
g[m]:= g[gMax-1];
//g[gMax-1].Free;
Dec(gMax);
SetLength(g, gMax);
end;


 
Virgo_Style ©   (2005-11-19 21:36) [1]

http://delphimaster.net/view/2-1132392584/
http://delphimaster.net/view/2-1132392584/

Может быть, хватит уже писать, и пора прочитать, что написали тебе в ответ?


 
Джо ©   (2005-11-19 21:57) [2]

Чукча не читатель...


 
CMOS ©   (2005-11-20 20:25) [3]

Там ничего нет (сам загляни)


 
Brother ©   (2005-11-21 06:05) [4]


> http://delphimaster.net/view/2-1132392584/
> http://delphimaster.net/view/2-1132392584/
>
> Может быть, хватит уже писать, и пора прочитать, что написали
> тебе в ответ?

Хе, долго смеялся!


 
tesseract ©   (2005-11-21 10:27) [5]

Используй Tlist.

Если хочешь написать сам, то вот исходный код EzDSL - очень хорошей библиотеки (несколько устарела но всё ещё интересна).

ftp.turbopower.com/pub/misc/funcs



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

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

Наверх




Память: 0.48 MB
Время: 0.214 c
9-1121833769
Andry
2005-07-20 08:29
2005.12.11
Как улучшить модель


14-1132550780
Дмитрий_05
2005-11-21 08:26
2005.12.11
Ругается на NativeAPI


2-1133182730
IAMDANIL
2005-11-28 15:58
2005.12.11
Кто писал проверялку для прог?


4-1128678334
Ботвин Дмитрий
2005-10-07 13:45
2005.12.11
Проблема с таймером


3-1130395760
Карелин Артем
2005-10-27 10:49
2005.12.11
Как получить список серверов MS SQL в сети?