Как мне создать TStringList, содержащий в строке имя объекта, и
сам объект TStringList?
TStringList имеет возможность хранить для каждой строки свой указатель: см.
свойство Objects. Чтобы понять принцип работы с указателями, смотри в
электронной справке описание метода TStringList AddObject. Вот пример работы с
методом:
Приведенный ниже код правильно компилируется, правильно выполняется и
правильно демонстрирует все вышесказанное. Form1 имеет только один компонент
Label.
unit Unit1;
interfaceuses
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;
beginfor i := 0 to StringList1.Count - 1 dobegin
TempStringList := TStringList(StringList1.Objects[i]);
TempStringList.Free;
end;
end;
end.
В статье описывается создание списка списков (TStringList) в Delphi, содержащего имя объекта и сам объект TStringList, а также объясняется работа с указателями и управление памятью.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS