Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамичиские массивы [D7, XP]


Lera ©   (2006-08-23 16:03:00) 

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


Anatoly Podgoretsky   (2006-08-23 16:38:00) [1]

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


Джо   (2006-08-23 16:33:00) [2]

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

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


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

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


Сергей М.   (2006-08-23 16:32:00) [3]


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


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


Lera   (2006-08-23 16:30:00) [4]

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


Lera   (2006-08-23 16:25:00) [5]

спасибо


Сергей М.   (2006-08-23 16:25:00) [6]


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


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


guav   (2006-08-23 16:23:00) [7]

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

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


Zeqfreed   (2006-08-23 16:22:00) [8]

> [4] Lera   (23.08.06 16:16)

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

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


Джо   (2006-08-23 16:20:00) [9]

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

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

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


Lera   (2006-08-23 16:16:00) [10]

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


Lera   (2006-08-23 16:12:00) [11]

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


Джо   (2006-08-23 16:08:00) [12]

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


Джо   (2006-08-23 16:08:00) [13]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо