Описание
Создать скрипт с типом события "Изменился пинг" можно через редактор скриптов. Скрипт вызывается каждый раз, когда состояние любого запущенного пинга меняется (запуск пинга осуществляется процедурой StartPing). Имеет параметр PingData, который содержит данные пинга. Параметр PingData обладает свойствами типа TM_PingData.
Примеры скриптов
1. Простой пинг с проверкой результата
Сначала пинг нужно запустить, например при старте проекта. Создадим скрипт с типом события "Запуск проекта" и кодом: begin Теперь создадим скрипт с типом события "Изменился пинг", в котором будем отображать состояние пинга: begin |
2. Пинг нескольких устройств с использованием шаблона
Пусть в проекте имеются несколько объектов "Фигура" и нам требуется выполнять пинг разных устройств. Результат каждого пинга нужно отобразить на соответствующей фигуре, меняя ее цвет на зеленый, если пинг прошел успешно и на красный, если пинг не удался. Для этого можно использовать систему шаблонов совместно с функцией GetTemplateObject: 1.Создадим новый шаблон и разместим в нем объект "Фигура" с именем ShapePing; 2.Выделим объект ShapePing и на свойство "Подсказка" назначим подстановку %Хост%; 3.Выделим сам шаблон и на событие OnInit назначим скрипт: var
Теперь можно обработать результат пинга в отдельном скрипте с типом события "Изменился пинг": begin |
3. Пинг нескольких устройств с привязкой к объектам одного типа
Пусть в проекте есть три фигуры "Shape1", "Shape2" и "Shape3" и нам нужно выполнять пинг трех разных устройств. Результат каждого пинга нужно отобразить на соответствующей фигуре, меняя ее цвет на зеленый, если пинг прошел успешно и на красный, если пинг не удался. Сначала создадим скрипт с типом события "Запуск проекта", в котором запустим пинг трех устройств. Причем, каждый пинг свяжем со своей фигурой: begin
Далее, создадим скрипт с типом события "Изменился пинг" и реализуем смену цвета в зависимости от результатов пинга: begin В этом коде мы сначала убедились что пинг связан с каким-то объектом. Затем убедились, что этот объект является фигурой. Наконец, начали работать с объектом как с фигурой. Эти проверки обязательны, так как допускается связывание пинга с объектами любых типов. Поэтому, перед работой с объектом пинга мы должны проверить тип объекта и только после этого работать с ним. |
4. Пинг нескольких устройств с привязкой к объектам разного типа
В предыдущем примере мы связали несколько пингов с тремя фигурами. В этом примере назначим пингам объекты разного типа. Первому - текст, второму - фигуру, третьему - изображение. Как и в предыдущем примере, сначала создадим скрипт с типом события "Запуск проекта", в котором запустим пинг трех устройств, связывая каждый пинг с соответствующим объектом: begin
Далее, создадим скрипт с типом события "Изменился пинг" и опишем реакцию на результат пинга в зависимости от того, с каким объектом связан пинг. Если пинг связан с объектом "Текст", то выводим результат в виде текста "Пинг прошел!"/ "Пинг не удался!". Если пинг связан с объектом "Фигура", то меняем ее цвет на зеленый, либо красный. Если пинг связан с объектом "Изображение", то меняем кадр изображения на 2 или 1 в зависимости от результатов пинга: begin |
5. Пинг нескольких устройств с привязкой к множеству объектов одного типа
Пусть в проекте имеется шесть изображений "Image1", "Image2"... "Image6" и нам требуется выполнять пинг двух разных устройств. Результат пинга первого устройства нужно отобразить на изображениях "Image1" ... "Image3", меняя их цвет на зеленый, если пинг прошел успешно и на красный, если пинг не удался. Результат пинга второго устройства нужно отобразить на изображениях "Image4" ... "Image6". Для решения задачи необходимо создать две внутренние переменные(по одной для каждого пинга) с типом данных Boolean, в которые будет записываться значение 1 если пинг прошел успешно и 0, если пинг не удался. Допустим они будут называться "vrPing1" и "vrPing2". Тогда, переменную "vrPing1" свяжем с основной переменной изображений "Image1" ... "Image3", а переменную "vrPing2" с основной переменной изображений "Image4" ... "Image6". Далее, создадим скрипт с типом события "Запуск проекта", в котором запустим пинг устройств. Причем, каждый пинг свяжем с первым изображением каждой "группы": begin
Создадим скрипт с типом события "Изменился пинг", в котором будем записывать в переменную изображения связанного с пингом значение 1 если пинг прошел успешно и 0, если пинг не удался : begin
Далее, создадим скрипт с типом события "Универсальный скрипт", в котором реализуем смену цвета в зависимости от значения переменной связанной с изображением: begin , и назначим этот скрипт на событие OnDataChange всех изображений "Image1" ... "Image6". Теперь, при изменении пинга первого устройства будет меняться цвет изображений "Image1" ... "Image3", а при изменении второго пинга цвет изображений "Image4" ... "Image6". |