У нас есть код, похожий на этот (Delphi 6 RTL Update Pack 3):
objChild1 := TChild1.create();
... (Some Code)
objProcessor.function1(objChild1);
Tchild1 наследуется от TGrandPa до 2 + уровней иерархии.
function1 определяется следующим образом: objChildData является закрытой переменной класса TProcessor и имеет тип TChild1:
TProcessor.function1(objTemp : TGrandPa):boolean;
begin
objChildData := TChild1(objTemp);
....
end;
Из журналов (так как мы не можем отлаживать на компьютере клиента), мы сузили, что первая строка в функции 1 делает objChildData nil иногда и только на машинах одного конкретного клиента. Остальные места, где развернут тот же код, похоже, работают отлично.
Может ли кто-нибудь пролить свет на то, почему это происходит и / или как решить эту проблему?