# Modo texto para Scripts

## Sobre o modo Texto

Usando o modo Texto, você pode configurar os mesmos scripts que os scripts do modo Bloco. Qualquer operação suportada pelo software de edição de tela em modo Bloco também é suportada por scripts de modo Texto, tais como operações matemáticas (seno, co-seno, etc.), operações lógicas (&&, ||, etc.) e operações de comparação (==, !=, etc.). Scripts que não estão listados em [Caixa da ferramentas] não são suportados.

### Editor de Scripts

No modo Texto, o editor de script divide o script em seções, com cada seção de script tendo um trigger e uma ou mais operações.

Os triggers, como Toque, Periódico/Cronograma e Condicional, assumem a forma de uma função. Se um trigger requer parâmetros, passe-os como parâmetros de função.

As operações assumem a forma de uma instrução com um ponto e vírgula (;) para finalizar a instrução.

O formato do modo Texto é conforme mostrado no exemplo a seguir.

- 'onClick’ é o manipulador de disparo de um trigger de clique.
- O primeiro parâmetro '$GraphicObject' é a origem do trigger.
- O segundo parâmetro '$Math.max(EXPRESSION1, EXPRESSION2);' é o conjunto de operações que são executadas pelo trigger. As operações são identificadas pela Seta '=>'.

#### Objetos e Variáveis

Adicione uma palavra-chave para identificar um objeto ou variável referenciado. Prefixe a palavra-chave com o símbolo '$'. (Consulte a tabela a seguir.)

Identificador de módulo

Palavra-chave | Descrição | Exemplo
$Alarm | Para acessar uma propriedade de alarme. | $Alarm.AlarmGroup1.Var1_HiHi.Message
$AlarmGroup | Para acessar uma propriedade do grupo de alarme. | $AlarmGroup.AlarmGroup1.CurrentActiveCount
$AllAlarm | Para acessar uma propriedade de todos os alarmes. | $AllAlarm.MaxRecord
$SystemErrorGroup | Para identificar como grupo de erros do sistema. |
$OperationLog | Para acessar uma propriedade de registro de operação. | $OperationLog.ExportData.FolderName
$RecipeControl | Para acessar uma propriedade de controle de receita. | $RecipeControl.RecipeControl1.RecipeID
$Ingredient | Para acessar uma propriedade de ingrediente. | $Ingredient.RecipeFamily1.RecipeGroup1.Ingredient1.Value
$Local | Para acessar uma propriedade de variável local. | $Local.Var1.Value
$GraphicObject | Para acessar uma propriedade de objeto gráfico. | $GraphicObject.NumericDisplay1.CurrentValue
$Screen | Para acessar uma propriedade da tela, ou para acessar uma propriedade de um item em uma tela específica. Use esse identificador para evitar possíveis conflitos de nomeação de tela/conteúdo e objeto. | $Screen.Screen1
$Device | Para acessar uma propriedade de driver ou equipamento. | $Device.Driver1.Equipment1.OnScanMode
$Target | Para acessar uma propriedade de terminal. | $Target.Preferences.ColorSetID
$Math | Para acessar as operações matemáticas. | $Math.abs(-100)
$Enums | Para acessar operações e valores que você pode especificar com scripts, como operações de arquivos e formatos de dados. | $Enums.FileOperation.CopyPaste $Enums.DataFormat.Float

Ao referenciar objetos e variáveis em um script, você pode trabalhar com as propriedades de um objeto ou variável. Por exemplo, 'Var1.Quality', '$GraphicObject.Ellipse1.Thickness'.

Quando você digita o nome de um objeto gráfico, variável, grupo de alarme, grupo de usuários, grupo de registro ou receita em um script, o nome é realçado.

#### Alterando o modo de Script

No editor de scripts, você pode usar o modo [Bloco] ou o modo [Texto]. Não é possível editar scripts nos dois modos ao mesmo tempo.

O padrão é o modo [Bloco].

Para mudar o modo de script, ir para [Projeto] ➞ [Configurações], em seguida na janela [Propriedades] ➞ [Básico] ➞ [Script] ➞ [Modo de script] e selecione [Bloco] ou [Texto].

Observação: Você não pode alterar o modo de Script se algum script for inválido. Entretanto, você pode alterar o modo de Script mesmo que haja um erro de dados.

## Trabalhando com Scripts em modo Texto

### Adicionando funções

Ao trabalhar com scripts no modo texto, a Caixa de ferramentas lista os triggers, operações, lógica e expressões. Clique duplo em um trigger e uma nova seção de script será criada no editor de scripts junto com o código padrão para o trigger selecionado.

Você também pode adicionar funções usando os seguintes métodos.
Você pode adicionar um trigger a partir da barra de ferramentas.

- Para editar um novo script vazio no modo Texto, na barra de ferramentas adicione [Em branco] ou usar o atalho de teclado Ctrl+Shift+N.

- Para criar um script que seja disparado por um objeto em uma tela, abra a tela, selecione o objeto e a janela [Eventos] lista os triggers disponíveis para o objeto. Clique [+] para adicionar o trigger associado em uma nova seção de script.

### Adicionando Origem e Terminal

- No modo Texto, o editor de script está equipado com o Intellisense. Conforme você digita no editor de scripts, as opções de correspondência disponíveis aparecem, seja uma palavra-chave de script, nome de objeto ou nome de função. Selecione o item desejado para inserir a palavra-chave, nome do objeto ou função.
  Após digitar um nome de objeto e um período (.) as propriedades do objeto disponíveis aparecem. Selecione a propriedade desejada para inseri-la no script.

- No modo Texto, você também pode criar variáveis locais e globais em tempo real. Outros objetos não podem ser criados em um script.

1. Quando uma variável indefinida for usada em um script, passe o cursor do mouse sobre a variável.

   Observação: Ao criar uma variável local, prefixe o nome da variável com "$Local".

2. Clique no ícone e no menu pop-up, selecione [Criar variável] ou [Criar variável local].

3. No submenu, selecione o tipo de dado da variável para criar a variável especificada.

### Caixa de ferramentas

- Na Caixa de ferramentas, clique em </> para ver a sintaxe para o script associado.

### Comentários

No modo Texto, você pode adicionar comentários a scripts com barras duplas "//" e pode adicionar comentários de várias linhas entre "/*" e "*/". Você pode adicionar comentários no final de uma instrução ou em sua própria linha.

Observação:

- Ao alterar o [Modo de script] do modo [Bloco] para [Texto], os blocos de comentários são convertidos em comentários "//".

- Ao alterar o [Modo de script] do modo [Texto] para [Bloco]:

- Os comentários "//" e "/*" "*/" no nível do Trigger são convertidos em blocos de comentários.

- Outras instruções "//" ou "/*" "*/" localizados fora do nível do Trigger não são convertidos, pois o modo Bloco suporta blocos de [Comentário] somente em Triggers.

### Localizar e Substituir

- Localizar: Use a tecla de atalho do teclado Ctrl+F para exibir o controle Localizar no canto superior direito do editor de scripts do modo Texto. No campo, digite o texto a ser pesquisado. Clique na seta para baixo ou para cima para localizar a correspondência próxima ou a anterior. Selecione o ícone ou para localizar o caso correspondente ou a palavra inteira correspondente.

- Substituir: Use a tecla de atalho do teclado Ctrl+H para exibir o controle Localizar e Substituir no canto superior direito do editor de scripts do modo Texto. Nos campos, digite o texto a ser pesquisado e o texto de substituição. Clique na seta para baixo ou para cima para localizar a correspondência próxima ou a anterior. Selecione o ícone ou para localizar o caso correspondente ou a palavra inteira correspondente. Clique no ícone Substituir para substituir a correspondência atual. Clique no ícone Substituir todos para substituir todas as instâncias de texto correspondente.

A tabela a seguir lista as teclas de atalho para operações Localizar e Substituir.

Ícone de atalho | Teclas de atalho | Descrição
– | Ctrl+F | Localizar
– | Ctrl+H | Localizar e Substituir
| F3 | Localizar próximo
| Shift+F3 | Localizar anterior
| Alt+R | Substituir
| Alt+A | Substituir todos
| Alt+C | Caso de correspondência
| Alt+W | Coincidir palavra inteira

Você pode alternar entre Localizar e Substituir, digitando as teclas de atalho ou clicando no ícone para cima ou para baixo à esquerda do campo [Localizar].

## Restrições

#### Modo de script

- Você não pode alterar o modo de Script (modo Bloco para modo Texto ou modo Texto para modo Bloco) se qualquer um dos scripts for inválido. Entretanto, um erro de dados não impedirá que você altere o modo de Script.

- Os scripts de modo bloco suportam comentários apenas no bloco Comentário de um bloco de Trigger. Como resultado, no modo Texto, os comentários adicionados a qualquer área do script que não seja o Trigger não são salvos quando alterar o [Modo de script] para modo [Bloco].

#### Nomes

- Se um objeto for excluído ou renomeado no projeto, as referências a esse objeto nos scripts aparecem como um erro indefinido.