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

Вниз

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

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

Наверх




Память: 0.47 MB
Время: 0.04 c
2-1155888631
Elen
2006-08-18 12:10
2006.09.10
SendMessage VS Access Violation


1-1153902869
DmitryK
2006-07-26 12:34
2006.09.10
Работа с RTF


15-1155803907
ArtemESC
2006-08-17 12:38
2006.09.10
Запись в MBR


3-1151753384
Muchacho
2006-07-01 15:29
2006.09.10
Установка Fast Report 3.x в Delphi 2006 .NET


2-1156019143
Silver...
2006-08-20 00:25
2006.09.10
Нужна помощь/подсказка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский