Хорошо. Там действительно не все понятно, я думаю.

Итак, у меня в программе есть большое количество переменных (я их называю параметрами), к которым я боращаюсь обычным образом. Беру их значение, использую в выражениях, записываю, сохраняю в RETAIN или нет - все чин чинарем.
Но именно эти переменные-параметры объединяет то, что в определенных функциях (очень иногда, кстати) обращаться к ним удобно через индекс, как к элементам массива. И при этом существует ряд свойств каждого параметра, которые задаются еще до компиляции. Ну, например, предельные значения параметра. Эти свойства извлекать тогда тоже удобно из массива - по тому же индексу.

Так вот, есть массив структур, содержащих все свойства каждого параметра:

Код:
TYPE PARSCRIPT :
STRUCT
	Numb:	WORD;
	Typ:		PARTYPE;
	Point:	BYTE;
	Mdf:		RW_ACCESS;
	Node:	OWNER_NODE;
	Mini:		DINT;
	Maxi:		DINT;
	Ptr:		POINTER TO DWORD;	
END_STRUCT
END_TYPE
Вот объявление этого массива:

Код:
VAR_GLOBAL
	apsPar: ARRAY [0..MAX_PAR_INDX] OF PARSCRIPT;
END_VAR
Используя где-то в проге [I]apsPar.Ptr, я могу извлечь самое переменную или записать ее на свое место. По указателю, коим является элемент структуры [I]apsPar.Ptr.

Как видите, указатели-то указывают на адрес переменной, вполне фиксированный. Вот я и говорил о том, что объявить массив структур вполне можно было с CONSTANT.
Оказалось, что можно. Но только инициализировать пойнтер значением адреса данных (любых - хоть констант, хоть переменных) - нельзя.

Сам не знаю, зачем так подробно поясняю. Все равно сейчас Вы воскликнете "Проект - в студию!"
И что после этого? У Вас есть предположения, как же объявить константный указатель? Отвлекаясь от того, нафига он мне