Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2009, 19:53
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию TList и свой класс

Люди, помогите. Хочу создать следующую структуру:


Не могу сообразить, как это сделать.

Делал следующее:

Код:
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? Что бы структура нарисованная на картинке была полной...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:48.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter