Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Изменение положения шаблона на экране  (Прочитано 413 раз)

SID

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Здравствуйте. Необходимо изменить положение шаблона на экране(x, y координаты). Возможно обратиться к свойствам шаблона? (Не к его содержимому, а именно свойствам координат самого шаблона).

На скриншоте множество объектов созданные на основе одного шаблона. Условно при изменение значения переменной координаты окон шаблонов должны сместиться вниз на определенное расстояние.

SID

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Изменение положения шаблона на экране
« Ответ #1 : 18 Октября 2024, 09:03:20 »
Видимо отвечу сам себе) Если я правильно понял после создания проекта создаются объекты согласно схемы шаблона и после они уже не является частью шаблона, а существуют как обычные добавленные объекты. Соответственно и обращаться к ним нужно также. Ошибочно думал что к шаблону можно обратиться в любой момент времени как к "сгруппированному объекту".

pan2000

  • Постоялец
  • ***
  • Сообщений: 210
    • Просмотр профиля
Re: Изменение положения шаблона на экране
« Ответ #2 : 18 Октября 2024, 21:13:52 »
   Здравствуйте.

  Можно превратить шаблон в подобие объекта пользователя (или "сгруппированный объект"), характеризующегося поведением шаблона как единого целого. Условно можно разделить общие свойства шаблона на две части - не изменяющие геометрию составляющих объектов: перемещение, управление цветом, доступом и видимостью, так и изменяющие: масштабирование, поворот. Последних следует избегать, так как есть возможность (особенно для WEB-клиента) появление артефактов на картинке.
  Для начала нужно при инициализации шаблона связать объекты посредством последовательных ссылок в UserData, что позволит изменять объект без использования его переменных. Такая последовательность обезличена, можно использовать один универсальный скрипт. Аналогичную последовательность ссылок можно создать при запуске проекта и для группы обычных объектов.
  Управления свойствами шаблона осуществляется по изменению переменных, связанных с первым объектом последовательности (т.е. последовательность нужно начинать с объекта не использующего переменные проекта или с дополнительного объекта, предназначенного исключительно для управления свойствами шаблона).
  Во вложении пример циклического перемещения шаблона по Х-координате в пределах экрана. Для иллюстрации экзотических возможностей в пример добавлена простейшая операция зеркального отражения шаблона по Х (изменение знака ширины объекта). Однако, как и следовало ожидать, простота оборачивается артефактами картинки, особенно для WEB-клиента.



ARV

  • Постоялец
  • ***
  • Сообщений: 117
    • Просмотр профиля
Re: Изменение положения шаблона на экране
« Ответ #3 : 21 Октября 2024, 08:55:27 »
Простое перемещение объектов шаблона можно реализовать гораздо проще.
1. Каждому объекту шаблона назначаем подстановки Variable=%DX% VariableEx=%DY%
2. В события OnDataChange и OnDataChangeEx каждого объекта шаблона прописываем простейший скрипт
Код
  with TM_Object(Sender) do begin
    X := X + Variable.AsInt;
    Y := Y + VariableEx.AsInt;
  end;
3. Делаем сколько угодно экземпляров шаблона и в их подстановки прописываем реальные переменные. Если всем экземплярам прописать одинаковые переменные, все объекты будут смещаться синхронно на одинаковые величины
4. Меняем переменные - "шаблонные" объекты движутся.