Ich versuche, ein Kind Klasse von TForm mitDelphi/pascal: ein Konstruktor mit einem anderen Prototyp Überlastung
- einen speziellen Konstruktor für bestimmte Fälle zu schaffen, und
- ein Standard-Konstruktor, die Kompatibilität beibehalten wird mit dem aktuellen Code.
Dies ist der Code Ich habe jetzt:
interface
TfrmEndoscopistSearch = class(TForm)
public
/// original constructor kept for compatibility
constructor Create(AOwner : TComponent); overload; override;
/// additional constructor allows for a caller-defined base data set
constructor Create(AOwner : TComponent; ADataSet : TDataSet; ACaption : string = ''); overload;
end;
Es scheint, zu arbeiten, aber ich bekomme immer die Compiler-Warnung:
[Warning] test.pas(44): Method 'Create' hides virtual method of base type 'TCustomForm'
- Hinzufügen "Überlast"; nach dem zweiten Konstruktor wird nicht kompiliert. "[Error] test.pas (44): Die Deklaration von 'Create' unterscheidet sich von der vorherigen Deklaration".
- war der zweite Konstruktor eine Klasse Funktion ohne Fehler oder Warnungen kompiliert, aber stirbt mit einer Zugriffsverletzung zur Laufzeit (alle Mitglied Vars sind null).
bango! Das Schlüsselwort "Wiedereinführung" ist genau das, was benötigt wird. Der ursprüngliche Konstruktor wird ebenfalls benötigt, da er den Datensatz auf den richtigen Standardwert setzt. –