Мигание цветом > [HTML Version](flashing.html) Рассмотрим случай, когда нужно реализовать мигание объекта при определенном значении связанной с ним переменной. Для этого: 1. В свойстве "Переменная" объекта выбираем нужную переменную. 2. В инспекторе объектов переходим на вкладку "События" и дважды кликаем по событию "OnDataChange" (изменилось значение переменной связанной с объектом). Важно\! Если необходимо управлять миганием множества однотипных объектов по одинаковым условиям, то рекомендуется написать один [универсальный](script-types.md) скрипт(см. примеры ниже), тогда не нужно будет писать отдельный скрипт для каждого объекта, что значительно ускорит разработку проекта, а также повысит скорость его работы. **Примеры скриптов** **(./images/tog_code_1.png) 1. Простой скрипт, если условие одно** ```` begin if Image1.AsInt = 1 then // если значение переменной изображения = 1, то Image1.FlashColor := clRed // включить мигание изображения красным цветом else // иначе Image1.FlashColor := clNone; // отключить мигание изображения end. ```` ```` **(./images/tog_code_1.png) 2. Универсальный скрипт, если условие одно (можно применить к любому объекту)** ```` begin if Sender is TM\_Object then // проверяем, что Sender это объект with Sender as TM\_Object do // приводим Sender к типу "TM\_Object" if AsInt = 1 then // если значение переменной объекта равно 1, то FlashColor := clRed // включить мигание объекта красным цветом else // иначе FlashColor := clNone; // отключить мигание объекта end. ```` ```` **(./images/tog_code_1.png) 3. Простой скрипт, если условий несколько** ```` begin // отключаем мигание в начале скрипта - таким образом не нужно будет // отдельно отключать мигание для каждого условия ниже Image1.FlashColor := clNone; case Image1.AsInt of // если значение переменной равно: 1 : Image1.Color := clYellow; // 1 - изменить цвет на желтый // 2 – изменить цвет на "без цвета" - для того, чтобы мигание было только // зеленым цветом, а не с желтого на зеленый 2 : begin Image1.Color := clNone; Image1.FlashColor := clGreen; // включить мигание зеленым цветом end; 3 : Image1.Color := clBlue; // 3 – изменить цвет на синий end; end. ```` ```` **(./images/tog_code_1.png) 4. Универсальный скрипт, если условий несколько (можно применить к любому объекту)** ```` begin // Sender - это объект, который вызвал скрипт(например поле, изображение и т.д.) if Sender is TM\_Object then // проверяем, что Sender это объект with Sender as TM\_Object do // приводим Sender к типу "TM\_Object" begin // отключаем мигание в начале скрипта - таким образом не нужно будет // отдельно отключать мигание для каждого условия ниже FlashColor := clNone; case AsInt of // если значение переменной равно: 1 : Color := clYellow; // 1 - изменить цвет на желтый // 2 – изменить цвет на "без цвета" - для того, чтобы мигание было только // зеленым цветом, а не с желтого на зеленый 2 : begin Color := clNone; FlashColor := clGreen; // включить мигание зеленым цветом end; 3 : Color := clBlue; // 3 – изменить цвет на синий end; end; end. ```` --- ```` Универсальный скрипт можно применить к любому объекту, для этого требуется: 1. Выделить необходимый объект(или множество объектов) и через инспектор объектов перейти на вкладку "События". 2. В свойстве "OnDataChange" выбрать из списка наш созданный скрипт - он привяжется ко всем выделенным объектам. 3. Не забыть связать объект(объекты) с нужной переменной. 4. В дальнейшем, при необходимости можно копировать однотипные объекты и только менять у них переменную. Теперь все объекты, у которых в событии "OnDataChange" выбран универсальный скрипт будут работать в соответствии с условиями скрипта. Все объекты в проекте для которых применяется мигание будут мигать синхронно, по-умолчанию с частотой 1 секунда. Для управления частотой мигания нужно [создать новый скрипт](via-script-editor.md) с типом события "[Запуск проекта](launch-project.md)" и при помощи процедуры [SetFlashInterval](setflashinterval.md) установить требуемую частоту мигания. Следует учитывать, что процедура SetFlashInterval не работает в web-клиентах.