4D v16.3

ST Get expression

Página Inicial

 
4D v16.3
ST Get expression

ST Get expression 


 

ST Get expression ( {* ;} objeto {; inicioSel {; fimSel}} ) -> Resultado 
Parâmetro Tipo   Descrição
Operador in Se especificado, objeto é um nome de objeto (cadeia) Se omitido, objeto é um campo ou uma variável
objeto  Objeto de formulário in Nome de objeto (se * for especificado) ou
Campo ou variável (se * for omitido)
inicioSel  Inteiro longo in Inicio da seleção
fimSel  Inteiro longo in Fim da seleção
Resultado  Texto in Etiqueta da expressão

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.

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.

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=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

Você quer executar um método 4D quando é feito clique em um link de um usuário:

 Case of
    :(Form event=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 

ST INSERT EXPRESSION

 
PROPRIEDADES 

Produto: 4D
Tema: Texto multi estilo
Número 1287

Este comando modifica a variável sistema OK

 
HISTÓRIA 

Criado por: 4D v14

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)