在我的程序的Unit2中,我有以下代码:

TValue = Record
  NewValue,
  OldValue,
  SavedValue : Double;
end;

TData = Class(TObject)
Public
  EconomicGrowth : TValue;
  Inflation : TValue;
  Unemployment : TValue;
  CurrentAccountPosition : TValue;
  AggregateSupply : TValue;
  AggregateDemand : TValue;
  ADGovernmentSpending : TValue;
  ADConsumption : TValue;
  ADInvestment : TValue;
  ADNetExports : TValue;
  OverallTaxation : TValue;
  GovernmentSpending : TValue;
  InterestRates : TValue;
  IncomeTax : TValue;
  Benefits : TValue;
  TrainingEducationSpending : TValue;
End;


然后,我在Var中声明Data:TData。

当我尝试在Unit1中执行以下操作时:

  ShowMessage(FloatToStr(Unit2.Data.Inflation.SavedValue));


我收到一条EAccessViolation消息。有没有办法从Unit1访问存储在“数据”中的数据而不会出错?

最佳答案

Data := TData.Create;添加到Unit2的initialization部分,或将TData更改为记录而不是对象。只要正确初始化了从Unit1访问Unit2的全局对象,就没有本质上的错误。

关于delphi - 访问存储在另一个单元Delphi中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2630614/

10-12 21:15