Главная страница
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.013 c
1-85065
dmtr
2002-08-14 12:37
2002.08.26
Windows 2000 Advanced Server


1-84963
vlv
2002-08-15 15:40
2002.08.26
Преобразование URL


14-85212
ACR
2002-07-31 04:40
2002.08.26
Утечка памяти


14-85254
Alibaba
2002-07-30 12:43
2002.08.26
Где IE хранит ранее введенные значения?


7-85261
as2002
2002-05-26 01:03
2002.08.26
надо спрятать папки