Also ich kenn die Pascal Syntax nicht aber:
Call by reference sollte sein was du suchst denn wie der Name sagt by refernec eheisst du gibst der funktion eine referenze (pointer) zu dem Wert im Speicher welcher dann direkt manipuliert werden kann
by value kopierst du nur den Wert und uebergibst ihn an die funktion diee Kopie ist nun unabhaengig vom original.
btw sind das przedur deklarationen oder aufrufe - imho bestimmst du die art des calls beim Aufruf darauf basierend was du passed (value oder reference).
Edit: Hab mir mal schnell die Pascal Syntax angesehen
http://www.freepascal.org/docs-html/...4-13100011.4.2When parameters are declared as variable parameters, the procedure or function accesses immediatly the variable that the calling block passed in its parameter list. The procedure gets a pointer to the variable that was passed, and uses this pointer to access the variable’s value. From this, it follows that any changes made to the parameter, will propagate back to the calling block. This mechanism can be used to pass values back in procedures. Because of this, the calling block must pass a parameter of exactly the same type as the declared parameter’s type. If it does not, the compiler will generate an error.
Also ja du hast teilweise recht, durch die Deklaration als variable (var) sagst du der prozedur dass es sich um einen Pointer handelt dementsprechend wird deine Prozedur dann ein call-by-reference. Aber "var" selber ist kein call by reference da es sich nur um eine Deklaration handelt, aber es legt sozusagen die Basis die Call-by reference ermoeglicht.
MFG