Existe alguma maneira de usar a propriedade como comportamento?

Eu tenho a seguinte fórmula

X := X + F*(1-i div n);

Onde

X, F, i, n: integer;

O código que estou usando é este

F := 7; // the initial speed with no friction.
n := 10; // the animation number of steps.
Hn := n * 2 ; 
X := 0;  // first Pos
i := 1;  
J := 1;
while J < Hn do
begin
  X := X + F * (1 - i div n);
  if X > Xmax then X := 0;  <-- line (1).
  if i >= n then Dec(i)
  else Inc(i);
  Inc(J); 
end;

Se possível, eu gostaria de usar isso, mas sem a implementação de classe / registro (não dentro de uma classe / implementação / método de registro) .não a sintaxe exata, apenas o mesmo princípio, em vez da atribuição direta a X, o SetX é chamado de resultado é atribuído a X.

X: integer write SetX; // This is not a correct delphi syntax. I added it to explain the behavior I want. 

function SetX(aValue: integer): integer;
const
  Xmax: SomeIntegerValue;
begin
  if aValue > Xmax then result := 0  
  else result := aValue; 
end;

Então eu poderia omitir a Linha (1). Se isso fosse possível, todas as linhas após a fórmula seriam omitidas e o loop while ficaria assim

while J < Hn do  // J will be incremented each time the loop wants to read it.    
begin
  X := X + F * (1 - i div n);
end;

Existe alguma maneira de usar a propriedade como comportamento?

Nota: Estou procurando uma maneira de alterar as formas de atribuição e leitura de uma variável como você faz em uma propriedade de um registro / classe.

questionAnswers(3)

yourAnswerToTheQuestion