Entonces solo queda hacer algo así:
Código Delphi
[-]
function TMiObjeto.GetEstado: TEstados;
begin
UpdateEstado;
Result := FEstado;
end;
Sé que me vas a mandar a paseo por esta respuesta, ya que es idéntico a tu solución, pero no sé .... ¿parece más "elegante"?
Si no estas de acuerdo no te molestes en contestar.... ya sé que lo que vas a decir