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

Вниз

Удалить конкретный элемент из массива компонентов   Найти похожие ветки 

 
Vass   (2010-05-17 20:03) [0]

Доброго времени суток! У меня дан массив:
cimag:array[1..255] of TImage.
Помогите удалить конкретный элемент массива например 5. Пытаюсь:
...
cimag[5].Free
...

Элемент с формы удаляется, но делфи выдает кучу ошибок когда пытаюсь выполнить действия с другими блоками. Или так нельзя делать, подскажите тогда как можно! Спасибо!


 
_Юрий ©   (2010-05-17 20:07) [1]


> Элемент с формы удаляется,

а ссылка на удаленный объект остается в массиве, когда цикл идет по массиву, в этом месте получается нарушение доступа к памяти.
Варианты:
1. Обнулять ссылку:

cimag[5].Free;
cimag[5]:=nil;

в циклах проверять на nil

if cimag[5] <> nil then

2. Использовать TList вместо массива


 
DVM ©   (2010-05-17 20:07) [2]


> но делфи выдает кучу ошибок когда пытаюсь выполнить действия
> с другими блоками

Покажи, что ты делаешь и как.


> Или так нельзя делать

Ну вобщем то можно, а почему нет.


> подскажите тогда как можно! Спасибо!

Лучше вероятно использовать список. Более того, этот список уже имеется у каждой формы.


 
Vass   (2010-05-17 20:21) [3]


> Покажи, что ты делаешь и как.

у меня блоки с имэйджами таскаются по форме с помощью мыши, а клик по кнопке Удалить удаляет выбранный имэйдж (у меня есть еще процедура выбора имэйджа 1 клик по имэйджу - он теперь выбран). Удалил блок методом Free у меня потом делфи "ругается", когда на другие имэйджи пытаюсь таскать или выбрать!))  

> 1. Обнулять ссылку:cimag[5].Free;cimag[5]:=nil;

Спасибо!!! До этого только использовал отдельно cimag[5].Free; или cimag[5]:=nil; Что то не до пёр использовать вместе))) Но теперь прибавиться работы с проверкой на nil. Спасибо за то что подсказали и так быстро!!!))


 
turbouser ©   (2010-05-17 21:47) [4]


> Vass   (17.05.10 20:21) [3]

Используй TObjectList


 
Омлет ©   (2010-05-17 21:49) [5]

Придет опыт, и будет использоваться TObjectList.
Придет еще опыт, и не будет кучи TImage, а будет всего один TBitmap.



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

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.056 c
2-1274079841
Евгений Р.
2010-05-17 11:04
2010.08.27
Работа со средой


2-1269514776
ComeGetSome
2010-03-25 13:59
2010.08.27
Интерфейс Delphi


2-1271611691
NGPOL
2010-04-18 21:28
2010.08.27
Ошибки при экспорте в Excel_2


2-1273335534
alexandr
2010-05-08 20:18
2010.08.27
использование потоков для передачи строковой информации


15-1275337563
Tim
2010-06-01 00:26
2010.08.27
Помощь с переводом





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