OBJECT SET HELP TIP
OBJECT SET HELP TIP ( {* ;} objeto ; mensajeAyuda )
Parámetro | Tipo | Descripción | |
---|---|---|---|
* | Operador | → | Si se especifica, objeto es un nombre de objeto (cadena)Si se omite, objeto es una variable o un campo |
objeto | any | → | Nombre de objeto (si se especifica *) o Variable (si se omite *) |
mensajeAyuda | Text | → | Contenido del mensaje de ayuda |
Este comando no es hilo seguro, no puede ser utilizado en código apropiativo.
Descripción
El comando OBJECT SET HELP TIP permite definir o modificar dinámicamente el mensaje de ayuda asociado al objeto o los objetos designados por los parámetros objeto y * para el proceso actual.
Si pasa el parámetro opcional *, indica que el parámetro objeto es un nombre de objeto (una cadena). Si no pasa este parámetro, esto indica que el parámetro objeto es una variable. En este caso, se pasa una referencia de variable en lugar de una cadena.
En el parámetro mensajeAyuda, pase una cadena de caracteres para el contenido del mensaje. Si pasa una cadena vacía "", la sugerencia de ayuda se eliminará.
Cuando se ejecuta el formulario, los mensajes aparecen como mensajes de ayuda cuando el cursor se mueve sobre el campo u objeto. El retardo de visualización y la duración máxima de los mensajes de ayuda se pueden controlar utilizando los selectores Tips delay y Tips duration del comando SET DATABASE PARAMETER.
Pase el contenido del mensaje en el parámetro mensajeAyuda. Puede pasar:
- una cadena de caracteres, por ejemplo "Utilice el / como separador",
- una cadena vacía "" para eliminar el mensaje de ayuda,
Cuando el formulario se ejecuta, los mensajes de ayuda aparecen como mensajes de ayuda cuando el cursor pasa sobre el campo u objeto. El retraso de visualización y la duración máxima de los mensajes de ayuda pueden controlarse utilizando Tips delay y los selectores del comando SET DATABASE PARAMETER.
Puede utilizar este comando con un objeto list box para agregar mensajes de ayuda a las filas y celdas del list box. Por ejemplo, un objeto list box puede tener un mensaje de ayuda diferente por fila. En este caso, primero debe determinar la posición del cursor con el comando LISTBOX GET CELL POSITION. Esto se muestra en un ejemplo a continuación.
Cuando aparece un mensaje de ayuda, llamando al comando OBJECT SET HELP TIP se cierra, abre un nuevo mensaje en la ubicación del ratón y reinicia el contador Tips duration, permitiendo el manejo dinámico de las sugerencias.
Notas:
- El contenido del mensaje de ayuda también se puede definir utilizando el editor de formularios (ver Controles y ayuda a la entrada) y el editor de estructura (ver Propiedades de los campos) en modo Diseño.
- Los consejos de ayuda pueden desactivarse globalmente para la aplicación utilizando el selector Tips enabled del comando SET DATABASE PARAMETER.
Ejemplo 1
En este formulario, un mensaje de ayuda se visualiza y cambia dinámicamente cuando el ratón pasa sobre diferentes partes de un botón de imagen:
//Método objeto "myFlag"
var $x;$y;oldX;oldY : Real
var $left;$right;$top;$bottom : Real
var $b : Integer
var $tip : Text
var oldTip : Text
var $doRefresh : Boolean
Case of
:(FORM Event=On Load)
oldTip:=""
SET DATABASE PARAMETER(Tips enabled;1) //Para asegurarse de que los consejos están habilitados
SET DATABASE PARAMETER(Tips delay;0) // Sugerencia mostrada inmediatamente al detener el ratón
SET DATABASE PARAMETER(Tips duration;60*10) // 10 segundos máximo de visualización
:(FORM Event=On Mouse Move)
MOUSE POSITION($x;$y;$b)
OBJECT GET COORDINATES(*;"myFlag";$left;$top;$right;$bottom)
$x:=$x-$left
$y:=$y-$top
Case of //cada parte de la bander es de 76 píxeles
:($x<76)
$tip:="Green color"
:($x<152)
$tip:="White color"
Else
$tip:="Orange color"
End case
$doRefresh:=($tip#oldtip) //true si el mensaje es diferente
If(Not($doRefresh)) //Los mismos contenidos
$doRefresh:=((Abs($x-oldX)>30)|(Abs($y-oldY)>30)) //true si se mueve el cursor
End if
If($doRefresh) //mostrar otro mensaje
OBJECT SET HELP TIP(*;"myFlag";$tip)
oldX:=$x
oldY:=$y
oldTip:=$tip
End if
End case
Ejemplo 2
Usted tiene un list box, "Commands List", que contiene una lista y desea definir un mensaje de ayuda que muestre la descripción de cada elemento de lista. La descripción se encuentra en la tabla [Documentation].
var $mouseX;$mouseY;$mouseZ : Real
var $col;$row : Integer
Case of
:(FORM Event=On Mouse Enter)
SET DATABASE PARAMETER(Tips delay;1) // hace que el mensaje aparezca rápidamente
:(FORM Event=On Mouse Move)
//#1 : encuentra la fila que se ha movido
MOUSE POSITION($mouseX;$mouseY;$mouseZ)
LISTBOX GET CELL POSITION(*;"Commands List";$mouseX;$mouseY;$col;$row)
//#2 : configure el mensaje de ayuda correspondiente
If($row#0)
GOTO SELECTED RECORD([Documentation];$row)
OBJECT SET HELP TIP(*;"Commands List";[Documentation]Description) // La descripción completa se utilizará como "mensaje de ayuda" cuando (si) el ratón deja de moverse.
End if
:(FORM Event=On Mouse Leave)
SET DATABASE PARAMETER(Tips delay;3) // hace que el mensaje aparezca normalmente
End case
El resultado es...