Ich verstehe deine Aufgabenstellung jetzt so:
Ist HasFixBar True dann hat die Klasse selber den Wert, ansonsten muss der Wert gesetzt werden.
Wenn dem so ist kannst du ein Event anbieten:
Delphi-Quellcode:
TGetBarEvent = procedure (var Bar: Integer) of object;
TFoo = class
strict private
FHasFixBar: Boolean;
FBar: Integer;
FOnGetBar: TGetBarEvent
function GetBar: Integer
public
property HasFixBar: Boolean [..];
property Bar: Integer read GetBar [..];
property OnGetBar: TGetBarEvent [...];
end;
[...]
function TFoo.GetBar: Integer;
begin
Result := Default;
if FHasFixBar then
Result := FBar
else
if Assigned(FOnGetBar) then
FonGetBar(Result)
// und abhängig davon, wie hart du den Fehler betrachtest, dass jemand nicht die dynamik des property Bar beachtet
//else
// raise EInvalidOperation.Create('Internal Error. OnGetBar musst assigned.');
end;