Свойство Capacity определяет количество строк, которое мо¬жет храниться в наборе, а абстрактное свойство Count содержит текущее количество элементов.
Если при добавлении очередного элемента Capacity окажется меньше Count, происходит автоматическое расширение массива. При этом в динамической памяти резервируется место для размещения Capacity+16 указателей, в новый массив переписывается содержимое старого массива, после чего старый массив уничтожается. Если заранее известно количество элементов в создаваемом наборе строк, имеет смысл установить начальное значение свойства Capacity, чтобы сократить непроизводительные расходы на многократные расширения массива указателей.
Свойство CommaText служит для задания или получения всего набора строк в формате SDF (специальный системный формат данных, который задает текст в виде единой строки с кавычками, запятыми и пробелами).
Правила формата SDF:
• строки разделяются запятыми или пробелами (можно так¬же заключить строки в двойные кавычки);
• если строка содержит двойные кавычки, то они удваиваются;
• две идущие подряд запятые обозначают пустую строку;
• все запятые и пробелы, не заключенные в двойные кавыч¬ки, считаются разделителями строк.
Например, если свойство CommaText имеет значение
"Стро, ка1","Стр""ока 2",,Строка 3,Строка4
то набор состоит из строк:
Стро,ка1
Стр"ока 2
Строка
3
Строка4
Следующие два свойства используются при представлении строк в формате Name=Value (имя = значение). Свойство Names содержит набор названий строк, a Values — набор соответствующих значений. Например, если i-я строка имеет вид
Color=clGreen (в строке не должно быть пробелов ни до, ни после символа «=»),
то
Names[i]:= 'Color'; Values[i]:='ClGreen'.
Элементами набора строк могут быть пары строка-объект. Свойство Objects открывает доступ к объекту, связанному со строкой с номером Index. Нумерация строк начинается с нуля.
Абстрактное свойство Strings используется для того, чтобы получить доступ к строке с номером Index. Для объектов класса TStrings свойство Strings является свойством по умолчанию, т. е. для доступа к конкретной строке необязательно использовать свойство Strings. Например, следующие операторы выполняют одно и то же действие:
var
MyStrings : TStrings;
MyStrings.Strings[0]:= 'Это первая строка’;
MyStrings[0] := 'Это первая строка';
Свойство Text содержит набор строк объекта в виде одной длинной строки с символами возврата каретки и перехода на новую строку
|