Изменение текста

> [HTML Version](changetext.html)

Рассмотрим случай, когда нужно изменять текст объекта "Текст" при изменении значения связанной с ним переменной. Для этого:

1. В свойстве "Переменная" объекта выбираем нужную переменную.

2. В инспекторе объектов переходим на вкладку "События" и дважды кликаем по событию "OnDataChange" (изменилось значение переменной связанной с объектом).

Важно\! Если необходимо управлять свойствами множества однотипных объектов по одинаковым условиям, то рекомендуется написать один [универсальный](script-types.md) скрипт(см. примеры ниже), тогда не нужно будет писать отдельный скрипт для каждого объекта, что значительно ускорит разработку проекта, а также повысит скорость его работы. 

**Примеры скриптов**

**(./images/tog_code_1.png) 1. Простой скрипт, если условие одно**

````
begin  
  if Text1.AsInt = 1 then     // если значение переменной текста = 1, то   
    Text1.Text := 'Автомат'   // изменить текст на 'Автомат'  
  else                        // иначе  
    Text1.Text := 'Ручной';   // изменить текст на 'Ручной'  
end.
````

````
**(./images/tog_code_1.png) 2. Универсальный скрипт, если условие одно (можно применить к любому объекту "Текст")**

````
begin  
  if Sender is TM\_Text then   // проверяем, что Sender это текст  
    with Sender as TM\_Text do // приводим Sender к типу "TM\_Text"              
      if AsInt = 1 then       // если значение переменной текста равно 1, то   
        Text := 'Автомат'     // изменить текст на 'Автомат'  
      else                    // иначе  
        Text := 'Ручной';     // изменить текст на 'Ручной'  
end.
````

````
**(./images/tog_code_1.png) 3. Простой скрипт, если условий несколько**

````
begin  
  case Text1.AsInt of  
    0 : Text1.Text := 'Местн.Пуск';  
    1 : Text1.Text := 'Вынос.Пульт';  
    2 : Text1.Text := 'Автозапуск';  
    3 : Text1.Text := 'Диспетчер';  
    4 : Text1.Text := 'Работает';  
  end;  
end.
````

````
**(./images/tog_code_1.png) 4. Универсальный скрипт, если условий несколько (можно применить к любому объекту  "Текст")**

````
begin  
  if Sender is TM\_Text then   // проверяем, что Sender это текст  
    with Sender as TM\_Text do // приводим Sender к типу "TM\_Text"              
      case AsInt of  
        0 : Text := 'Местн.Пуск';  
        1 : Text := 'Вынос.Пульт';  
        2 : Text := 'Автозапуск';  
        3 : Text := 'Диспетчер';  
        4 : Text := 'Работает';  
      end;  
end.
````

````
**(./images/tog_code_1.png) 5. Универсальный скрипт для вывода значения переменной (можно применить к любому объекту  "Текст")**

**Важно\! Для вывода значения переменной лучше использовать компонент "Поле", т.к. он имеет гораздо больше опций для работы со значением.** Но если по каким-либо причинам требуется отображать значение переменной в компоненте "Текст", то для этого нужно связать его с переменной, создать новый скрипт [с типом события](event-types.md) "Универсальный скрипт"(пример ниже) и назначить его на событие OnDataChange нужных объектов.

````
begin  
  if Sender is TM\_Text then   // проверяем, что Sender это текст  
    with Sender as TM\_Text do // приводим Sender к типу "TM\_Text"  
      Text := AsStr;          // записываем в текст значение основной переменной  
end.
````

---

````
Универсальный скрипт можно применить к любому объекту, для этого требуется:

1. Выделить необходимый объект(или множество объектов) и через инспектор объектов перейти на вкладку "События".

2. В свойстве "OnDataChange" выбрать из списка наш созданный скрипт - он привяжется ко всем выделенным объектам.

3. Не забыть связать объект(объекты) с нужной переменной.

4. В дальнейшем, при необходимости можно копировать однотипные объекты и только менять у них переменную.

Теперь все объекты, у которых в событии "OnDataChange" выбран универсальный скрипт будут работать в соответствии с условиями скрипта.