Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.005 c
6-85155
ILAR
2002-06-15 19:22
2002.08.26
МОДЕМ


3-84912
Abu
2002-08-06 17:30
2002.08.26
десятичные знаки


4-85281
-=NIGERS_BASTARD=-
2002-06-21 17:09
2002.08.26
Как изменить координаты окна внешнего приложения


14-85234
VEG
2002-07-30 23:50
2002.08.26
Какой нужен возраст, чтобы стать


1-85015
A7exander
2002-08-16 10:49
2002.08.26
Как это сделать программно (dock)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский