Почему возникает ошибка неизвестного идентификатора времени выполнения для переменной из базового класса? - PullRequest
0 голосов
/ 20 октября 2011

Если вопрос кажется расплывчатым или запутанным, я прошу прощения.Это для Delphi Prism .NET.

У меня есть базовый класс с переменной с именем bounds типа прямоугольник.Из этого класса другой класс наследует или наследует и имеет доступ к границам переменных базового класса.Во время разработки компилятор распознает переменную границ из базового класса, но во время отладки он продолжает вызывать неизвестную ошибку для границ переменных в базовом классе.Итак, моя программа успешно компилируется, но не работает правильно.

Вот базовый класс и переменная:

  TControlObject = public class
    bounds:Rectangle;     <<=========This is the Variable in question
  private
  protected
  public
  end; 

Вот производный класс:

  TGateControl = class(TControlObject)
    fInputCount:SmallInt;
  private
  protected
  public
    constructor (theForm:Form);
  end;

Вот конструктор для производного класса с переменной базового класса:

constructor TGateControl(theForm:Form);
begin
  inherited constructor(theForm);
  fInputCount := 2;
  bounds.width := bounds.Right-(bounds.left+(4 * CGridSize)); <<=======Here is where unknown identifier error is raised for bounds variable.
  bounds.Height := bounds.Bottom-(bounds.top+(3 * CGridSize));<<=======Here is where unknown identifier error is raised for bounds variable.
end;

Что я делаю не так?Спасибо,

1 Ответ

1 голос
/ 24 октября 2011

Вам необходимо объявить переменную в защищенном разделе класса, чтобы сделать ее видимой для производных классов. Когда вы объявляете это без явного указания видимости, предполагается, что вы хотели сделать его приватным, а приватное поле не видимо производным классам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...