Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#1

Constructor einer TForm überschreiben

  Alt 1. Jan 2005, 16:27
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.
  Mit Zitat antworten Zitat