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

Динамичиские массивы   Найти похожие ветки 

← →
Lera   (2006-08-23 16:03) [0]

Будть добры, как в динамическом массиве с несколькими элементами удалить полностью один из них, т.е. чтобы он был не пустой, а совсем отсутствовал. Заранее спасибо.


← →
Джо ©   (2006-08-23 16:08) [1]

Зависит от того, какого типа элементы в массиве. Если с управляемым временем жизни, то — перемещением в цикле элементов за удаленным "влево" и уменьшением длины массива на 1. Если нет — при помощи Move.


← →
Джо ©   (2006-08-23 16:08) [2]

> при помощи Move.

И, опять же, длины массива на 1.


← →
Lera   (2006-08-23 16:12) [3]

тип элемента TForm


← →
Lera   (2006-08-23 16:16) [4]

имеется ввиду удалить и освободить оперативную память, которая была занята под элемент


← →
Джо ©   (2006-08-23 16:20) [5]

> [3] Lera   (23.08.06 16:12)
> тип элемента TForm

Используй TObjectList (uses Contnrs) и не мучайся.

Кстати, зачем эти ссылки на формы хранить? Какая нужда заставила?


← →
Zeqfreed ©   (2006-08-23 16:22) [6]

> [4] Lera   (23.08.06 16:16)

> имеется ввиду удалить и освободить оперативную память

Тогда только так: SetProcessWorkingSetSize ;)


← →
guav ©   (2006-08-23 16:23) [7]

> Если с управляемым временем жизни, то — перемещением в цикле
> элементов за удаленным "влево" и уменьшением длины массива
> на 1. Если нет — при помощи Move.

Можно и с управляемым временем жизни при помощи Move (присвоить удаляемому нулевое значение перед замещением и обнилить без финализации хвост перед уменьшением длины), а безопаснее и проще и для "нет" смещать в обычном цикле влево :)


← →
Lera   (2006-08-23 16:25) [8]

спасибо


← →
Сергей М. ©   (2006-08-23 16:25) [9]


> чтобы он был не пустой, а совсем отсутствовал


Да здравствует IronHawk (C),


← →
Lera   (2006-08-23 16:30) [10]

а смещать влево каким оператором можно?


← →
Сергей М. ©   (2006-08-23 16:32) [11]


> смещать влево каким оператором можно?


Тем же самым Move()


← →
Джо ©   (2006-08-23 16:33) [12]

> [7] guav ©   (23.08.06 16:23)
> Можно и с управляемым временем жизни при помощи Move (присвоить
> удаляемому нулевое значение перед замещением и обнилить
> без финализации хвост перед уменьшением длины),

Можно, конечно. Не хочется "приучать к плохому" :)


> [10] Lera   (23.08.06 16:30)
> а смещать влево каким оператором можно?

Оператором ":=" в цикле.


← →
Anatoly Podgoretsky ©   (2006-08-23 16:38) [13]

Lera   (23.08.06 16:25) [8]
А почему игнорируем вопрос от Джо ©   (23.08.06 16:20) [5]



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

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



Память: 0.48 MB
Время: 0.029 c
15-1154983441
Pascal
2006-08-08 00:44
2006.09.10
Будушее делфистов...


2-1156249993
AlexanderMS
2006-08-22 16:33
2006.09.10
Поддержка плагинов.


15-1155559772
rimm
2006-08-14 16:49
2006.09.10
Потоки и поточные преложения...


2-1155815298
fast2
2006-08-17 15:48
2006.09.10
Что неправильно в условии:


2-1156348469
NikIta88
2006-08-23 19:54
2006.09.10
Не убивается таймер после цикла сообщений




   Наверх