[2] + [3] ergeben die Warnung 'Methode 'Create' verbirgt virtuelle
Methode vom Basistyp'
- 'override' dranh�ngen funkt nicht. klaro.
- 'virtual' dranh�ngen �ndert nix an der Warnung.
- 'reintroduce' f�llt weg, da ich 'inherited Create' ben�tige
So l�ufts:
constructor Create(AOwner: TComponent); override;
constructor CreatePartiell(AOwner: TComponent; JustthisLW: TLW);
overload;
constructor CreatePartiell(AOwner: TComponent; JustThisPfad:
string); overload;
... und 'inherited Create' kann ich hier auch �berall anwenden ;-)
Frage: ist doch ok, oda?
If ja, dann reicht mir das f�r diese Anwendung, trotzdem h�tt ich f�r
andere F�lle (selten aber doch) mal gern mehrere _gleichnamige_
�berladene Konstruktoren. Also wie w�re oberster Versuch
richtiggestellt? Hab leider kein brauchbares Beispiel gefunden :-(
herzlichen Dank
novi
"reintroduce" macht nix anderes als diese Warnung zu unterdrücken.
So funktioniert das:
constructor Create(AOwner: TComponent); overload; override;
constructor Create(AOwner: TComponent; Opt1: Integer); reintroduce; overload; virtual;
> - 'reintroduce' fällt weg, da ich 'inherited Create' benötige
Auch in einer wiedereingeführten Methode kannst du "inherited" verwenden,
muss dann nur genauer spezifiziert werden:
constructor TMyKompo.Create(AOwner: TComponent; Opt1: Integer);
begin
inherited Create(AOwner);
..
end;
Unschön beim Überladen des Konstruktors ist, dass er dann mit der
selben Signatur z.B. in den Tooltips zweimal auftaucht.
> So läufts:
> constructor Create(AOwner: TComponent); override;
> constructor CreatePartiell(AOwner: TComponent; JustthisLW: TLW);
> overload;
> constructor CreatePartiell(AOwner: TComponent; JustThisPfad:
> string); overload;
>
> ... und 'inherited Create' kann ich hier auch überall anwenden ;-)
>
> Frage: ist doch ok, oda?
Ja, oder benutze eine Klassen-Methode die den Konstruktor aufruft:
class function MyCreate(AOwner: TComponent; Opt1: Integer): TMyKompo; overload; virtual;
class function MyCreate(AOwner: TComponent; Opt1, Opt2: Integer): TMyKompo; overload; virtual;
class function TMyKompo.MyCreate(AOwner: TComponent; Opt1: Integer): TMyKompo;
begin
Result := Create(AOwner);
..
end;
..
--
Arno Garrels