No es tan sencillo, porque de esa manera se ejecutaría solamente una vez el código y él quiere que se repita hasta que se deje de presionar el botón del mouse.
Una posible solución es la siguiente:
1. Se le agrega al formulario la propiedad LCONTINUAR
2. Se le agrega al formulario la propiedad NVECES y se la inicializa con el valor 0 (cero)
3. Se agrega un control TIMER al formulario
4. Se pone la propiedad ENABLED del TIMER en .F.
5. En la propiedad INTERVAL del TIMER se pone 1
6. En el evento TIMER() del TIMER se escribe:
ThisForm.Command1.MouseDown()
7. En el evento MOUSEDOWN() del botón Command1 se escribe:
with ThisForm
.Timer1.Enabled = .T.
.lContinuar = iif(.nVeces == 0, .T., .lContinuar)
if .lContinuar
.nVeces = .nVeces + 1
WAIT WINDOW Transform(.nVeces) NOWAIT
endif
endwith
8. En el evento MOUSEUP() del botón Command1 se escribe:
with ThisForm
.Timer1.Enabled = .F.
.lContinuar = .F.
.nVeces = 0
endwith
El efecto de todo el código anterior será mostrar números muy rapidamente, hasta que se suelte (se deje de presionar) el botón del mouse.
Por supuesto que en lugar del comando WAIT WINDOW él puede escribir lo que quiera.
Saludos.
Walter.
"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House