Hallo,
ich habe eine eigene Klasse in einer
Unit, deren Konstruktoren in folgender Art deklariert sind:
Delphi-Quellcode:
type
TMyClass = class( TPersistent )
public
constructor Create( const dVal_ : Extended;
const iNumDigits_ : ShortInt ); overload;
constructor Create( const sVal_ : String;
const iNumDigits_ : ShortInt ); overload;
protected
constructor Create(); overload;
end;
Jetzt versuche ich in einer anderen
Unit, die Klasse zu verwenden:
Delphi-Quellcode:
procedure Irgendwas()
var test : TMyClass;
begin
test := TMyClass.Create( 0.0, 2 );
end;
Da kommt dann in der Zeile, die den Konstruktor aufruft vom Delphi7-Compiler die Fehlermeldung "Too many actual parameters"
Warum?
Noch komischer finde ich dann, dass wenn ich das in folgendes ändere,
keine Fehlermeldung mehr kommt:
Delphi-Quellcode:
procedure Irgendwas()
var test : TMyClass;
begin
test := TMyClass.Create();
end;
Ich kann also den als "protected" gekennzeichneten Konstruktor von außerhalb benutzen, die öffentlich deklarierten aber nicht?
Verstehe ich nicht...
Hat mir jemand eine Erklärung (und Lösung) dafür?