Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Interrompre une procedure.

16 views
Skip to first unread message

Jean Pierre Morin

unread,
Aug 11, 2011, 9:00:08 AM8/11/11
to
Voila, je voudrais appeler une procedure ( qui risque de
durer longtemps) et creer un bouton dans une fenetre
genre tk_messagebox.
Ce bouton doit servir eventuellement � l'utilisateur
� arreter la procedure si elle dure trop longtemps.

Je n'arrive pas a faire cela correctement.
Toute solution ou exemple seraient les bienvenus.

Merci d'avance.
JPM

Yoyo Winstin

unread,
Aug 18, 2011, 3:39:45 AM8/18/11
to


Je proposerais un truc du type :

proc JefaisQuelquesChoses {} {
while {$::pas_stop==1 && $::letraitementnestpasfini>0 } {
for {set i 0} {$i<100} {incr i} {
incr ::letraitementnestpasfini -1
update;# permet de détecter l'appui sur le bouton.
}

}
}

set ::letraitementnestpasfini 100000
set ::pas_stop 1

button .b -text STOP -command {set ::pas_stop 0}
label .l -textvariable ::letraitementnestpasfini
pack .b .l
JefaisQuelquesChoses

Yoyo

Jean Pierre Morin

unread,
Aug 21, 2011, 5:35:18 AM8/21/11
to
On 08/18/2011 09:39 AM, Yoyo Winstin wrote:
> On 11 août, 15:00, Jean Pierre Morin<jeanpierre.mo...@free.fr> wrote:
>> Voila, je voudrais appeler une procedure ( qui risque de
>> durer longtemps) et creer un bouton dans une fenetre
>> genre tk_messagebox.
>> Ce bouton doit servir eventuellement l'utilisateur
>> arreter la procedure si elle dure trop longtemps.
>>
>> Je n'arrive pas a faire cela correctement.
>> Toute solution ou exemple seraient les bienvenus.
>>
>> Merci d'avance.
>> JPM
>
>
> Je proposerais un truc du type :
>
> proc JefaisQuelquesChoses {} {
> while {$::pas_stop==1&& $::letraitementnestpasfini>0 } {

> for {set i 0} {$i<100} {incr i} {
> incr ::letraitementnestpasfini -1
> update;# permet de détecter l'appui sur le bouton.
> }
>
> }
> }
>
> set ::letraitementnestpasfini 100000
> set ::pas_stop 1
>
> button .b -text STOP -command {set ::pas_stop 0}
> label .l -textvariable ::letraitementnestpasfini
> pack .b .l
> JefaisQuelquesChoses
>
> Yoyo
Merci, c'est le "update" que je ne savais pas utiliser.
JPM

Yoyo Winstin

unread,
Aug 22, 2011, 3:24:16 AM8/22/11
to

Je rajoute juste que pour éviter la création d'événements par d'autres
boutons ou menu, on peut créer un "grab" sur la fenêtre qui permet
l'arrêt de la procédure.

0 new messages