Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.11 c
15-1268688602
Юрий
2010-03-16 00:30
2010.08.27
С днем рождения ! 16 марта 2010 вторник


15-1272703696
Pavia
2010-05-01 12:48
2010.08.27
numerical recipes


11-1221682651
siealex
2008-09-18 00:17
2010.08.27
KOL и Windows Mobile


2-1267226371
Дима
2010-02-27 02:19
2010.08.27
Загрузка текст.файла по индексу ListBox.


2-1265793361
tippa
2010-02-10 12:16
2010.08.27
потоки и общая константа