![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Люди, помогите. Хочу создать следующую структуру:
![]() Не могу сообразить, как это сделать. ![]() Делал следующее: Код:
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? Что бы структура нарисованная на картинке была полной... |