История: Глобальные процедуры и функции > Работа с пингом StartPing |
Пред. Вверх След. Еще |
Синтаксис
procedure StartPing(AHost: string; ATimeout: Integer; const ASender: TObject = nil);
Описание
Запускает пинг хоста AHost. ATimeout - максимальное время ожидания ответа от хоста в миллисекундах. ASender - необязательный параметр, с помощью которого можно привязать к пингу какой-либо объект. Указанный хост будет пинговаться до тех пор, пока проект активен на сервере (при остановке проекта пинг прекратится). Результат пинга можно получить в скрипте с типом события "Изменился пинг".
Примеры скриптов
1. Простой пинг с проверкой результата
Сначала пинг нужно запустить, например при старте проекта. Создадим скрипт с типом события "Запуск проекта" и кодом: begin Теперь создадим скрипт с типом события "Изменился пинг", в котором будем отображать состояние пинга: begin |
2. Пинг нескольких устройств с привязкой к объектам одного типа
Пусть в проекте есть три фигуры "Shape1", "Shape2" и "Shape3" и нам нужно выполнять пинг трех разных устройств. Результат каждого пинга нужно отобразить на соответствующей фигуре, меняя ее цвет на зеленый, если пинг прошел успешно и на красный, если пинг не удался. Сначала создадим скрипт с типом события "Запуск проекта", в котором запустим пинг трех устройств. Причем, каждый пинг свяжем со своей фигурой: begin
Далее, создадим скрипт с типом события "Изменился пинг" и реализуем смену цвета в зависимости от результатов пинга: begin В этом коде мы сначала убедились что пинг связан с каким-то объектом. Затем убедились, что этот объект является фигурой. Наконец, начали работать с объектом как с фигурой. Эти проверки обязательны, так как допускается связывание пинга с объектами любых типов. Поэтому, перед работой с объектом пинга мы должны проверить тип объекта и только после этого работать с ним. |
3. Пинг нескольких устройств с привязкой к объектам разного типа
В предыдущем примере мы связали несколько пингов с тремя фигурами. В этом примере назначим пингам объекты разного типа. Первому - текст, второму - фигуру, третьему - изображение. Как и в предыдущем примере, сначала создадим скрипт с типом события "Запуск проекта", в котором запустим пинг трех устройств, связывая каждый пинг с соответствующим объектом: begin
Далее, создадим скрипт с типом события "Изменился пинг" и опишем реакцию на результат пинга в зависимости от того, с каким объектом связан пинг. Если пинг связан с объектом "Текст", то выводим результат в виде текста "Пинг прошел!"/ "Пинг не удался!". Если пинг связан с объектом "Фигура", то меняем ее цвет на зеленый, либо красный. Если пинг связан с объектом "Изображение", то меняем кадр изображения на 2 или 1 в зависимости от результатов пинга: begin |
4. Пинг нескольких устройств с привязкой к множеству объектов
Пусть в проекте имеется шесть изображений "Image1", "Image2"... "Image6" и нам требуется выполнять пинг двух разных устройств. Результат пинга первого устройства нужно отобразить на изображениях "Image1" ... "Image3", меняя их цвет на зеленый, если пинг прошел успешно и на красный, если пинг не удался. Результат пинга второго устройства нужно отобразить на изображениях "Image4" ... "Image6". Для решения задачи необходимо создать две внутренние переменные(по одной для каждого пинга) с типом данных Boolean, в которые будет записываться True если пинг прошел успешно и False, если пинг не удался. Допустим, они будут иметь имена "vrPing1" и "vrPing2". Тогда, переменную "vrPing1" свяжем с основной переменной изображений "Image1" ... "Image3", а переменную "vrPing2" с основной переменной изображений "Image4" ... "Image6". Далее, создадим скрипт с типом события "Запуск проекта", в котором запустим пинг устройств. Пинг первого устройства свяжем с переменной "vrPing1", пинг второго устройства свяжем с переменной "vrPing2": begin
Создадим скрипт с типом события "Изменился пинг", в котором будем записывать в переменную связанную с пингом True если пинг прошел успешно и False, если пинг не удался: begin
Далее, создадим скрипт с типом события "Универсальный скрипт", в котором реализуем смену цвета в зависимости от значения переменной связанной с изображением: begin , и назначим этот скрипт на событие OnDataChange всех изображений "Image1" ... "Image6". Теперь, при изменении пинга первого устройства будет меняться цвет изображений "Image1" ... "Image3", а при изменении второго пинга цвет изображений "Image4" ... "Image6". |