- Код: Выделить всё
T_Desc = string[50];
T_Person = packed record //личность
FIO,
Rank:T_Desc
end;
T_CheckDate=packed record //Сведения о всяких проверках - утвердил, создал и т.п.
Who:T_Person; //кто проверял
When:TDateTime;
Desc:T_Desc; //описание проверки
REQ:Boolean; //требуемое?
end;
T_ElementSignature=record
case boolean of
true: (SigTotal:array[1..4]of char);
false: (SigHead,SigTail:array[1..2] of char);
end;
//Типы элементов: коллекция, модули - теория и опрос, вопрос, ответ
T_ElementType=(etCollection,etTheory,etExam,etQuestion,etAnswer);
T_CommonElementData = packed record //общие данные для всех и вся
ID:byte; //мой номер
MyType:T_ElementType; //кто я по жизни
Desc:T_Desc;
SigHead,
SigTail:T_ElementSignature;
case T_ElementType of
etCollection:(Placeholder:byte);
etTheory,etExam,etQuestion,etAnswer:(ParentID:byte); //папин номер (не используется для коллекции)
end;
T_CommonElementDates=packed record
Created, //создано
Verified, //проверено
Confirmed, //утерждено
LastModified:T_CheckDate; //последние изменения
end;
//виды коллекций: только теория,только опросы, смешанная
T_CollectionKind=(ckTheory,ckExam,ckMixed);
T_Collection=packed record //коллекция
ComData:T_CommonElementData;
Dates:T_CommonElementDates;
ValidSince,
ValidUntil:TDateTime; //даты годности коллекции - включительно.
KindOf:T_CollectionKind;
end;
Так вот на этом описании команда SizeOf(T_Collection) не работает (еще на этапе компиляции): Error: range check error while evaluating constants
Это как? Я впервые вижу такую диагностику.