Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизAssigned & Dispose. Что не так? Найти похожие ветки
← →
Cosinus © (2004-12-21 12:20) [0]
Почему то не работает... Не подскажите, почему?
if Assigned(Add_lb.Items.Objects[Add_lb.Items.Count-1]) then
Dispose(Add_lb.Items.Objects[Add_lb.Items.Count-1]);
← →
PVOzerski © (2004-12-21 12:25) [1]1) кабы знать еще тип Add_lb.Items.Objects[Add_lb.Items.Count-1]...
2) В любом случае: dispose не делает значения указателя на высвобожденную область памяти равным nil, а assigned именно на равность nil и проверяет. Отсюда делай вывод.
← →
begin...end © (2004-12-21 12:26) [2]> Cosinus © (21.12.04 12:20)
Add_lb - это ListBox ?
Объекты уничтожаются с помощью деструктора, метода Free или процедуры FreeAndNIL.
← →
Суслик © (2004-12-21 12:42) [3]
> Почему то не работает... Не подскажите, почему?
А что должно быть?
Если имеется в виду освобождения памяти, то нужно делать так
dispose(PYouType(Obj)), т.к. приводить к типу данных, на который указывает указатель
← →
Cosinus © (2004-12-21 13:15) [4]I>
> begin...end © (21.12.04 12:26) [2]
Да, это ListBox.
> Суслик © (21.12.04 12:42) [3]
Да, я хотел избежать утечек памяти. В итоге сделал так...
if Assigned(Add_lb.Items.Objects[Add_lb.Items.Count-1]) then
Add_lb.Items.Objects[Add_lb.Items.Count-1].Free;
Всем спасибо.
← →
PVOzerski © (2004-12-21 14:13) [5]Лучше б ты FreeAndNil сделал...
← →
icWasya © (2004-12-21 15:12) [6]правильный код такой
Add_lb.Items.Objects[Add_lb.Items.Count-1].Free;
Add_lb.Items.Objects[Add_lb.Items.Count-1]:=Nil;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.07 c