Reiterare una procedura quando il tasto del mouse viene tenuto premuto su un Controllo

Da Gambas-it.org - Wikipedia.

Mostriamo un semplice codice, con il quale reiterare una procedura usando il Timer, quando il tasto del mouse viene tenuto premuto su un Controllo, in questo caso su un Button.

Private i As Integer


Public Sub Button1_MouseDown()

 If Not Timer1.Enabled Then Timer1.Start

End

Public Sub Button1_MouseUp()

 Timer1.Stop

End

Public Sub Timer1_Timer()

 Inc i
 Print i

End

In quest'altro esempio, se si premerà sulla metà a destra del Button, ci sarà un incremento della variabile globale "i"; se si premerà invece sulla metà sinistra, ci sarà un decremento di detta variabile:

Private i As Integer
Private x As Short


Public Sub Button1_MouseDown()

 If Not Timer1.Enabled Then Timer1.Start

 x = Mouse.X

End

Public Sub Button1_MouseUp()

 Timer1.Stop

End

Public Sub Timer1_Timer()

 If x > Button1.W / 2 Then 
   Inc i
 Else 
   Dec i
 Endif

 Me.Title = Cstr(i) 

End