>You mean something like timer? Daniel Gramunt sent me his new class, which allows to Cancel form. However, in my particular case the form is extremely complicated with a very deep hierarchy.
>
>I think, may be in this particular case I disable escape and then re-enable in Destroy. Though it contradicts with my principle of giving the user most flexibility...
No, I meant that if you have access to the source code, you do something like this:
SET ESCAPE OFF
local llInterrupted
do while ...
if (user presses ESCAPE)
llInterrupted = .T.
exit
endif
enddo
if llInterrupted
...
endif
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)