Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизFree Найти похожие ветки
← →
Torin (2004-04-19 19:57) [0]Почму вылетает с ошибкой "Invalid pointer operation" Free и Destroy объектов созданых внутри текущей процедуры? например:
function XXX(XXX : XXX...);
var
Ic : TIcon;
begin
Ic := TIcon.Create;
..... //Действия с иконкой
Ic.Free; // ??? "Invalid pointer operation" ???
end;
Если же объект глобальный то всё работает.
← →
Torin (2004-04-19 19:57) [0]Почму вылетает с ошибкой "Invalid pointer operation" Free и Destroy объектов созданых внутри текущей процедуры? например:
function XXX(XXX : XXX...);
var
Ic : TIcon;
begin
Ic := TIcon.Create;
..... //Действия с иконкой
Ic.Free; // ??? "Invalid pointer operation" ???
end;
Если же объект глобальный то всё работает.
← →
Mim1 (2004-04-19 19:59) [1]Приведи полный код
← →
Mim1 (2004-04-19 19:59) [1]Приведи полный код
← →
Anatoly Podgoretsky © (2004-04-19 20:08) [2]Ic к моменту Free у тебя уже испорчен.
← →
Anatoly Podgoretsky © (2004-04-19 20:08) [2]Ic к моменту Free у тебя уже испорчен.
← →
pantel © (2004-04-19 20:19) [3]Нужен полный код, да. Может, там Ic передаётся куда-то как var parameter и та функция его очищает? Или есть другая локальная переменная, которая перекрывается с Ic (хотя этого компилятор не допустит...)
← →
pantel © (2004-04-19 20:19) [3]Нужен полный код, да. Может, там Ic передаётся куда-то как var parameter и та функция его очищает? Или есть другая локальная переменная, которая перекрывается с Ic (хотя этого компилятор не допустит...)
← →
Torin (2004-04-19 20:40) [4]Разобрался я в чём загвоздка там ещё if был, т.е. иконка создавалась не всегда, а поытка её уничтожить предпринималась постоянно.
← →
Torin (2004-04-19 20:40) [4]Разобрался я в чём загвоздка там ещё if был, т.е. иконка создавалась не всегда, а поытка её уничтожить предпринималась постоянно.
← →
Юрий Зотов © (2004-04-19 21:43) [5]Еще не забыть try-finally - и будет полный цимус. Кстати, рассмотрите возможность такой конструкции:
with TIcon.Create do
try
... //Действия с иконкой
finally
Free
end;
Это позволит отказаться от переменной Ic.
← →
Юрий Зотов © (2004-04-19 21:43) [5]Еще не забыть try-finally - и будет полный цимус. Кстати, рассмотрите возможность такой конструкции:
with TIcon.Create do
try
... //Действия с иконкой
finally
Free
end;
Это позволит отказаться от переменной Ic.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c