Saltar para o conteúdo principal
Versão: 20 R7 BETA

ST Get content type

ST Get content type ( {* ;} objeto {; inicioSel {; fimSel {; inicioBloq {; fimBloq}}}} ) -> Resultado

ParâmetroTipoDescrição
*OperadorSe especificado, objeto é um nome de objeto (cadeia) Se omitido, objeto é um campo ou uma variável
objetoanyNome de objeto (se * for especificado) ou
Campo ou variável (se * for omitido)
inicioSelIntegerInicio da seleção
fimSelIntegerFim da seleção
inicioBloqIntegerInicio de posição do primeiro tipo da seleção
fimBloqIntegerFim de posição do primeiro tipo da seleção
ResultadoIntegerTipo de conteúdo

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

O comando ST Get content type devolve o tipo de conteúdo encontrado no campo ou a variável de texto multi estilo designada pelo parâmetro objeto .

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.

  • Se passar inicioSel e fimSel, ST Get content type avalia o conteúdo localizado 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 conteúdo localizado entre inicioSel e o final do texto.
  • Se omitir inicioSel e fimSel, o conteúdo dentro localizado ao interior da seleção atual de texto se avalia. 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":
ConstanteTipoValorComentário
ST End highlightInteiro longo-1001Designa o último caractere da seleção atual de texto no objeto (*)
ST End textInteiro longo0Designa o último caractere do texto contido no objeto
ST Start highlightInteiro longo-1000Designa o primeiro caractere da seleção atual de texto no objeto (*)
ST Start textInteiro longo1Designa 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.

Os parâmetros opcionais inicioBloq e fimBloq recuperam a posição do primeiro e último caractere do primeiro bloqueio homogêneo identificado no objeto ou a seleção do objeto. Por exemplo, se a seleção contém uma expressão e a continuação texto plano, inicioBloq e fimBloq devolverão os limites da expressão. Você pode fazer um bucle para processar todos os bloqueios da seleção.

O comando devolve um valor que designa o tipo de conteúdo identificado. Pode comparar este valor com as seguintes constantes, que se encontram no tema "Texto multi estilo":

ConstanteTipoValorComentário
ST Expression typeInteiro longo2A seleção contém só uma referência de expressão
ST Mixed typeInteiro longo3A seleção contém pelo menos dois tipos de conteúdos diferentes
ST Picture typeInteiro longo6A seleção contém só uma imagem (áreas 4D Write Pro unicamente)
ST Plain typeInteiro longo0A seleção contém texto e nenhuma referência
ST Unknown tag typeInteiro longo4A seleção contém só uma etiqueta de tipo desconhecido
ST URL typeInteiro longo1A seleção contém só uma referência de URL
ST User typeInteiro longo5A seleção contém apenas uma referência personalizada

Exemplo

Você deseja mostrar os comandos de um menu contextual baseado no tipo de conteúdo selecionado na área.

 Case of
    :(Form event code=On Clicked)
  //recuperamos a seleção
       GET HIGHLIGHT(*;"myText";startSel;endSel)
       If(Contextual click&(Macintosh control down=False)) //chama o menu contextual
          If(startSel=endSel) // sem conteúdo selecionado
  //ativamos unicamente certos comandos
             DISABLE MENU ITEM(<>menu_STYLEDTEXT;2)
             DISABLE MENU ITEM(<>menu_STYLEDTEXT;4)
             ENABLE MENU ITEM(<>menu_STYLEDTEXT;6)
             ...
          Else // obtemos o tipo de conteúdo
             CT_Texttype:=ST Get content type(*;"myText";startSel;endSel)
             Case of // processamento de tipos diferentes
                :(CT_Texttype=ST URL type)
                   DISABLE MENU ITEM(<>menu_STYLEDTEXT;6)
                   ENABLE MENU ITEM(<>menu_STYLEDTEXT;7)
                   ...
                :(CT_Texttype=ST Expression type)
                   DISABLE MENU ITEM(<>menu_STYLEDTEXT;6)
                   DISABLE MENU ITEM(<>menu_STYLEDTEXT;7)
                   ...
                Else
                   ENABLE MENU ITEM(<>menu_STYLEDTEXT;6)
                   DISABLE MENU ITEM(<>menu_STYLEDTEXT;7)
                   ...
             End case
          End if
          MOUSE POSITION($xCoord;$yCoord;$ButtonState)
          $AlphaVar:=Dynamic pop up menu(<>menu_STYLEDTEXT;"";$xCoord;$yCoord)
          startSel:=-3
          endSel:=-3
       End if
       ...
    End if