Рассмотрим случай, когда нужно реализовать мигание объекта при определенном значении связанной с ним переменной. Для этого:
1.В свойстве "Переменная" объекта выбираем нужную переменную.
2.В инспекторе объектов переходим на вкладку "События" и дважды кликаем по событию "OnDataChange" (изменилось значение переменной связанной с объектом).
Важно! Если необходимо управлять миганием множества однотипных объектов по одинаковым условиям, то рекомендуется написать один универсальный скрипт(см. примеры ниже), тогда не нужно будет писать отдельный скрипт для каждого объекта, что значительно ускорит разработку проекта, а также повысит скорость его работы.
Примеры скриптов
1. Простой скрипт, если условие одно
begin
if Image1.AsInt = 1 then // если значение переменной изображения = 1, то
Image1.FlashColor := clRed // включить мигание изображения красным цветом
else // иначе
Image1.FlashColor := clNone; // отключить мигание изображения
end.
|
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.
|
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.
|
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 секунда. Для управления частотой мигания нужно создать новый скрипт с типом события "Запуск проекта" и при помощи процедуры SetFlashInterval установить требуемую частоту мигания. Следует учитывать, что процедура SetFlashInterval не работает в web-клиентах.