4D v16.3

Is waiting mouse up

Inicio

 
4D v16.3
Is waiting mouse up

Is waiting mouse up 


 

Is waiting mouse up -> Resultado 
Parámetro Tipo   Descripción
Resultado  Booleano in True si el objeto está esperando por un evento mouse up, de lo contrario False

Tema: Eventos formulario

El comando Is waiting mouse up devuelve True después de que el objeto actual haya hecho clic y el botón del ratón no se ha liberado, y cuando el diálogo aún tiene el foco. Debe llamarse desde el método de objeto del objeto actual.

El comando devuelve False en los siguientes casos:

  • no se llama a partir de un método de objeto
  • o no se disparó el evento On Clicked en el objeto
  • o la caja de diálogo ha perdido el foco.

Este comando debe ser utilizado junto con . Le permite sincronizar el estado interno del objeto de formulario con la aplicación global. Básicamente, permite a su código manejar el caso donde el usuario hizo clic y empezó a mover algo dentro de una imagen objeto de formulario, y esta acción es interrumpida por un evento externo, como un cuadro de diálogo de alerta. En este caso, el estado interno del objeto puede ser suspendido de forma indefinida debido a que se espera un evento mouse up que no ocurrirá. Para abordar este problema, debe proteger el código de movimiento del ratón con un comando Is waiting mouse up lo que le asegura que es ejecutado en un contexto válido.

Ejemplo  

Usted desea que el usuario dibuje líneas en un área SVG. El nombre de la variable de área es vPictSvg:

Los eventos On Mouse Up, On Mouse Move y On Clicked han sido seleccionados para el objeto. El método de objeto contiene el siguiente código:  

 C_LONGINT($val1;$val2)
 C_LONGINT(vLtracking//bandera para el modo tracking
 Case of
    :(Form event=On Clicked)
       If(Not(Contextual click) & Is waiting mouse up//clic izquierdo únicamente
          If((MouseX#-1) & (MouseY#-1)) //estamos en el objeto
             vLtracking:=1 //estamos en modo tracking
             LineRef:=SVG_New_line(svgRef;MouseX;MouseY;MouseX;MouseY;"gray";3) //crear una línea fantasma
             SVG_SET_ID(LineRef;"ghostLine") //dar un id a la línea fantasma
             vPictSvg:=SVG_Export_to_picture(svgRef)
          End if
       End if
    :(Form event=On Mouse Move)
       If(vLtracking=1)
          If(Not(Is waiting mouse up)) //un event canceló el dibujo
             SVG_CLEAR(LineRef) //eliminar la línea fantasma
             vPictSvg:=SVG_Export_to_picture(svgRef) //guardar la línea real
             vLtracking:=0 //detener el modo tracking
          Else //el objeto está esperando por un mouse up
             If((MouseX#-1) & (MouseY#-1))
                SVG SET ATTRIBUTE(vPictSvg;"ghostLine";"x2";MouseX;"y2";MouseY;*)
             End if
          End if
       End if
    :(Form event=On Mouse Up)
       If(MouseX=-1)
          SVG GET ATTRIBUTE(vPictSvg;"ghostLine";"x2";MouseX)
       End if
       If(MouseY=-1)
          SVG GET ATTRIBUTE(vPictSvg;"ghostLine";"y2";MouseY)
       End if
       SVG GET ATTRIBUTE(vPictSvg;"ghostLine";"x1";$val1//obtener las coordenadas fanstamas
       SVG GET ATTRIBUTE(vPictSvg;"ghostLine";"y1";$val2)
       SVG_CLEAR(LineRef) //delete the ghost line
       SVG_New_line(svgRef;$val1;$val2;MouseX;MouseY;"gray";3) //crear la línea actual
       vPictSvg:=SVG_Export_to_picture(svgRef) //guardar la línea actual
       vLtracking:=0
 End case



Ver también 


Evento formulario

 
PROPIEDADES 

Producto: 4D
Tema: Eventos de formulario
Número 1422

 
HISTORIA 

New
Creado por: 4D v16

 
ARTICLE USAGE

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