How to Declare and Initialize Constant Arrays in Delphi

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 September 22, 2017).
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 September 22, 2017).