Главная страница
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.016 c
1-85053
BOBAH
2002-08-14 11:44
2002.08.26
Как бы так сделать.


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


1-85018
cult
2002-08-16 11:26
2002.08.26
Проблемы с ВинКонтролом.


3-84884
relict
2002-08-06 08:42
2002.08.26
QReport помогите сформировать отчет


7-85269
eviruswork
2002-06-14 13:47
2002.08.26
Меню файлов