PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 24 → Champs d'une fenêtre à actualiser depuis une procédure automatique
Champs d'une fenêtre à actualiser depuis une procédure automatique
Débuté par François SCHAAL, 30 aoû. 2018 14:43 - 2 réponses
Membre enregistré
1 365 messages
Popularité : +9 (11 votes)
Posté le 30 août 2018 - 14:43
Bonjour,

Les procédures automatiques remplacent les fonctions timers, timersys .. threadexecute.
Il peut aussi y avoir des procédures callback dans certains traitements;
Certaines procédures sont locales ou globales, elles se répètent ou pas, démarrent de suite ou avec un différé...
Sont de type timer, thread, thread principal, exécution en arrière plan

Comment actualiser l'affichage dans une fenêtre de variables issues de ces procédures sans risquer d'erreurs JAVA?

Quelle est la méthodologie à conseiller ?
Comment s'assurer que la fenêtre est active avant d'actualiser un de ses champs ?

par exemple si j'utilise dans une procédure globale de type thread, exécution infinie, le code suivant:
SI FenEtat(nomdemafenêtreprincipale) = Actif ALORS
...
fin

j'obtiens l'erreur JAVA :
Message=L'opération '=' est interdite entre un élément de type fenêtre et un élément de type chaîne.

Merci

--
Cordialement
François
Posté le 30 août 2018 - 15:43
La première régle c'est déjà de ne jamais accéder à l'IHM depuis un thread, une tache parallèle ou une tache en arrière plan.
Il faut dans ce cas passer par la fonction ExecuteThreadPrincipal.
Membre enregistré
1 365 messages
Popularité : +9 (11 votes)
Posté le 31 août 2018 - 09:48
Bonjour wddev

Merci pour ton conseil :merci:

Très concluant pour les premiers essais.
ExecuteThreadPrincipal appelle une fonction globale sans automatisme (non définie comme thread principal)
J'avais mis une ligne dans cette procédure DemandeMiseAJourIHM() mais je l'ai ensuite supprimée car une image n'était pas rendue non visible.

--
Cordialement
François