Saltar al contenido principal
Versión: 20 R7 BETA

ST Get content type

ST Get content type ( {* ;} object {; inicioSel {; finSel {; inicioBloq {; finBloq}}}} ) -> Resultado

ParámetroTipoDescripción
*OperadorSi se especifica, objeto es un nombre de objeto (cadena)
Si se omite, objeto es un campo o una variable
objectanyNombre del objeto (si se especifica *) o
Campo o variable (si se omite *)
inicioSelIntegerInicio de la selección
finSelIntegerFin de la selección
inicioBloqIntegerInicio de posición del primer tipo de la selección
finBloqIntegerFin de posición del primer tipo de la selección
ResultadoIntegerTipo de contenido

Este comando no es hilo seguro, no puede ser utilizado en código apropiativo.

Descripción

El comando ST Get content type devuelve el tipo de contenido encontrado en el campo o la variable de texto multiestilo designada por el parámetro objeto .

Si pasa el parámetro opcional * indica que el parámetro objeto es un nombre de objeto (cadena). Durante la ejecución, si el objeto tiene el foco, el comando devuelve la información del objeto que se está editando, y si el objeto no tiene el foco, el comando devuelve la información de la fuente de datos del objeto (variable o campo).
Si omite el parámetro *, indica que el parámetro objeto es un campo o una variable. En este caso, se pasa una referencia de campo o variable en lugar de una cadena. Durante la ejecución, el comando devuelve la información de la variable o del campo.

Los parámetros opcionales inicioSel y finSel designan una selección de texto en objeto. Los valores inicioSel y finSel expresan una selección de texto plano, sin tener en cuenta etiquetas de estilo que pueden estar presentes.

  • Si pasa inicioSel y finSel, ST Get content type evalúa el contenido ubicado al interior de esta selección.
  • Si pasa únicamente inicioSel o si el valor de finSel es mayor que el número total de caracteres en el objeto, el contenido ubicado entre inicioSel y el final del texto.
  • Si omite inicioSel y finSel, el contenido dentro ubicado al interior de la selección actual de texto se evalúa. 4D ofrece constantes predefinidas para que pueda designar automáticamente los límites de selección en los parámetros inicioSel y finSel. Estas constantes se encuentran en el tema "Texto multiestilo":
ConstanteTipoValorComentario
ST End highlightEntero largo-1001Designa el último carácter de la selección actual de texto en el objeto (*)
ST End textEntero largo0Designa el último carácter del texto contenido en el objeto
ST Start highlightEntero largo-1000Designa el primer carácter de la selección actual de texto en el objeto (*)
ST Start textEntero largo1Designa el primer carácter del texto contenido en el objeto

(*) Debe pasar un nombre de objeto en objeto para poder utilizar esta constante. Si pasa una referencia a un campo o variable, el comando se aplica a todo el texto del objeto.

Nota: si inicioSel es mayor que finSel (excepto cuando finSel es 0) , el comando no hace nada y la variable OK toma el valor 0.

Los parámetros opcionales inicioBloq y finBloq recuperan la posición del primer y último carácter del primer bloque homogéneo identificado en el objeto o la selección del objeto. Por ejemplo, si la selección contiene una expresión y, a continuación texto plano, inicioBloq y finBloq devolverán los límites de la expresión. Usted puede hacer un bucle para procesar todos los bloques de la selección.

El comando devuelve un valor que designa el tipo de contenido identificado. Puede comparar este valor con las siguientes constantes, que se encuentran en el tema "Texto multiestilo":

ConstanteTipoValorComentario
ST Expression typeEntero largo2La selección contiene sólo una referencia de expresión
ST Mixed typeEntero largo3La selección contiene al menos dos tipos de contenidos diferentes
ST Picture typeEntero largo6La selección contiene sólo una imagen (áreas 4D Write Pro únicamente)
ST Plain typeEntero largo0La selección contiene texto y ninguna referencia
ST Unknown tag typeEntero largo4La selección contiene sólo una etiqueta de tipo desconocido
ST URL typeEntero largo1La selección contiene sólo una referencia de URL
ST User typeEntero largo5La selección contiene sólo una referencia personalizada

Ejemplo

Usted desea mostrar los comandos de un menú contextual basado en el tipo de contenido seleccionado en el área.

 Case of
    :(Form event code=On Clicked)
  //recuperamos la selección
       GET HIGHLIGHT(*;"myText";startSel;endSel)
       If(Contextual click&(Macintosh control down=False)) //llama el menú contextual
          If(startSel=endSel) // sin contenido seleccionado
  //activamos únicamente ciertos comandos
             DISABLE MENU ITEM(<>menu_STYLEDTEXT;2)
             DISABLE MENU ITEM(<>menu_STYLEDTEXT;4)
             ENABLE MENU ITEM(<>menu_STYLEDTEXT;6)
             ...
          Else // obtenemos el tipo de contenido
             CT_Texttype:=ST Get content type(*;"myText";startSel;endSel)
             Case of // procesamiento 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