Описание:
Каждый символ - это AnsiChar с гарантированным 8-битным размером.
AnsiString может хранить любое количество символов, ограниченное только размером памяти.
В отличие от строк ShortString, строки AnsiString - это переменные-указатели. Память для AnsiString выделяется только по мере необходимости. Например, присваивание значения одной AnsiString другой не выделяет память для копии первой строки. Вместо этого, счетчик ссылок первой строки увеличивается на 1, и вторая AnsiString устанавливается как указатель на нее.
Но когда вторая строка меняется, под нее выделяется новая память, и счетчик ссылок на первую строку уменьшается на 1.
Когда на строку нет больше ссылок (последняя ссылка на строку установлена в nil), она стирается из памяти. Это пример того, как Delphi управляет памятью в ваших интересах.
Строкам AnsiString можно присваивать значения других строк, значения функций, возвращающих строки, и конкатенации строк, как показано в коде примера.