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)