我们有一些类似这样的代码(Delphi 6 RTL Update Pack 3):
objChild1 := TChild1.create();
... (Some Code)
objProcessor.function1(objChild1);
Tchild1 通过 2 + 层级从 TGrandPa 继承。
function1 是这样定义的,其中 objChildData 是 TProcessor 类的私有变量,并且是 TChild1 类型:
TProcessor.function1(objTemp : TGrandPa):boolean;
begin
objChildData := TChild1(objTemp);
....
end;
从日志中(因为我们无法在客户机器上调试),我们缩小了 function1 中的第一行使 objChildData有时且仅在一个特定客户的机器上为零的范围。部署相同代码的其他地方似乎工作得很好。
谁能解释一下为什么会发生这种情况和/或如何解决这个问题?