Главная страница
    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.101 c
9-1134513921
GameMak
2005-12-14 01:45
2006.09.10
Аппроксимация


1-1154327198
KygECHuK
2006-07-31 10:26
2006.09.10
Проблема с иницилизацией переменных


2-1156062211
4izh
2006-08-20 12:23
2006.09.10
передача данных в чужое адрессное пространство


1-1153995450
Youri_Kh
2006-07-27 14:17
2006.09.10
Вставка строки в RichEdit


5-1139238792
webpauk
2006-02-06 18:13
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский