Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Кнопка  (Прочитано 4724 раз)

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Кнопка
« : 10 Мая 2017, 11:35:24 »
У меня нарисовалась следующая задача:
Сделать кнопку "напоминалку" вызывающую окошко с параметрами "напоминалки".

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

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

- кнопок 60
- состояния: "неактивно", "активно", "внимание"(10 минут до указанного времени), "пора"(указанное время наступило)
- проверять достаточно раз  минуту
« Изменён: 10 Мая 2017, 11:45:47 от Teodor »

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: Кнопка
« Ответ #1 : 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.     
пока вышло как-то так... Теперь тупо размножить, или можно аккуратнее?
« Изменён: 25 Июня 2018, 21:32:34 от Simple-Scada »

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: Кнопка
« Ответ #2 : 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.         
« Изменён: 25 Июня 2018, 21:32:49 от Simple-Scada »

TheMustafa

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Кнопка
« Ответ #3 : 25 Июня 2018, 15:42:54 »
Здравствуйте Teodor!

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