Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Teodor от 10 Мая 2017, 11:35:24

Название: Кнопка
Отправлено: Teodor от 10 Мая 2017, 11:35:24
У меня нарисовалась следующая задача:
Сделать кнопку "напоминалку" вызывающую окошко с параметрами "напоминалки".

Собсно, зависимо от ситуации должен меняться цвет и иконка на ней (4 варианта).

Как это правильно сделать?

- кнопок 60
- состояния: "неактивно", "активно", "внимание"(10 минут до указанного времени), "пора"(указанное время наступило)
- проверять достаточно раз  минуту
Название: Re: Кнопка
Отправлено: Teodor от 10 Мая 2017, 12:48:49
Код: (delphi)
begin
 Counter.Value:= Counter.Value + 1;

 if Counter.Value > 60 then
   begin
     Counter.Value := 0;
     If NoteAlarm1.Value = false then               
     begin
       Button69.States[0].Icon := 0;
       Button69.States[0].Color :=clSilver;
       NoteMessage1.Value:=0;
     end
     else
     begin
       if NoteTime1.Value < Now then
       begin
         Button69.States[0].Icon := 66;
         Button69.States[0].Color :=clRed;
         NoteMessage1.Value:=2;

       end
       else
       begin
         if MinutesBetween (Now, NoteTime1.Value) > 10 then
         begin
           Button69.States[0].Icon := 65;
           Button69.States[0].Color :=clGreen;
           NoteMessage1.Value:=0;                   

         end
         else
         begin
           Button69.States[0].Icon := 65;
           Button69.States[0].Color :=clYellow;
           NoteMessage1.Value:=1;

         end;
       end;
     end;

   end;
end.     
пока вышло как-то так... Теперь тупо размножить, или можно аккуратнее?
Название: Re: Кнопка
Отправлено: Teodor от 10 Мая 2017, 17:11:15
Спасибо, разобрался
Код: (delphi)
procedure Alarm(Time,Alm,Message:TM_Variable; Button:TM_Button);
begin
     if Alm.Value = false then
     begin
       Button.States[0].Icon := 0;
       Button.States[0].Color :=clSilver;
       Message.Value:=0;
     end
     else
     begin
       if Time.Value < Now then
       begin
         Button.States[0].Icon := 66;
         Button.States[0].Color :=clRed;
         Message.Value:=2;
       end
       else
       begin
         if MinutesBetween (Now, Time.Value) > 10 then
         begin
           Button.States[0].Icon := 65;
           Button.States[0].Color :=clGreen;
           Message.Value:=0;
         end
         else
         begin
           Button.States[0].Icon := 65;
           Button.States[0].Color :=clYellow;
           Message.Value:=1;
         end;
       end;
     end;
end;

begin
 Counter.Value:= Counter.Value + 1;
 if Counter.Value > 60 then
 begin
    Counter.Value := 0;
    Alarm (NoteTime1 ,NoteAlarm1 ,NoteMessage1 ,Button69 );
    Alarm (NoteTime2 ,NoteAlarm2 ,NoteMessage2 ,Button81 );
...
    Alarm (NoteTime53,NoteAlarm53,NoteMessage53,Button523);
    Alarm (NoteTime54,NoteAlarm54,NoteMessage54,Button531);

 end;
end.         
Название: Re: Кнопка
Отправлено: TheMustafa от 25 Июня 2018, 15:42:54
Здравствуйте Teodor!

А какие иконки для кнопок Вы используете? Свои или встроенные? Если свои, то как Вы их добавили в систему?