访问存储在另一个单元Delphi中的数据

che*_*sen 1 delphi variables class delphi-units data-structures

在我的程序的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;
Run Code Online (Sandbox Code Playgroud)

然后我在Var中声明Data:TData.

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

  ShowMessage(FloatToStr(Unit2.Data.Inflation.SavedValue));
Run Code Online (Sandbox Code Playgroud)

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

Zoë*_*son 6

添加Data := TData.Create;到Unit2的initialization部分,或将TData更改为记录而不是对象.只要它们被正确初始化,从Unit1访问Unit2的全局对象没有任何固有的错误.

  • 如果您在初始化中创建,请不要忘记在完成时自由. (3认同)