Acesso a atributos e funções de Componentes de Tela

Atributos de Componentes de Tela

Através de scripts é possível acessar diversos atributos de componentes de telas. Este acesso pode estar associado à leitura e/ou escrita do valor associado às propriedades. Estes atributos são apresentados nas tabelas seguintes.

Atributos Comuns

São apresentados neste item os atributos que são comuns à grande maioria dos componentes de tela.

Atributos Comuns

Nome da Propriedade

Descrição

Visible

Torna o componente visível ou não.

Enabled

Habilita ou não a interação com o componente.

Top

Distância em pixels do topo do componente ao topo da tela em que está contido.

Left

Distância em pixels da lateral esquerda do componente à lateral esquerda da tela em que está contido.

Width

Largura em pixels do componente.

Height

Altura em pixels do componente.

Arguments

Texto preenchido no IDE na propriedade Argumentos.

Button

Button

Propriedades Específicas

Descrição

Caption

Texto que rotula este componente.

CaptionButtonPress

Texto que rotula este componente quando pressionado.

Display

Display

Propriedades Específicas

Descrição

DisplayedValue

Texto associado ao valor corrente formatado do campo, ou seja, retorna o valor do campo com a respectiva formatação associada ao mesmo. Este atributo é somente para leitura

Format

Compativel HIScada Pro versão >= 1.2.08. Formatação do texto para apresentação do valor do Tag.

Color

Compativel HIScada Pro versão >= 1.2.08. Cor de Fundo do Display.

Font.Color

Compativel HIScada Pro versão >= 1.2.08. Cor da Fonte apresentada pelo Display.

Edit

Edit

Propriedades Específicas

Descrição

Value

Texto associado apenas ao valor corrente do campo, sem a formatação. Este atributo pode ser lido ou escrito.

DisplayedValue

Texto associado ao valor corrente formatado do campo, ou seja, retorna o valor do campo com a respectiva formatação associada ao mesmo. Este atributo é somente para leitura.

UpdatePending

Quando a propriedade “Modo de Edição” estiver configurada para “via script”, a propriedade UpdatePending (booleano) indica se o valor do campo foi alterado significando que a atualização no respectivo Tag está pendente.

SaveEdit

Quando a propriedade “Modo de Edição” estiver configurada para “via script”, atribuir 1 grava os dados do Edit no Tag somente se houver alteração, atribuir 2 sempre grava os dados do Edit no Tag associado.

CancelEdit

Quando a propriedade “Modo de Edição” estiver configurada para “via script”, atribuir 1 cancela a edição somente se houver alteração, atribuir 2 sempre cancela a edição.

Format

Compativel HIScada Pro versão >= 1.2.08. Formatação do texto para apresentação do valor do Tag.

Exemplo de uso do Edit

-- campo "Edit" com o seguinte formato = "Temperatura ###0 graus"

-- Obtém os atributos de um "Edit"
print("    edit value: " .. Sender.Screen.Edit_001.Value)
print("edit displayed: " .. Sender.Screen.Edit_001.DisplayedValue)

-- Altera o valor de um "Edit"
Sender.Screen.Edit_001.Value = "321"

-- Forma alternativa de obter acesso ao atributo Edit_001 da tela
local edit1 = Sender.Screen["Edit_001"]
edit1.Value = "123"

Exemplo de execução:

edit value: 75
edit displayed: Temperatura 75 graus

edit value: 321
edit displayed: Temperatura 321 graus

ComboBox

ComboBox

Propriedades Específicas

Descrição

Text

Texto selecionado no combo

ItemIndex

Valor inteiro que indica a posição que está selecionada no componente. A primeira posição tem índice 0. O índice -1 significa que não há nenhuma seleção. Esta propriedade pode ser lida ou escrita. No caso de escrita da propriedade ItemIndex, fica a ressalva de que o Tag associado ao controle não será alterado (como ocorre quando a seleção é feita manualmente pelo usuário ao invés de usar esta API.) {HIScada Pro>=0.3.04}

RefreshNow

Atribuir 1 a esta propriedade para atualizar a lista interna com o conteúdo da lista de texto global associada a este componente.

UpdatePending

“via script”, a propriedade UpdatePending (booleano) indica se o valor do campo foi alterado significando que a atualização no respectivo Tag está pendente.

SaveEdit

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, atribuir 1 grava os dados do Edit no Tag somente se houver alteração, atribuir 2 sempre grava os dados do Edit no Tag associado.

CancelEdit

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, atribuir 1 cancela a edição somente se houver alteração, atribuir 2 sempre cancela a edição.

CheckBox

Checkbox

Propriedades Específicas

Descrição

Checked

Booleano (true,false) que indica se o campo está marcado ou não.

UpdatePending

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, a propriedade !UpdatePending (booleano) indica se o valor do campo foi alterado significando que a atualização no respectivo Tag está pendente.

SaveEdit

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, atribuir 1 grava os dados do Edit no Tag somente se houver alteração, atribuir 2 sempre grava os dados do Edit no Tag associado.

CancelEdit

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, atribuir 1 cancela a edição somente se houver alteração, atribuir 2 sempre cancela a edição.

ListBox

ListBox

Propriedades Específicas

Descrição

DisplayedValue

Texto associado ao elemento da lista correntemente selecionado. Este atributo é somente para leitura. {HIscada Pro>=0.4.05}

ItemIndex

Valor inteiro que indica a posição que está selecionada no componente. A primeira posição tem índice 0. O índice -1 significa que não há nenhuma seleção. Esta propriedade pode ser lida ou escrita. No caso de escrita da propriedade !ItemIndex, fica a ressalva de que o Tag associado ao controle não será alterado (como ocorre quando a seleção é feita manualmente pelo usuário ao invés de usar esta API.) {HIscada Pro>=0.4.05}

RefreshNow

Atribuir 1 a esta propriedade para atualizar a lista interna com o conteúdo da lista de texto global associada a este componente.

UpdatePending

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, a propriedade UpdatePending (booleano) indica se o valor do campo foi alterado significando que a atualização no respectivo Tag está pendente.

SaveEdit

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, atribuir 1 grava os dados do Edit no Tag somente se houver alteração, atribuir 2 sempre grava os dados do Edit no Tag associado.

CancelEdit

Quando a propriedade “Mode de Edição” estiver configurada para “via script”, atribuir 1 cancela a edição somente se houver alteração, atribuir 2 sempre cancela a edição.

Exemplo de uso do ListBox

local scr = Screens.Get("Screen_001")

-- Mostra qual a linha da lista que está correntemente selecionada
print(scr.ListBox_001.ItemIndex)

-- A cada 2s seleciona um novo item em uma lista de 3 elementos
for i=0,2 do
  scr.ListBox_001.ItemIndex = i
  Sleep(2000)
end

ImageList

Edit

Propriedades Específicas

Descrição

TimeInterval

Especifica o intervalo de tempo em milissegundos utilizado pelo objeto para alterar as imagens ativas. O valor mínimo para este parâmetro é de 20 milissegundos. Quando especificado o valor “zero” para este parametro, o objeto para de atualizar as imagens, mantendo na tela a última imagem selecionada. Este atributo pode ser lido ou escrito.

Exemplo de uso:

-- Obtem a tela corrente
local screen = Sender.Screen

-- Imprime o valor corrente do atributo
print('Valor atual= ' .. tostring(screen.ImageList_001.TimeInterval))

-- Define um novo intervalo de alteração das imagens de 250 milissegundos
screen.ImageList_001.TimeInterval = 250

TextEditor

TextEditor

Propriedades Específicas

Descrição

Text

Esta propriedade permite o acesso ao texto do respectivo objeto.

Opções
  • Atribuição de texto - Permite atribuir o texto a ser apresentado no objeto

  • Leitura de texto - Permite obter o texto corrente apresentado no objeto

Changed

Esta propriedade permite o acesso ao status de existência de alteração no texto do respectivo objeto.

Opções
  • Leitura de status de alteração - Permite obter o status de existência de alteração no texto apresentado no objeto.

  • Atribuição do status de alteração - Permite alterar o novo status de existência de alteração no texto. Por exemplo, após a execução de um script que realiza o salvamento do texto corrente pode-se resetar este respectivo status de texto alterado.

Length

Esta propriedade disponibiliza a quantidade de caracteres do texto corrente. Cabe ressaltar que esta quantidade pode incluir caracteres de controle inseridos no texto, como por exemplo (carriage return), (line feed), (fim de arquivo), etc.

Memo

Memo

Propriedades Específicas

Descrição

Text

Esta propriedade permite o acesso ao texto do respectivo objeto.

Opções
  • Atribuição de texto - Permite atribuir o texto a ser apresentado no objeto

  • Leitura de texto - Permite obter o texto corrente apresentado no objeto

Changed

Esta propriedade permite o acesso ao status de existência de alteração no texto do respectivo objeto.

Opções
  • Leitura de status de alteração - Permite obter o status de existência de alteração no texto apresentado no objeto.

  • Atribuição do status de alteração - Permite alterar o novo status de existência de alteração no texto. Por exemplo, após a execução de um script que realiza o salvamento do texto corrente pode-se resetar este respectivo status de texto alterado.

Length

Esta propriedade disponibiliza a quantidade de caracteres do texto corrente. Cabe ressaltar que esta quantidade pode incluir caracteres de controle inseridos no texto, como por exemplo (carriage return), (line feed), (fim de arquivo), etc.

Exemplo de uso do TextEditor e do Memo:

local txt

-- Obtem tela atual
local scr = Sender.Screen

-- Copia o texto de um Memo para um TextEditor
txt = scr.Memo1.Text
scr.TextEditor1.Text = txt

-- Copia o texto de um TextEditor para um Memo
txt = scr.TextEditor1.Text
scr.Memo1.Text = txt

-- Obtem a quantidade de caracteres no texto corrente de um TextEditor
local len = scr.TextEditor1.Length

StaticText

StaticText

Propriedades Específicas

Descrição

Caption

Texto apresentado no componente. Este valor pode ser lido ou escrito.

Font.Color N

Cor da fonte do StaticText

Exemplo de uso:

local scr = Screens.Get("Screen_001")
print(scr.StaticText_001.Caption)
scr.StaticText_001.Caption = "Alterado"

obs

A propriedade Font.Color de um StaticText só pode ser alterada se a propriedade Transparent estiver False.Quando Transparent estiver True, Font.Color estará fixa para o tema corrente do Windows.

Screen

Screen

Propriedades Específicas

Descrição

Title

Título da janela definido no IDE.

Type

Texto que descreve o tipo da janela.

Instances

Tabela LUA cujas chaves são referências para instâncias e os valores são objetos (Tabelas LUA) do tipo Instance.

SaveAllEdit

Efetiva escrita de valores nos componentes da tela que tiveram valor de escrita modificado.

CancelAllEdit

Cancela escrita de valores nos componentes da tela que tiveram valor de escrita modificado.

Caption

Mesmo que o nome da janela. (propriedade Name)

Nota

Apesar de ser uma propriedade comum, Enable não está disponível nos objetos Screen via interface. Para acionar a propriedade, caso necessário, faça via script.

Plot

Plot

Propriedades Específicas

Descrição

DoRefresh

A atribuição de qualquer valor força o refresh.

Style

Através desta propriedade pode-se selecionar um estilo para apresentação no gráfico. Os estilos disponíveis para seleção correspondem aos estilos criados no item “PlotStyles” associado a este componente “Plot”.

Plot

Funções Específicas

Descrição

GetAxis

Recebe como parâmetro o nome do objeto e retorna objeto do tipo Axis.

Exemplo de uso do Plot:

-- Obtem tela atual
local scr = Sender.Screen

local eixo_x = scr.Plot_001:GetAxis('x')
local eixo_y = scr.Plot_001:GetAxis('y')

eixo_x:Clear()
eixo_y:Clear()

for i = 1, 10 do
  eixo_x.AddData(i)
  eixo_y.AddData(i*2)
end

-- Navega na estrutura de componentes e força refresh no objeto Plot de nome Plot_001
-- A atribuição de qualquer valor força o refresh.
scr.Plot_001.DoRefresh = 1

Exemplo de utilização da propriedade “Style” de um Plot:

-- obtem o nome do estilo a ser atribuído ao gráfico
local txt_style = "PlotStyle_GOOD"

-- obtem acesso à tela onde esta o plot a ser atribuído o novo estilo
local scr = Screens.Get("Screen_Plot")

-- obtem o componente "Plot" desta tela
local plot_style = scr.Plot_001.Style

-- atribui o novo estilo ao componente plot
scr.Plot_001.Style = txt_style

Grid

Grid

Propriedades Específicas

Descrição

ColCount

número de colunas do Grid.

RowCount

número de linhas do Grid.

Grid

Funções Específicas

Descrição

GetCellText(linha,coluna)

Recebe como parâmetro linha e coluna e retorna o texto da célula.

GetCellTag(linha,coluna)

Recebe como parâmetro linha e coluna e retorna o Tag associado à célula.

obs

Observação

Os parâmetros linha e coluna utilizados nas funções GetCellText e GetCellTag iniciam-se em zero. Por exemplo, para acessar o texto da célula da terceira linha e segunda coluna a chamada será GetCellText(2,1).

As células presentes na primeira linha retornarão ‘nil’ na função GetCellTag se o título das colunas estiver habilitado.

Exemplo de uso do Grid:

--este exemplo considera a existência de um grid de nome Grid_001 na tela (Sender) contendo no mínimo 3 linhas (além da linha de título) e 3 colunas

-- Obtem tela atual
local scr = Sender.Screen
--imprime valor em forma de texto de todas as células
for Row = 1, 3 do
        for Col = 0, 2 do
                print("Texto da Célula: (" .. Row .. "," .. Col .. ")" .. scr.Grid_001:GetCellText(Row,Col))
                local tag = scr.Grid_001:GetCellTag(Row,Col)
                print("Nome do Tag: " .. tag.Name)
        end
end

Shape

Shape

Propriedades Específicas

Descrição

Shape

Através desta propriedade pode-se selecionar uma forma da figura geométrica para apresentação. Parâmetro Somente Leitura

Pen

Pen

Propriedades Específicas

Descrição

Pen.Style

Através desta propriedade pode-se selecionar um estilo de borda para apresentação. Parâmetro Somente Leitura

Pen.Color

Através desta propriedade pode-se selecionar a cor da borda para apresentação.

Pen.Size

Através desta propriedade pode-se selecionar o espessura da borda para apresentação.

Brush

Brush

Propriedades Específicas

Descrição

Brush.Style

Através desta propriedade pode-se selecionar um estilo de preenchimento para apresentação. Parâmetro Somente Leitura

Brush.Color

Através desta propriedade pode-se selecionar a cor de preenchimento para apresentação.

Exemplo de uso do Shape:

-- Obtem tela atual
local scr = Screens.Get('Screen_001')

local pen_color = scr.Shape_001.Pen.Color
local pen_width = scr.Shape_001.Pen.Width

local brush_color = scr.Shape_001.Brush.Color

scr.Shape_001.Pen.Color = 0xff0000 -- Azul
scr.Shape_001.Pen.Width = 10

scr.Shape_001.Brush.Color = 0xff0000 -- Azul

Trend

Exemplo de uso do Trend:

-- Obtem tela atual
local scr = Screens.Get('Screen_001')

-- Obtem o nome da tela
local name = scr.Trend_001.Name

-- Obtem distância do topo e esqueda
local top = scr.Trend_001.Top
local left = scr.Trend_001.Left

-- Desloca o topo e esquerda em +10
scr.Trend_001.Top = top+10
scr.Trend_001.Left = left+10

Preview

Plot

Funções Específicas

Descrição

ShowReport

Atualiza relatório associado ao preview.

Exemplo de uso do Preview:

-- Obtem tela atual
local scr = Screens.Get('Screen_001')

-- Obtem o nome da tela
local name = scr.Preview_001.Name

-- Obtem distância to topo e esqueda
local top = scr.Preview_001.Top
local left = scr.Preview_001.Left

-- Desloca o topo e esquerda em +10
scr.Preview_001.Top = top+10
scr.Preview_001.Left = left+10

-- Mostra o dados do relatório no preview
scr.Preview_001:ShowReport()

Alarms

Grid

Funções Específicas

Descrição

Ack

Reconhece o alarme selecionado no grid de alarmes

AckAll

Reconhece todos alarmes ativos

Silence

Silencia o som do alarme selecionado

Reset

Reseta o alarme selecionado no grid de alarmes

Suppress

Suprime o alarme selecionado no grid de alarmes

UnSuppress

Remove a supressão de todos os alarmes

Exemplo de uso do Alarms:

Ack

-- Obtem tela atual
local scr = Sender.Screen

-- Reconhece o alarme selecionado
local ret = scr.Alarms_001:Ack()

AckAll

-- Obtem tela atual
local scr = Sender.Screen

-- Reconhece todos os alarmes
local ret = scr.Alarms_001:AckAll()

Silence

-- Obtem tela atual
local scr = Sender.Screen

--Silencia o som do alarme selecionado
local ret = scr.Alarms_001:Silence()

Reset

-- Obtem tela atual
local scr = Sender.Screen

-- Reseta o alarme selecionado
local ret = scr.Alarms_001:Reset()

Suppress

-- Obtem tela atual
local scr = Sender.Screen

--Suprime o alarme selecionado
local ret = scr.Alarms_001:Suppress()

UnSuppress

-- Obtem tela atual
local scr = Sender.Screen

--Remove a supressão de todos os alarmes
local ret = scr.Alarms_001:UnSuppress()