Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что такое Самоадресуемая запись? [D6]


Страницы:   1 2

Tano ©   (2002-11-18 02:20:00) 

Насколько я понял, нельзя создать тип - массив записей (и тем более указатель на это).
type
TFieldID = record
Tp :TNodeType;
Offs :Integer;
HD :THD;
end;
TFieldsID = array[0..cMaxFieldsCount] of TFieldID;
pTFieldsID = ^TFieldsID; <- Error 59: "TFieldsID" is not a type identifier


при этом
var
FieldsID :array[0..cMaxFieldsCount] of TFieldID;

имеет право на существование, а
var
FieldsID :TFieldsID;

уже нет.
Компилятор разрешает объявление типа "массив записей", но как его использовать?

В моем карманном справочнике упоминается "Самоадресуемая запись", но "поскольку в книге не используются, рекомендуем [1] и [3]...".
Если кто знает, хотя бы подскажите ключевые слова на английском (все что могло прийти в голову уже перебрал и в Helpe и на форуме).

Thanks!


MBo   (2002-11-18 06:16:00) [21]

>Tano
Все написанные тобой объявления совершенно корректны и проходят компиляцию.


ЮЮ   (2002-11-18 04:53:00) [22]

А почему бы просто не
TFieldsID = array of TFieldID;
и
var
FieldsID :TFieldsID;
имеет право на существование, и FieldsID - это только указатель
Правда, придётся работать аккуратно:
Устанавливать длину массива SetLength(FieldsID, xxx), при работе
проверять диапазон Low(FieldsID), Hogh(FieldsID) и длину Length(FieldsID)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо