31
Ваши вопросы / Re: Скрипт кнопка с фиксацией
« : 14 Июня 2024, 07:56:05 »
Здравствуйте.
Вполне можно обойтись без таймера, достаточно в скрипте по изменению основной переменной переводить кнопку с фиксацией в начальное состояние:
Для кнопки с таймером реализация немножко сложнее. Набор скриптов для "самодостаточной" кнопки (т.е. не требующей изменения скриптов или добавления новых переменных):
- по изменению основной переменной:
- "Прошла секунда":- по изменению дополнительной переменной, в качестве которой выступает виртуальная переменная timer:
Для кнопок с изменяемым таймером можно использовать шаблон. Принудительное переключение кнопки в начальное состояние можно заблокировать, управляя свойством Enabled кнопки.
Все примеры во вложении.
Вполне можно обойтись без таймера, достаточно в скрипте по изменению основной переменной переводить кнопку с фиксацией в начальное состояние:
Код: (delphi)
begin
with Sender as TM_Button do
if AsInt > 0 then // для boolean: if AsBool then
begin
Value := 0; // для boolean: Value := false;
// действие при нажатии кнопки, например счетчик числа нажатий на самой кнопке
Tag := Tag + 1;
States[0].Caption := IntToStr(Tag);
end;
end.
Для кнопки с таймером реализация немножко сложнее. Набор скриптов для "самодостаточной" кнопки (т.е. не требующей изменения скриптов или добавления новых переменных):
- по изменению основной переменной:
Код: (delphi)
begin
with Sender as TM_Object do
if AsInt > 0 then Tag := 5; // Tag - это таймерная переменная данной кнопки
// действие при нажатии кнопки
end.
- "Прошла секунда":
Код: (delphi)
begin
timer.Inc(1, 0, 10000000); // это единственная виртуальная переменная - таймера хватит на 7 лет
end.
Код: (delphi)
begin
with Sender as TM_Button do
if Tag > 0 then
begin
if Tag = 1 then Value := 0; // обнуление основной переменной - сброс кнопки в начальное состояние
Tag := Tag - 1;
// иллюстрация - изменение значения таймерной переменной
States[1].Caption := IntToStr(Tag);
end;
end.
Для кнопок с изменяемым таймером можно использовать шаблон. Принудительное переключение кнопки в начальное состояние можно заблокировать, управляя свойством Enabled кнопки.
Все примеры во вложении.