Since GUI event handlers are handled by a single thread, re-entry protection is only needed if the code inside the event calls waiting functions for other events that recursively call the current handler.
I searched that in this clarity in the docs - in vain. That sentence should be put in the docs.
Thanx
Winni
Meaning no disrespect to anybody, but provided that it's accurate as far as all widget sets etc. are concerned. I remember catching PostMessage() reentering a few months ago, so I'm inclined towards caution.
The highly erratic bug that I've been keeping an eye open for over the last few days- rather than actively hunting- can only be caused (a) by a timer reentering or (b) by a shim invoked by Synchronize() having a similar effect. Both of them call a UDP broadcast at random intervals, into which I've inserted an explicit pacing delay if multiple broadcasts go to different subnets (because an obfuscated timestamp is in the message): and the delay is substantially longer than the timer interval.
A particular smoking gun is that I think I've seen form activity which can only be caused by the timer firing at the same time as an error dialog(ue) is on the screen... I'm not quite sure what to make of that one yet.
MarkMLl