Posted by Johan P14205 on May 18, 2006The keyword "var" in the declaration of a Delphi procedure means that I send a "reference" to a variable, not only the value of the variable. For example:
S := 'abc'; DoSomething(S); // (1) ShowMessage(S); // (2) ... procedure DoSomething (var Param: string); begin Param := Param + 'def'; ...
After calling DoSomething in line (1), S is changed. Line (2) shows 'abcde'. But S would stay the same if DoSomething is defined without "var", such as:
procedure DoSomething (Param: string); begin Param := Param + 'def'; ...
So far, so good. But there seem to be exceptions on this rule: what if I don't use "VAR" and Param is a record, or an object, or an array? When is VAR needed?
Related Articles and Replies