Здравствуйте.
Сначала нужно получить начальные значения координат объекта из подстановки шаблона. Например, в шаблоне определен объект Field1 с основной переменной %Xcoord%, значение которой определяет смещение этого объекта относительно начального положения при запуске проекта.
Скрипт по событию "Инициализация шаблонного объекта":var Obj: TM_Object;
begin
Obj := GetTemplateObject('Field1');
if Obj = nil then exit;
obj.Variable.LowAlarm := Obj.X; // Х-координата исходного положения объекта хранится в нижней аварийной границе основной переменной
// Obj.VariableEx.Value := Obj.X; // при желании или необходимости для хранения можно использовать доп.переменную объекта
end.
Собственно перемещение объекта. Скрипт "Пользователь ввел значение в поле":begin
with Sender as TM_Object do
X := AsSingle + Variable.LowAlarm; // начальная координата хранится в одном из свойств переменной
// X := AsSingle + VariableEx.Value; // начальная координата хранится в отдельной (дополнительной) переменной
end.
Перемещение объекта не ограничивается шаблоном или экраном, и при больших (абсолютных) перемещениях выходит за пределы экрана.
Пример во вложении.