TStringList имеет возможность хранить для каждой строки свой указатель: см. свойство Objects. Чтобы понять принцип работы с указателями, смотри в электронной справке описание метода TStringList AddObject. Вот пример работы с методом:
StringList1.AddObject('Имя списка', TStringList.Create); |
ПРЕДУПРЕЖДЕНИЕ: Delphi не удаляет эти объекты. Вы должны позаботиться об этом сами.
Вы можете получить доступ к связанному stringlist, назначая его переменной TStringList:
TempStringList := TStringList(StringList1.Objects[index]); |
Приведенный ниже код правильно компилируется, правильно выполняется и правильно демонстрирует все вышесказанное. Form1 имеет только один компонент Label.
unit Unit1; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Forms, Dialogs, Grids, StdCtrls; type TForm1 = class(TForm)Label1: TLabel;procedure FormCreate(Sender: TObject);procedure FormDestroy(Sender: TObject);private{ Private declarations }public{ Public declarations }StringList1, TempStringList: TStringList;end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin StringList1 := TStringList.Create;StringList1.AddObject('имя', TSTringList.Create);TempStringList := TStringList(StringList1.Objects[0]);TempStringList.Add('Привет');Label1.Caption := TempStringList[0];end; procedure TForm1.FormDestroy(Sender: TObject); var i: Longint; begin for i := 0 to StringList1.Count-1 do beginTempStringList := TStringList(StringList1.Objects[i]);TempStringList.Free;end;end; end. |
[000663]