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

Вниз

Создание собственного потомка TStringsList   Найти похожие ветки 

 
V.exeR ©   (2002-08-14 21:39) [0]

Подскажите, как организовать объект типа TStringsList, но со своими данными (вместо String хранить какой-нить record).


 
Anatoly Podgoretsky ©   (2002-08-14 22:00) [1]

Это он и сейчас может, свойство Objects


 
Юрий Зотов ©   (2002-08-14 22:37) [2]

А если сами строки не нужны, то еще лучше использовать TList или dynamic array - экономичнее по памяти.


 
V.exeR ©   (2002-08-15 02:02) [3]

а все же - как?...


 
einsam   (2002-08-15 02:26) [4]


> Anatoly Podgoretsky © (14.08.02 22:00)
> Это он и сейчас может, свойство Objects

Если я не ошибаюсь, то Objects может содержать только объекты, а вот тип-запись к ним вроде не относится.

А чтобы держать в TList данные своего типа, следует использовать указатели. Будет нечто вроде:
type
TMyRec = record
i: integer;
end;
var
PMyRec: ^TMyRec;
List: TList;
...
begin
...
List := TList.Create;
// вот так добавляем новую запись
New(PMyRec);
List.Add(PMyRec);
...
// вот так получаем данные
P := List[0];
ShowMessage(IntToStr(P^.i));
...
// и в конце не забыть всё это удалить
for j := List.Count - 1 downto 0 do
begin
P := List[j];
Dispose(P);
List.Delete(j);
end;
List.Free;
end;


 
Юрий Зотов ©   (2002-08-15 02:50) [5]

> Objects может содержать только объекты, а вот тип-запись к ним вроде не относится.

Objects может содержать любые данные длиной не более 4-байт.
Пример: Objects[i] := TObject(-100);
И там будет храниться число -100. Только извлекать его надо, приводя к целому типу:
N := Integer(Objects[i]);

Ясное дело, Objects, как и TList, может содержать и любые указатели. В том числе, указатели на любой record. Только неоптимально это - зачем использовать список строк, если сами строки не нужны? Лишние ресурсы гробить только. Лучше TList.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
3-84930
Ola
2002-08-07 11:23
2002.08.26
Help!!!! Срочно!!!!


3-84921
bobr12
2002-08-07 10:10
2002.08.26
Как узнать, существует ли таблица?


6-85162
Nikollay
2002-06-14 19:49
2002.08.26
Как отловить ClientSocket1->Open() ???


14-85257
Agent Smith
2002-07-31 19:49
2002.08.26
Athlon XP 1800 + Vulcan 6Cu - ЖАРА!!!


1-85126
dmtr
2002-08-15 11:16
2002.08.26
Динамическое переопределение