今天遇到一个关于结构指针的问题:
type
TWeighInfo = record
RecNO : Integer ;
BarCode : string ;
MatCode : string ;
Weigh : Double ;
Qty : Double ; //bom 的重量
DifQty : Double ; //差异
end;
TPWeighInfo = ^TWeighInfo ;
Function GetWieghInfo :TPWeighInfo --返回TWeighInfo 没有问题 , 返回TPWeighInfo 引用类型的值为空。
VAR
WeighInfo : TWeighInfo ;
BEGIN
WITH WeighInfo DO
BEGIN
RecNO :=1 ;
BarCode :='abc000001' ;
MatCode := 'xxxxxxxx' ;
Qty := 0;
END;
Result := @WeighInfo ;
--在函数体内。 Result 的 Barcode的值没有问题。 出函数为空值。
END;
-------------接收端。
Procedure ReceiveData ;
var
PWeighInfo :TPWeighInfo ;
begin
PWeighInfo := GetWieghInfo ;
Showmesage( PWeighInfo ^.BarCode ) ; ---等于空值。
Showmesage( PWeighInfo ^.RecNO.Tostring ) ; ---等于1。
end;
高手帮忙解答一下。 这个是什么问题? 为什么记录类型的指针 出函数后引用类型为空了呢???