Is waiting mouse up
Is waiting mouse up -> Resultado
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultado | Boolean | ← | TRUE se o objeto estiver esperando por um evento mouse up. De outro modo, false. |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
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
O código abaixo pode ser usado para gerenciar uma propriedade de tracking de mouse em um objeto imagem:
//Método objeto do objeto imagem
var vLtracking : Integer //marque para modo tracking
Case of
:(Form event code=On Clicked)
If(Is waiting mouse up) //o botão mouse ainda não foi liberado
vLtracking:=1 //estamos em modo tracking
//... Escrever aqui o código de inicialização para a propriedade tracking
End if
:(Form event code=On Mouse Move)
If(vLtracking=1) //estamos em modo tracking
If(Not(Is waiting mouse up)) //nunca terá o mouse up
vLtracking:=0 //pare o modo tracking
//... Escrever aqui o código para manejar ou cancelar a ação de tracking do usuário
Else //o objeto ainda espera por um mouse up
//... Escrever aqui o código para tracking
End if
End if
:(Form event code=On Mouse Up) //o botão mouse foi liberado
//... Escrever aqui o código para completar a ação tracking
vLtracking:=0 //fim do modo tracking
End case