Рассмотрим случай, когда нужно изменять уникальные свойства разных объектов в одном универсальном скрипте. Для этого используем универсальный объект "Sender".
Sender - это какой-то (заранее неизвестный) объект, который вызвал скрипт, т.е. это может быть изображение, или текст, или фигура, или поле и т.д. Так как в Sender может быть подставлен любой объект проекта, то сначала необходима проверка, в которой следует убедиться, что Sender является нужным объектом.
begin
{ условия для изображения }
if Sender is TM_Image then // проверяем, что Sender это изображение
with Sender as TM_Image do // приводим Sender к типу "TM_Image"
if AsInt > 0 then
AnimSpeed := 16 // запустить анимацию
else // иначе
AnimSpeed := 0; // остановить анимацию
{ условия для поля }
if Sender is TM_Field then // проверяем, что Sender это поле
with Sender as TM_Field do // приводим Sender к типу "TM_Field"
case AsInt of // если значение переменной поля равно:
1..3: BorderColor := clRed; // 1..3 - изменить цвет рамки поля на красный
4 : BorderColor := clGreen; // 4 - изменить цвет рамки поля на зеленый
5 : FontColor := $FFFF00; // 5 - изменить цвет шрифта поля на желтый
6 : FontAlpha := 100; // 6 - изменить прозрачность шрифта поля
end;
{ условия для уровня }
if Sender is TM_Level then // проверяем, что Sender это уровень
with Sender as TM_Level do // приводим Sender к типу "TM_Level"
if AsInt < 50 then
BackgroundColor := clRed // изменить цвет фона уровня на красный
else // иначе
BackgroundColor := clGreen; // изменить цвет фона уровня на зеленый
end.
Такой скрипт можно применить для любых объектов "Изображение", "Поле" или "Уровень":
•для "Изображения" - будет запускаться/останавливаться анимация
•для "Поля" - будет меняться цвет рамки, шрифт и прозрачность
•для "Уровня" - будет меняться цвет фона