Hallo und ein frohes neues Jahr @ all
Ich hab da ein Problem. Ich möchte in einem TForm-Nachkommen dem Konstruktor einen Parameter übergeben, mit dem ein Read-Only Wert gesetzt wird.
Delphi-Quellcode:
TMyForm = class(TForm)
private
FReadOnly: TReadOnly;
public
constructor Create(AOwner: TComponent; Value: TReadOnly); override;
published
property ReadOnly: TReadOnly read FReadOnly;
end;
constructor TMyForm.Create(AOwner: TComponent; Value: TReadOnly);
begin
inherited Create(AOwner);
FReadOnly := Value;
end;
Das führt zu folgender Compiler-Fehlermeldung: "Deklaration von 'Create' unterscheidet sich von vorheriger Deklaration". Stimmt zwar, aber wo ist das Problem? Warum in Gottes Namen müssen die Parameterlisten identisch sein? Wie soll ich diesen Read-Only Wert sonst initialisieren?
Wenn ich das "override" weglasse, erscheint diese Warnung: "Methode 'Create' verbirgt virtuelle Methode vom Basistyp 'TCustomForm'". Wenn ich es richtig deute, heißt das, dass kein Zugriff mehr auf die Basismethoden besteht, d.h.
inherited Create(AOwner);
wäre nicht möglich bzw. würde nichts bewirken.
Oder doch? Hilfä
Vielen vielen Dank schonmal fürs lesen!
Gruß,
Dani
Dani H.