Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.061 c
2-1155725809
Mikka Hakkinnen
2006-08-16 14:56
2006.09.10
Нужно динамически создать/удалить несколько Series.


2-1156164174
XTD
2006-08-21 16:42
2006.09.10
Как создать дочернее окно?


2-1156046178
Vasiliy
2006-08-20 07:56
2006.09.10
Как осуществить прокрутку в ScrollBox?


2-1156146595
novill
2006-08-21 11:49
2006.09.10
Философское. Как правильнее выйти из процедуры?


3-1152194411
freak
2006-07-06 18:00
2006.09.10
Помогите определить связи