Люди, помогите. Хочу создать следующую структуру:
Не могу сообразить, как это сделать.
Делал следующее:
Код:
type
prec=^trec;
trec=record
Name:String;
ListFunction : TStrings;
end;
tClass = class(TObject)
private
FCountList : Integer;
list : TList;
public
procedure Add(rec:TRec);
function Get(Index : Integer): prec;
property Count:Integer read FCountList;
constructor Create;
end;
procedure tClass.Add(rec: trec);
var
tmp : prec;
i : Integer;
begin
new(tmp);
tmp.Name := rec.Name;
tmp.ListFunction := TStringList.Create;
tmp.ListFunction.Assign(rec.ListFunction);
list.Add(tmp);
FCountList := list.Count;
end;
constructor tClass.Create;
begin
list := TList.Create;
FCountList := list.Count;
end;
function tClass.Get(Index: Integer): prec;
begin
Result := list.Items[Index];
end;
Использовал следующим образом:
Код:
var
Form1: TForm1;
c : tClass;
procedure TForm1.Button1Click(Sender: TObject);
var
tmp : trec;
begin
tmp.Name := Edit1.Text;
tmp.ListFunction := ListBox1.Items;
c.Add(tmp);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer;
tmp : prec;
begin
new(tmp);
ListBox2.Clear;
for i := 0 to c.Count - 1 do
begin
tmp := c.Get(i);
ListBox2.Items.Add(tmp.Name);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
c := tClass.Create;
end;
procedure TForm1.ListBox2Click(Sender: TObject);
var
tmp : prec;
begin
Label4.Caption := IntToStr(ListBox2.ItemIndex);
new(tmp);
if ListBox2.ItemIndex >= 0 then
begin
tmp := c.Get(ListBox2.ItemIndex);
ListBox3.Items.Assign(tmp.ListFunction);
end;
end;
Таким образом у меня получается список с одним Sting и одним TStringList.
Как к каждой строке TStringList добавить свой TSringList? Что бы структура нарисованная на картинке была полной...