如果改成这样就不是0了:TRecordFile = class (TFileStream)
private
wRecSize: word;
function GetwRecSize: word; public
constructor Create(const FileName:string;Mode,xRecSize:Word);overload;
property RecSize: word read GetwRecSize;
end;
private
wRecSize: word;
function GetwRecSize: word; public
constructor Create(const FileName:string;Mode,xRecSize:Word);overload;
property RecSize: word read GetwRecSize;
end;
ShowMessage('constructor!');
发现构造对象的时候根本没有执行这一句。所以我觉得构造方法是在编译器已经确定了的,运行期不会执行这段代码。具体是如何实现的,我也不太清楚。
楼主的第一段代码在我这里没任何问题,显示结果是15!
我是
delphi6/winxp奇怪的问题
估计不是构造函数的问题,
因为如果我使用
var myTest:TRecordFile;
i:integer;i:=sizeof(test);
myTest:=TRecordFile.Create('slkdjf',fmCreate,i);
showMessage(inttostr(myTest.recSize));就能得到正确的答案。