Текущий архив: 2004.06.27;
Скачать: CL | DM;
ВнизСсылка на уничтоженный объект Найти похожие ветки
← →
OlkaGTS (2004-06-15 16:04) [0]Уважаемые!
Возник у меня такой вопрос, помогите кто чем может....
var
SomeObj: TSomeObj;
...
begin
...
SomeObj.DataSet:=SomeDataSet;
...
// а в это время где-то случился SomeDataSet.Free;
...
//а вот здесь надо проверить не ссылается ли DataSet на уничтоженный объект
if SomeObj.DataSet.Active then
...
end
Как можно выяснить, что SomeObj ссылается на уничтоженный объект? TSomeObj не является наследником TComponent и смысла его таковым делать нет, кроме как из-за Notification. Можно ли как-то по-другому выяснить в момент обращения к свойству DataSet, что он не существует.
← →
Плохиш © (2004-06-15 16:08) [1]
> помогите кто чем может.
Денег не дам!
Используй FreeAndNil
← →
iat (2004-06-15 16:16) [2]там, где
// а в это время где-то случился SomeDataSet.Free;
пишем
SomeDataSet.Free;
SomeDataSet:=nil;
// или используем FreeAndNil()
и где надо, проверяем
if (SomeObj.DataSet<>nil) then
if SomeObj.DataSet.Active then
...
end
else
else
// делаем ругательство
← →
OlkaGTS (2004-06-15 16:19) [3]И что сие означает FreeAndNil?
Если речь идет о том, что
SomeDataSet.Free;
SomeDataSet=nil
то это никак не спасает, поскольку
Assigned(SomeObj.DataSet) = true и SomeObj.DataSet <> nil.
А вот при обращении к любому из свойств SomeObj.DataSet.... возникает Access violation, что справедливо, поскольку SomeObj.DataSet непонятно куда ссылается.
← →
Тимохов © (2004-06-15 16:21) [4]
> OlkaGTS (15.06.04 16:04)
Первое. Такие вопросы возникают регулярно.
Второе. Потрудитесь найти (на прошлой неделе был).
Трерье. Узнать никак.
← →
Плохиш © (2004-06-15 16:25) [5]Четвёртое. Программистов, у которых // а в это время где-то случился надо увольнять без выходного пособия.
← →
malkolinge © (2004-06-15 16:29) [6]FreeNotification + F1
← →
AlexG © (2004-06-15 16:35) [7]//Assigned(SomeObj.DataSet) = true и SomeObj.DataSet <> nil.
Надо же присваивать значение NIL после Free, тогда все будет ОК...
Страницы: 1 вся ветка
Текущий архив: 2004.06.27;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.04 c