Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
1-1132156397
markers
2005-11-16 18:53
2005.12.11
"Конец перетаскивания"


1-1132075178
Кирилл_
2005-11-15 20:19
2005.12.11
Вставка в ListBox


2-1132671744
Vladd
2005-11-22 18:02
2005.12.11
TWebBrowser


2-1132688533
HeavyMaster
2005-11-22 22:42
2005.12.11
UpDown


8-1120939291
line
2005-07-10 00:01
2005.12.11
Вопрос о режимах смешивания изображений.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский