How to Declare and Initialize Constant Arrays in Delphi

Man in his home office
Marc Romanelli/Photodisc/Getty Images

In Delphi, arrays allow a developer to refer to a series of variables by the same name and to use a number (an index) to tell them apart.

In most scenarios, you declare an array as a variable -- thus allowing for array elements to be changed at run-time.

Sometimes, however, you need to declare a constant array -- a read-only array. You cannot change the value of a constant or a read-only variable. Therefore, while declaring a constant array you must also initialize it.

Example

 type
    TShopItem = record
      Name : string;
      Price : currency;
    end;
 
 const
    Days : array[0..6] of string =
    (
      'Sun', 'Mon', 'Tue', 'Wed',
      'Thu', 'Fri', 'Sat'
    ) ;
 
    CursorMode : array[boolean] of TCursor =
    (
      crHourGlass, crSQLWait
    ) ;
 
    Items : array[1..3] of TShopItem =
    (
      (Name : 'Clock'; Price : 20.99),
      (Name : 'Pencil'; Price : 15.75),
      (Name : 'Board'; Price : 42.96)
    ) ; 

This code declares and initializes three constant arrays, named: "Days," "CursorMode" and "Items."

  • "Days" is a string array of six elements. Days[1] returns the "Mon" string.
  • "CursorMode" is an array of two elements, whereby declaration CursorMode[false] = crHourGlass and CursorMode = crSQLWait. "cr*" constants can be used to change the current screen cursor.
  • "Items" defines an array of three TShopItem records.

Trying to assign a value for an item in a constant array raises the "Left side cannot be assigned to" compile time error.

For example, the following code will not successfully execute:

 Items[1].Name := 'Watch'; //will NOT compile 

Delphi tips navigator:
» How to Highlight Non-Focused DBGrid Selected Row
« Enumerating and Playing System Sounds from Delphi code

Format
mla apa chicago
Your Citation
Gajic, Zarko. "How to Declare and Initialize Constant Arrays in Delphi." ThoughtCo, Jan. 8, 2017, thoughtco.com/declare-and-initialize-constant-arrays-1057596. Gajic, Zarko. (2017, January 8). How to Declare and Initialize Constant Arrays in Delphi. Retrieved from https://www.thoughtco.com/declare-and-initialize-constant-arrays-1057596 Gajic, Zarko. "How to Declare and Initialize Constant Arrays in Delphi." ThoughtCo. https://www.thoughtco.com/declare-and-initialize-constant-arrays-1057596 (accessed November 18, 2017).