4D v16.3

Is waiting mouse up

Página Inicial

 
4D v16.3
Is waiting mouse up

Is waiting mouse up 


 

Is waiting mouse up -> Resultado 
Parâmetro Tipo   Descrição
Resultado  Booleano in 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:

  • não se chama a partir de um método de objeto
  • ou não foi disparado o evento On Clicked no objeto
  • ou a caixa de diálogo perdeu o foco.

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.

Exemplo  

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



Ver também 


Form event

 
PROPRIEDADES 

Produto: 4D
Tema: Eventos de formulário
Número 1422

 
HISTÓRIA 

New
Criado por: 4D v16

 
ARTICLE USAGE

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)