Доступ к данным из другой единицы в DelphiDelphi , Компоненты и Классы , МодулиДоступ к данным, хранящимся в другой единице в Delphi, может вызвать ошибки доступа к памяти, если не соблюдать правил инициализации и освобождения объектов. В данном случае, проблема заключается в том, что переменная Чтобы решить эту проблему, необходимо правильно инициализировать переменную Пример кода, иллюстрирующий решение проблемы: unit Unit2; interface type 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; implementation initialization Data := TData.Create; end; finalization Data.Free; end. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Unit2, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(FloatToStr(Unit2.Data.Inflation.SavedValue)); end; end. В альтернативном ответе предлагается изменить тип В программе на Delphi происходит ошибка доступа к памяти при попытке доступа к данным из `Unit1` к объекту `TData`, инициализированному в `Unit2`, из-за того, что объект не был правильно инициализирован в `Unit2`. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |