Maks150988 Ясное дело, что при объявлении константы типа
Array [HDC] of Integer компилятор ругнется что выделяемый под тип разсер памяти больше 2 Гб! Посчитай сам: тип HDC (Longword) имеет минимальное значение 0, максимальное - 4294967295. Т.е. ты говоришь компилятору, что ты хочешь объявить константу типа массив, состоящий из 4294967296 элементов типа Integer. Считаем дальше, итого запрашиваемый размер: 4294967296 * SizeOf(Integer) = 4294967296 * 4 = 17179869184 байт или 16 Гб
А в варианте, подсказанном
ValidolX ты выделяешь под тип константы такой размер:3* SizeOf(Integer) = 12 байт - все красиво!
Вот и думай
И еще вопрос: ptp.normalDC, ptp.pressDC, ptp.maskDC - это же вроде как дескрипторы контекстов каких-то устройств. Т.к. ты хочешь загнать их в константу, то ты уверен, что знаешь их в момент компиляции. Вопрос: как ты их знаешь?
Можно сделать так:
Код: type
DCarray = (normalDC, pressDC, maskDC);
var
MyArray: array [DCarray] of integer;
begin
MyArray[normalDC]:= ptp.normalDC;
MyArray[pressDC]:= ptp.pressDC;
MyArray[maskDC]:= ptp.maskDC;
IntToStr(MyArray[pressDC]);
end;