Natürlich kannst du so den wert nicht ändern ... ohne Zugriff auf die Variable.
Aber du mußt doch sowieso irgendwie die überschriebene Methode des Vorfahren aufrufen und dort gibst du dann den angepaßten Wert weiter.
Delphi-Quellcode:
procedure tClimaModel.setTSet(T: Double);
begin
if T < -50 then
begin
T := -50;
logthis('Error: TSet out of range (min)');
end
else if T > 150 then
begin
T := 150;
logthis('Error: TSet out of range (max)');
end;
inherited; // oder inherited setTSet(T);
end;
oder falls das Logging nicht nötig ist:
Delphi-Quellcode:
procedure tClimaModel.setTSet(T: Double);
begin
inherited setTSet(Min(Max(T, -50), 150);
end;
Du hast doch mit virtual und override überschrieben?