| 4D v16.3Is waiting mouse up | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v16.3
 Is waiting mouse up 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Is waiting mouse up -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| Resultado | Booleano |   | TRUE se o objeto estiver esperando por um evento mouse up. De outro modo, false. | |||||
Tema: Eventos formulário
O comando Is waiting mouse up devolve True depois de que o objeto atual tenha sido clicado e o botão do mouse não tenha sido liberado, e quando o diálogo ainda tem o foco. Deve ser chamado desde o método de objeto do objeto atual.
O comando devolve False nos seguintes casos:
Este comando deve ser utilizado junto com . Lhe permite sincronizar o estado interno do objeto de formulário com a aplicação global. Basicamente, permite a seu código manejar o caso onde o usuario clicou e começou a mover algo dentro de uma imagem objeto de formulário, e esta ação é interrompida por um evento externo, como um quadro de diálogo de alerta. Neste caso, o estado interno do objeto pode ser suspenso de forma indefinida devido a que se espera um evento mouse up que não ocorrerá. Para abordar este problema, deve proteger o código de movimento do mouse com um comando Is waiting mouse up o que assegura que seja executado em um contexto válido.
Se quiser que o usuário desenhe linhas em uma área SVG. O nome da variável de área é vPictSvg:

Os eventos On Mouse Up, On Mouse Move e On Clicked foram selecionados para o objeto. O método de objeto contém o código abaixo:
 C_LONGINT($val1;$val2)
 C_LONGINT(vLtracking) //bandeira para o modo tracking
 Case of
    :(Form event=On Clicked)
       If(Not(Contextual click) & Is waiting mouse up) //clique  esquerdo unicamente
          If((MouseX#-1) & (MouseY#-1)) //estamos no objeto
             vLtracking:=1 //estamos em modo tracking
             LineRef:=SVG_New_line(svgRef;MouseX;MouseY;MouseX;MouseY;"gray";3) //criar uma linha fantasma
             SVG_SET_ID(LineRef;"ghostLine") //dar uma id à linha 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)) //um event cancelou o desenho
             SVG_CLEAR(LineRef) //eliminar a linha fantasma
             vPictSvg:=SVG_Export_to_picture(svgRef) //salvar a linha real
             vLtracking:=0 //deter o modo tracking
          Else //o objeto está esperando por um 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) //obter as coordenadas fantasmas
       SVG GET ATTRIBUTE(vPictSvg;"ghostLine";"y1";$val2)
       SVG_CLEAR(LineRef) //apagar a linha fantasma
       SVG_New_line(svgRef;$val1;$val2;MouseX;MouseY;"gray";3) //criar a linha atual
       vPictSvg:=SVG_Export_to_picture(svgRef) //salvar a linha atual
       vLtracking:=0
 End case
	Produto: 4D
	Tema: Eventos de formulário
	Número 
        1422
        
        
        
	

	Criado por: 4D v16
	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)
	
 Adicionar um comentário
Adicionar um comentário