Как сделать правильно?
Столкнулся с тем что Запускает пинг указанного хоста из алгоритма по изменению переменной. вводим ип действующий привязка к картинке срабатывает! вводим не действующий привязка работает! А вот если снова вводим действующий ип привязка больше не работает, помогает только перезагрузка проекта.
Получается процесс запущен (пинг) и обратно подключится не может и кажется что ип не доступен! а по факту надо использовать stopping. Не хочется еще городить кнопку.
Кто столкнется с проблемой со сменой ип и пингу вешайте на доп. переменную StopPing, и получится сначало произойдет остановка пинга а далее пинг пойдет.
Проект не надо перезагружать!
if Ip_cam1.AsStr<>'' then
begin
StartPing(Ip_cam1.Value, 1000, Image_cam_conv);
Ip_cam1_old_1.Value :=Ip_cam1.Value; // сохраняем в переменную ип
end
else
begin
StopPing(Ip_cam1_old_1.Value); // останавливаем пинг если поле пустое
Image_cam_conv.Frame:=4; //gray
end;
//оставить пинг по доп. переменной
begin
if not (Sender is TM_Object) then Exit;
with (Sender as TM_Object) do
if VariableEx.AsStr<>'' then StopPing(VariableEx.Value);
end.
Пинг изменился
begin
if PingData.Sender = nil then Exit;
if not (PingData.Sender is TM_Image) then Exit;
with PingData.Sender as TM_Image do
begin
if PingData.FailCounter=0 then
begin
Frame:=3; //green
Value:=1;
end;
if (PingData.FailCounter<5) AND (PingData.FailCounter<>0) then
begin
Frame:=1; //yellow
Value:=2;
end;
if PingData.FailCounter=5 then
begin
Frame:=4; //gray
Value:=0;
end;
end;
end.