Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to exit from a scan when i am in a Timer object?
Message
De
05/02/2002 06:55:46
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivie
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00615273
Message ID:
00615330
Vues:
15
>Hi!
>
>Put in the loop the DOEVENTS command. This will force firing of all events, include button clicks and ON KEY commands. ON KEY commands will interrupt the program without DOEVENTS only if _VFP.AutoYield = .T., that is why you get it work not always. Though I recommend to show a "Cancel" button on the form during the process and use DOEVENTS in the loop, so user can press on the Cancel button to interrupt the long process.

Vlad, I find it great that you are back on the forum.

This is great information for me: I didn't know it was at all possible to react to button clicks (for Cancelling) while doing a long operation. I just tried it, and it worked great. Previously, I used inkey(), and told users to use a certain key if they wanted to interrupt the process.

However, I did notice in my tests that DoEvents takes quite a while. Therefore, for tight loops, it might be useful to do something like this (supposing you process records):
if recno() % 100 = 0
  DoEvents
endif
Hilmar.
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)
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform