ST Get expression
ST Get expression* ( {* ;} objeto {; inicioSel {; fimSel}} ) : Text
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| * | Operador | → | Se especificado, objeto é um nome de objeto (cadeia) Se omitido, objeto é um campo ou uma variável | 
| objeto | any | → | Nome de objeto (se * for especificado) ou Campo ou variável (se * for omitido) | 
| inicioSel | Integer | → | Inicio da seleção | 
| fimSel | Integer | → | Fim da seleção | 
| Resultado | Text | ← | Etiqueta da expressão | 
Descrição
comando ST Get expression devolve a primeira expressão que se encontra na seleção atual do campo ou da variável de texto com estilo designada pelo parâmetro objeto.
O comando devolve a etiqueta da expressão, como foi inserida no objeto (por exemplo, "mymethod" ou "[tabela1]campo1"). Não se devolve o valor atual da expressão.
Nota: este comando devolve nomes "reais" para os campos e as tabelas, mesmo se tiver sido definida uma estrutura "virtual" utilizando os comandos SET TABLE TITLES e SET FIELD TITLES.
Se passar o parâmetro opcional * indica que o parâmetro objeto é um nome de objeto (cadeia). Durante a execução, se o objeto tem o foco, o comando devolve a informação do objeto que se está editando, e se o objeto não tem o foco, o comando devolve a informação da fonte de dados do objeto (variável ou campo).
Se omitir o parâmetro *, indica que o parâmetro objeto é um campo ou uma variável. Neste caso, se passar uma referência de campo ou variável no lugar de uma cadeia. Durante a execução, o comando devolve a informação da variável ou do campo.
Os parâmetros opcionais inicioSel e fimSel designam uma seleção de texto em objeto. Os valores inicioSel e fimSel expressam uma seleção de texto plano, sem ter em conta etiquetas de estilo que podem estar presentes no texto.
- Se passar inicioSel e fimSel, ST Get expression procura a expressão ao interior desta seleção.
- Se passar unicamente inicioSel ou se o valor de fimSel é maior que o número total de caracteres no objeto, o comando busca a expressão entre inicioSel e o final do texto .
- Se omitir inicioSel e fimSel, o comando busca a expressão dentro da seleção de texto atual.
4D oferece constantes pré definidas para que possa designar automaticamente os limites de seleção nos parâmetros inicioSel e fimSel. Estas constantes se encontram no tema "Texto multi estilo":
| Constante | Tipo | Valor | Comentário | 
|---|---|---|---|
| ST End highlight | Inteiro longo | -1001 | Designa o último caractere da seleção atual de texto no objeto (*) | 
| ST End text | Inteiro longo | 0 | Designa o último caractere do texto contido no objeto | 
| ST Start highlight | Inteiro longo | -1000 | Designa o primeiro caractere da seleção atual de texto no objeto (*) | 
| ST Start text | Inteiro longo | 1 | Designa o primeiro caractere do texto contido no objeto | 
(*) Deve passar um nome de objeto em objeto para poder utilizar esta constante. Se passar uma referência a um campo ou variável, o comando se aplica a todo o texto do objeto.
Nota: Se inicioSel é maior que fimSel (exceto quando fimSel é 0) , o comando não faz nada e a variável OK toma o valor 0.
Se não se encontra uma expressão na seleção, o comando devolve uma cadeia vazia.
Exemplo 1
Quando há um evento clique duplo, você comprova que existe uma expressão, e assim é mostrado um diálogo no qual recuperaram seus valores para que o usuário possa modificar eles:
 Case of
    :(FORM Event.code=On Double Clicked)
       GET HIGHLIGHT(*;"StyledText_t";startSel;endSel)
       If(ST Get content type(*;"StyledText_t";startSel;endSel)=ST Expression type)
          vExpression:=ST Get expression(*;"StyledText_t";startSel;endSel)
          $winRef:=Open form window("Dial_InsertExpr";Movable form dialog box;Horizontally centered;Vertically centered;*)
          DIALOG("Dial_InsertExpr")
          If(OK=1)
             ST INSERT EXPRESSION(*;"StyledText_t";vExpression;startSel;endSel)
             HIGHLIGHT TEXT(*;"StyledText_t";startSel;endSel)
          End if
       End if
 End case
Exemplo 2
Você quer executar um método 4D quando é feito clique em um link de um usuário:
 Case of
    :(FORM Event.code=On Clicked)
  //recuperamos a seleção
       HIGHLIGHT TEXT(*;"myText";startSel;endSel)
       If(startSel#endSel) //há conteúdo selecionado
  //obtemos o tipo do conteúdo
          $CT_type:=ST Get content
          Type(*;"myText";startSel;endSel)
          If($CT_type=ST User type) //this is a user link
             MyMethod //executamos um método 4D
          End if
       End if
 End case
Ver também
Propriedades
| Número do comando | 1287 | 
| Thread-seguro | ✗ | 
| Modificar variáveis | OK |