Comment arrêter un script Main quand on veut le relancer pendant son cycle!

Bonjour,
J’ai un bouton Automatique qui lance un programme Main.

Si je reclique sur ce bouton en cours du script, étonnamment, il ne fait pas un nouveau cycle, mais termine le cycle précédent…

Pour régler ce pb, j’ai :slight_smile:

  • Sur la pression du bouton de la souris, arrêter le script avec une routine “Stop”
  • Sur la levée du bouton de la souris, lancer le script Main !

Je ne trouve pas cela élégant !

Mais existe-t-il une autre solution !

Merci de votre temps, José

Bonjour,
Avec le fichier en question, et/ou le descriptif de ce qui est attendu, on verrait mieux de quoi il s’agit…
Cordialement,
JM

1 Like

Bonjour,

Je viens de mettre le fichier de la version 0.2 sur GitLab.

Fichier .bas et le fichier .ods :slight_smile:

merci d’avance de vos remarques

Amicalement, José

Bonsoir,
Le comportement semble être logique. La Documentation LibreOffice dit bien arrêt et pas fin…
Une solution serait de tester une variable booléenne globale dans chaque tour de boucle, et ordonner un Exit Sub si elle devient fausse.
La procédure Stop met la valeur à false, et relance la boucle.
Je vais essayer de faire un exemple.
A plus
[Ajout :; chez moi, le bouton Automatique relance bien le programme au début !
Je suis avec LO 7.2.7 Windows 19)…]
Mon exemple :
Progression-Stop.ods (11,9 Ko)

1 Like

Bonjour, merci du retour.

De ce que je vois, il y a le même problème.

  1. Click sur Démarrer, lancement de la barre.
  2. Nouveau click avant la fin du cycle : arrêt ET relance du cycle rapide jusqu’à la fin.

Exemple, je (re)clique sur Démarrer à 16… Arrêt, disparition du Dialog, Réapparition à partir de 17 et jusqu’au bout sans la tempo (en une ou deux secondes :slight_smile: ?!

C’est bien cela le problème. Et en plus, il ne tient plus compte de la tempo :slight_smile:

Est-ce un comportement de ma configuration ? Si vous n’avez pas ce problème.

Mon LibreOffice :

Version: 7.3.4.2 / LibreOffice Community
Build ID: 30(Build:2)
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: fr-FR (en_GB.UTF-8); UI: en-US
Ubuntu package version: 1:7.3.4~rc2-0ubuntu0.20.04.1~lo1
Calc: threaded

Je suis sur Ubuntu 20.04.4 PC Dell i5.

Merci du partage.

Amicalement, José

Bonjour,
Quel bureau Ubuntu ?
Je soupçonne encore un problème avec gtk3…
A plus,
JM

J’ai Gnome 3.36.8

Sinon,
Pour visualiser le phénomène, j’ai tracé la variable i dans des colonnes à droite
Progression-Stop_var-i-Tracé.ods (12.7 KB)

Cette variable fait un parcours en trois étapes lorsque l’on (re)clique sur Démarrer avant la fin du cycle :slight_smile:

  1. Premier Click. Compte jusqu’au moment du second click
  2. Second Click. Termine son comptage rapide sans l’affichage puis affichage du msgbox OK
  3. Click sur OK, reprend l’affichage au second click et le termine sans tempo ! (d’où la seconde colonne)

Intéressant, vous n’avez donc pas ce problème ?!
C’est surprenant.

Avec Arrêt ou après la fin du cycle, pas de problème.

Amicalement, José

Sur mon programme Progression-Stop
Au second clic sur démarrer, j’ai la boîte de message “Terminé” et arrêt de la barre de progression.
Au clic suivant, redémarrage et affichage “Terminé”

Avec tes modifs, même comportement. J’ai effacé les colonnes, il n’y a toujours qu’une seule colonne remplie !
Au second clic sur Démarrer, affichage “Terminé”, colonne remplie en entier (avec un léger temps d’attente au moment du stop=, mais barre de progression stoppée. A la reprise, pas de changement visible.
Même comportement avec Ubuntu 22.04 XFCE.
Idem avec Libo 7.3.5 sur le même Ubuntu
Idem avec KDE !!!
Il semblerait que la barre de progression et l’écriture dans les cellules sont dans des processus différents et non synchronisés…
Amicalement, JM

Cela viendrait d’un paramétrage de BASIC chez moi ?

J’ai installé un programme qui s’appelle CoolProp (thermodynamique). Avec des wrappers Python.

Merci de votre temps.

Amicalement, José