Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
ВнизСоздание собственного потомка 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c