Здраствуйте помогите организовать логику с этим скриптом, не могу понять это вообще возможно одним скриптом сделать или нужно 2 отдельно. В итоге работает так что поле марает либо красно желты либо желта зеленый
Если температура ≤ 15 → сразу зелёный
Если температура > 15, но снижается (таймер растёт) → зелёный , даже если меньше 10 секунд
Если температура > 15 и не снижается , то: Первые 10 секунд — жёлтый После 10 секунд — красный
begin
// Проверяем, снижается ли температура
if Shape1.Value < prevTemp.Value then
vrCoolingTimer.Value := vrCoolingTimer.Value + 1
else
vrCoolingTimer.Value := 0;
// Обновляем предыдущее значение после проверки
prevTemp.Value := Shape1.Value;
if Shape1.Value <= 15 then
begin
Shape1.Color := clLime;
vrTimer.Value := 0;
vrCoolingTimer.Value := 0;
end
else if vrCoolingTimer.AsInt > 0 then
begin
Shape1.Color := clLime; // Зелёный: температура снижается (до 10 сек)
end
else
begin
vrTimer.Value := vrTimer.Value + 1;
if vrTimer.AsInt >= 100 then
Shape1.Color := clRed // Красный: температура не снижается ≥ 10 сек
else
Shape1.Color := clYellow; // Жёлтый: только что вышла за норму
end;
end.