к строке из списка объект,
TCityProps = class(TObject)
Square: Longlnt;
Population: Longlnt;
Status: String/end;
Для того чтобы добавить к строке из списка объект, используется метод AddObject:
function AddObject(const S: string; AObject: TObject): Integer; virtual;
Обратите внимание, что в параметре AObject необходимо передавать указатель на объект. Проще всего это сделать таким образом:
SomeStrings.AddObject('Someltem', TCityProps.Create);
Или же так:
var SPb: TCityProps;
...
SPb := TCityProps.Create; {Создание объекта}
SPb.Population := 5000000;
...
SomeStrings.Strings[i] := 'Санкт-Петербург';
SomeStrings.Objects[i] := SPb; (Связывание объекта и строки}
Можно поступить и подобным образом (помните, что строка уже должна существовать):
...
SomeStrings.Strings[i] := 'Санкт-Петербург';
SomeStrings.Objects[i] := TCityProps.Create;
(SomeStrings.Objects[i] as TCityProps).Population := 5000000;
...
Аналогично методу insert, элемент и связанный с ним объект можно вставить в произвольное место списка методом
procedure InsertObject(Index: Integer; const S: string; AObject: TObject);
При перемещении методом Move вместе с элементом переносится и указатель на связанный объект.
Обратите внимание на две особенности, связанные с удалением указателей на объекты и самих связанных объектов.
При удалении элемента списка удаляется только указатель на объект, а сам объект остается в памяти. Для его уничтожения следует предпринять дополнительные усилия:
...
for i := 0 to SomeList.Count — 1 do
SomeList.Objects[i].Destroy;
...
Если при удалении связанного объекта необходимо выполнить некоторые действия, предусмотренные в деструкторе, приведение типов
TCityProps(SomeList.Objects[i]).Destroy;
выполнять не обязательно — нужный деструктор будет вызван автоматически, хотя в данном случае приведение типов ошибкой не является.
Метод
procedure Clear; override;
полностью очищает список, удаляя все его элементы.
Помимо перечисленных, класс TStringList обладает рядом дополнительных свойств и методов. Вспомогательные свойства класса обеспечивают разработчика информацией о состоянии списка. Дополнительные методы осуществляют поиск в списке и взаимодействие с файлами и потоками.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий