Types Delphi

1 type String;
2 type String[FixedSize constant];


Description
The String data type is used to hold sequences of characters, like sentences.

String is by default, actually treated as a AnsiString. It can be treated as a ShortString if the $LongStrings compiler directive is set Off (the default is On).

An AnsiChar can hold any number of characters, restricted only by memory.

Version 2 however, forces the string to be a ShortString by defining a FixedSize (up to 255 characters) of the string. This is particularly important when creating many strings, and especially so when storing strings in records (as in example 2).

Strings can be assigned from other strings, from functions that return a string, and with concatenations as in the sample code.

Notes
Strings are indexed with 1 for the first character (arrays start with 0 for the first element).


Related commands
$LongStrings Treat string types as AnsiString or ShortString
AnsiCompareStr Compare two strings for equality
AnsiLowerCase Change upper case characters in a string to lower case
AnsiPos Find the position of one string in another
AnsiString A data type that holds a string of AnsiChars
AnsiUpperCase Change lower case characters in a string to upper case
Concat Concatenates one or more strings into one string
Copy Create a copy of part of a string or an array
Delete Delete a section of characters from a string
Length Return the number of elements in an array or string
Move Copy bytes of data from a source to a destination
PString Pointer to a String value
SetLength Changes the size of a string, or the size(s) of an array
ShortString Defines a string of up to 255 characters
WideString A data type that holds a string of WideChars

Example code : Assigning to a string and then adding a bit more
var
myString : String;
begin
// Assign a famous sentence to this string
myString := 'Hello World';
// Add to this string
myString := myString + ', how is everyone?';
// Display the final myString value
ShowMessage('myString = '+myString);
end;

Show full unit code
Hello World, how is everyone?


Example code : Using fixed length strings in a record
type
// Declare a customer record
TCustomer = Record
firstName : String[15];
lastName : String[30];
end;
var
customer : TCustomer;
begin
// Set up the John's customer details
with customer do
begin
firstName := 'John';
lastName := 'Smith';
end;
// Now show the details of our customer
ShowMessage('Customer name = '+customer.firstName+
' '+customer.lastName);
end;

Show full unit code
Customer name = John Smith