Delphi-Quellcode:
ISomeInterface = interface
{private} const
Param_someProc_someParam = 12;
private // geht nicht
function MyGetter: Integer;
procedure MySetter(Value: Integer);
function MyGetter2(Index: Integer): Integer;
procedure MySetter2(Value, Index: Integer);
public
procedure someProc(const someParam: Integer = Param_someProc_someParam);
property MyProperty: Integer read MyGetter write MySetter; // geht
property MyProperty2: Integer index 1 read MyGetter write MySetter; // Index geht nicht
property MyProperty3: Integer index 2 read MyGetter write MySetter;
end;
Delphi-Quellcode:
TSomeClass = class(TSomeBaseClass,ISomeInterface)
public
procedure someProc(const someParam: Integer = TSomeBaseClass.Param_someProc_someParam);
end;
Wenn du die Klasse nur als Interface brauchst, dann kannst du in der Klasse auch den Default-Wert weglassen.
Ansonsten ist die Idee von Thom eh besser, also die Konstante in einer Klasse zu definieren und in beiden Definitionen (Interface und Klasse) die
selbe Konstante zu nutzen,
wobei TSomeClass nicht unbedingt von TSomeBaseClass abgeleitet sein muß.
PS: Die Benamung von Param_someProc_someParam finde ich etwas unglücklich.
Was ist, wenn diese Konstante auch an anderen Stellen verwendet wird?
Da wäre es ja eigentlich besser die "Funktion" als Namen zu nehmen und nicht den Ort.