Hola
Pues no se de donde sale el error, a mi no me genera ninguno, lo unico es que simplemente no envia el
'Hola' al edit ya que para que se de; la funcion tiene que generar el factor boleano y este la unica manera en que puede cumplirlo es en la ultima condicion.
Para que la condicion
if i = lnumber then se cumpla tiene que
i := i + x;, al no darle valor a
i nunca se cumple.
Por esta razon la logica
'De novato' me dice que si se da valor a
i se cumple con la condicion, pero, siempre lo hara, en tal caso la funcion no haria nada importante, simplemente hace una comparacion logica, algo que hace una variable sin problemas.
Es lo que veo al hacer esta pruebita interesante de practica.

Saludos