Ваша AddOp
функция всегда возвращает 0, потому что вы никогда не присваиваете значение ее результату функции.Где-то в нем вы должны иметь оператор, который гарантированно * для выполнения и который выглядит следующим образом:
AddOp := {whatever the correct value is}
Поскольку вы, очевидно, используете FreePascal, вы можете использовать Result
какпсевдоним для результата функции, как в
Result := {whatever the correct value is}
* На самом деле, это несколько преувеличение, потому что может быть более одного допустимого пути выполнения через код функции, поэтому более общее правилоявляется то, что каждый допустимый путь выполнения через функцию должен заставить функцию возвращать значение.