Forum: Object-Pascal / Delphi-Language
Delphi
by Neutral General,
14. Jun 2019
Es gibt einen Unterschied zwischen reintroduce und (reintroduce mit) overload.
Forum: Object-Pascal / Delphi-Language
Delphi
by Neutral General,
14. Jun 2019
Technisch gesehen hast du Recht. In der Praxis wird mir schlecht wenn ich Konstruktoren sehe, die nicht "Create" heißen.
Das hier ist nur ein Beispiel. Im Original ist TBasis eine Ableitung von TComponent, bei der der constructor Create(AOwner: TComponent) nunmal virtuell ist.
Die Compilerwarnung hat NUR DANN eine Berechtigung wenn ich in der Ableitung tatsächlich einen Konstruktor...
Forum: Object-Pascal / Delphi-Language
Delphi
by Neutral General,
13. Jun 2019
Dann hab ich für TAbleitung 3 Konstruktoren (2x (AOwner: TComponent)).
Aber so klappt es:
type
TBasis = class
public
constructor Create(AOwner: TComponent); virtual;
end;
TAbleitung = class(TBasis)
Forum: Object-Pascal / Delphi-Language
Delphi
by Neutral General,
13. Jun 2019
Ich kenne reintroduce, aber das ist ein ganz anderer Fall.
Es geht hier ja explizit darum einen 2. Konstruktor hinzuzufügen (eine Überladung) und nicht den Konstruktor der Basisklasse mit reintroduce zu überdecken.
Und das klappt ja auch - nur halt mit einer Warnung die ich nicht nachvollziehen kann.
Forum: Object-Pascal / Delphi-Language
Delphi
by Neutral General,
13. Jun 2019
Hallo,
Habe vereinfacht folgende Situation (Delphi 10.3.0):
type
TBasis = class
public
constructor Create(AOwner: TComponent); virtual;
end;
TAbleitung = class(TBasis)