Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

LIST of TMyType   Найти похожие ветки 

 
RealRascal ©   (2004-04-11 09:24) [0]

Порождаю новый класс от TLIST.

TMyList=class(TList)

Переписываю его метод Add.

MyList.Add(NewItem:TMyType);

Как мне потом обратиться к определенной переменной в этом списке, именно как к TMyType?

Ну вот, например,  в TStringList можно писать

stringvariable:=Stringlist1[23];

Как мне реализовать подобное через TList?
Я конечно понимаю, в альтернативу можно использовать динамеческие массивы, но... я хочу именно так. Мне так удобнее.


 
Cobalt ©   (2004-04-11 09:56) [1]

Посмтори компонент TComponentList как образец.
function TComponentList.Add(AComponent: TComponent): Integer;


 
Думкин ©   (2004-04-11 10:08) [2]

property Items[i : integer] : TDemoAction read GetItems; default;


 
RealRascal ©   (2004-04-11 12:50) [3]

О, Сила Витаминов! *торжественно, радостно*

Спасибо, оно у меня заработало!
Сделал так:


type TNodes = class(TList)
 private
   function get(Index:Integer):TNode;
 protected
 public
   procedure Add(const ANode: TNode);
   function AddNext(const x, y: double): word;
   property Items[Index: Integer]: TNode read Get; default;
 end;


где


function TNodes.get(Index:Integer):TNode;
begin
Result:= TNode(inherited get(index));
end;


 
Игорь Шевченко ©   (2004-04-11 13:41) [4]


> Result:= TNode(inherited get(index));


Result := TNode(inherited Items[index]);


 
RealRascal ©   (2004-04-11 14:50) [5]

>[4]
И так, как Вы предложили, тоже работает. Только я не пойму, в чем, собсно, разница.

Result:= TNode(inherited get(index)); - тут мы обращаемся к предку за функцией, так?

а в [4]?
К свойству, получается, чтоли...а свойство потом все равно оттуда этой функцией это заберет...
А зачем? Так быстрее работать будет? Или безопаснее? Или "так уж на Руси повелось"?



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
1-1081933960
LameFox
2004-04-14 13:12
2004.05.02
Не пашет Image1.Picture.LoadFromFile(...);


14-1081182186
gn
2004-04-05 20:23
2004.05.02
Россия вернула себе титул чемпиона мира по программированию


11-1066893645
Kerk
2003-10-23 11:20
2004.05.02
VCL -> KOL


1-1081924204
Переяслов Григорий
2004-04-14 10:30
2004.05.02
Функция, возвращающая размер файла


14-1081772853
Инкогнито
2004-04-12 16:27
2004.05.02
А вы верите в чудеса? :)