Name

Var Keyword

Syntax

var
  Name: Type;
  Name: Type = Expression;
  ...

Description

The var keyword declares one or more variables. If you use the var keyword at the unit level, it declares global variables whose lifetime is that of the entire unit. If you use the var keyword in a subroutine, you are declaring local variables whose scope and lifetime are limited to that subroutine.

You can also supply an initial value for a global variable, but not for a local variable.

Tips and Tricks

  • Without an initial value, a global variable is initialized to zero (empty string, nil pointer, etc.), and a local variable is not initialized.

  • Local variables are not usually initialized, but Delphi ensures that memory-managed variables, such as strings, dynamic arrays, Variants, and interfaces are properly managed.

  • The Result variable is special. It is initialized by the caller, not the subroutine, and the initial value is not necessarily zero.

Example

unit Debug;
interface
var
  FileName: string = 'c:debug.txt';
procedure Log(const Msg: string);
implementation
uses SysUtils;

procedure Log(const Msg: string);
var
  F: TextFile;
  TimeStamp: string;
begin
  AssignFile(F, FileName);
  if FileExists(FileName) then
    Append(F)
  else
    Rewrite(F);
  try
    TimeStamp := DateTimeToStr(Now);
    WriteLn(F, '[', TimeStamp, '] ', Msg);
  finally
    CloseFile(F);
  end;
end;
end.

See Also

Const Keyword, Function Keyword, Library Keyword, Procedure Keyword, Program Keyword, Result Variable, Self Variable, ThreadVar Keyword, Unit Keyword
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset