К статическим полям можно обратиться без создания экземпляра класса. Нестатические поля доступны только для экземпляра класса. При обращении к нестатическому полю из статического метода экземпляр данного класса еще не инициализирован, что приводит к невозможности изменить значение нестатического поля.
Из кода необходимо удалить обращение к нестатическим полям из статических методов. Возможно, поля необходимо объявить статическими.
Class MyClass: Object
i: Integer;
Shared Sub UserProc;
Begin
i := 100;
End Sub UserProc;
End Class MyClass;
При компиляции указанного кода на строке «i := 100;» будет сгенерирована ошибка «Из статического метода нельзя обратиться к нестатическому полю». Для разрешения ошибки необходимо добавить директиву «Shared» для переменной «i», либо удалить данную директиву в заголовке процедуры «UserProc».
См. также: