Для лучшего понимания предмета Паскаля языка, я полагаю, вы должны начать с чтением FreePascal справочника. FreePascal является подмастерным компилятором ниже lazarus.
Его важно понимать, что формы, ярлыки, кнопки, и т.д., являются конкретные воплощения концепций объектов, экземпляры классов и т.д.
В этой связи, класс представляет собой структуру связывания кода и данных. То, что вы хотите достичь что-то вроде этого:
Type
TMyClass = Class(<ancestorclass>)
<fields and methods>
End;
TMyChildClass = Class(TMyClass)
<fields and methods>
End;
Это означает, что TMyChildClass является класс, производный от TMyClass. В том случае, если у вас есть методы в обеих классах с таким же именем, вы можете использовать ключевое слово «переопределение», чтобы показать компилятор, что этот метод был переопределен в классе ребенка, как это:
TMyClass = Class /* No parenthesis or ancestor name means the class derives from TObject */
Procedure ParentMethod;
End;
TMyChildClass = Class(TMyClass)
Procedure ParentMethod; Override;
End;
Procedure TMyClass.ParentMethod;
Begin
DoSomething;
End;
Procedure TMyChildClass.ParentMethod; /* Dont repeat the override */
Begin
Inherited; // This will call the parents method
End;
Это правильное способ сделать переопределение метода в объекте pascal. Если определение класса, в котором вы хотите использовать «унаследованный», не имеет круглых скобок и имени класса предков, то отношения между родителями и потомством не будут делать то, что вы ожидаете сделать.