Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Add en event to the queue instead of processing immediat
Message
From
07/10/2013 11:46:34
 
 
To
07/10/2013 08:36:07
Dragan Nedeljkovich
Now officially retired
Zrenjanin, Serbia
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 8
Network:
Windows 2008 Server
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01584803
Message ID:
01584907
Views:
80
>>I know there are other solutions to this problem, but there have been so many times when I want to have better control over event processing, so my question is how can I programmatically trigger an event to be processed in the event loop instead of immediately?
>
>Among simple tricks is to have an inactive timer which you will activate, have it do what you want after some milliseconds and deactivate again.

Drew Speedie described something he called a "hand_grendade" which did just that.

Here's our code (sorry about the dependencies, but they're easy enough to figure out):
LPARAMETERS tcCommand, tnDelay, toThis, toThisform
LOCAL lcThisVarname, lcThisFormVarname, loTimer

tnDelay = Param_Val(tnDelay,200)
lcScript = tcCommand
lcCRLF = CHR(13)+CHR(10)

IF VARTYPE(toThis) = "O"
	lcThisVarname = "hg_" + SYS(2015)
	RELEASE &lcThisVarname
	PUBLIC &lcThisVarname
	STORE toThis TO (lcThisVarname)
	lcScript = STRTRAN(lcScript,"this.",lcThisVarname + ".",1,-1,1)
	lcScript = lcScript + lcCRLF + "RELEASE " + lcThisVarname
ENDIF

IF VARTYPE(toThisform) = "O"
	lcThisFormVarname = "hg_" + SYS(2015)
	RELEASE &lcThisFormVarname
	PUBLIC &lcThisFormVarname
	STORE toThisform TO (lcThisFormVarname)
	lcScript = STRTRAN(lcScript,"thisform.",lcThisFormVarname + ".",1,-1,1)
	lcScript = lcScript + lcCRLF + "RELEASE " + lcThisFormVarname
ENDIF

lcScript = "lparameters toTimer" + lcCRLF + lcScript

_SCREEN.oapp.addproperty("oHGTimer",NEWOBJECT("timer_adhoc","proctrls.vcx","",lcScript,tnDelay,.T.,.T.,.T.))
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform