PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → affichageactif
affichageactif
Débuté par DENIS, 24 avr. 2014 15:12 - 3 réponses
Membre enregistré
64 messages
Posté le 24 avril 2014 - 15:12
Bonjour, j'ai quelques soucis de rafraîchissement d'écran :

J'utilise la nouvelle fonction ChampCrée pour créer sur un champ image de nouvelles images.
Comme mentionné dans l'aide, je désactive affichageactif sur mon image de fond avant la création de mon nouveau champ,, puis la réactive : tout est parfait en temps réel !!

Puis, j'ai créé une procédure pour pouvoir effacer chaque champ créé en cliquant dessus

Comme lors de la création des champs, avant et après la suppression du champ j'ai désactivé puis réactivé l'affichageactif, sauf que l'effet visuel ne fonctionne que lorsque j'active un autre champ, ou change de plan...
Avez une idée ? merci
Denis
Membre enregistré
64 messages
Posté le 24 avril 2014 - 15:27
En fait je viens de m'apercevoir que la fonction affichageactif=vrai n'est pas appelée !!
En effet lorsque je crée le champs :
nomchamp <- ChampCrée("lesion"+azer ,typImage,x-2,y-2,27,27)

je définis également ma procédure d'effacement
nomchamp..Traitement[trtClic] = Procédure_Efface

Et dans ma procédure : PROCEDURE Procédure_Efface()

sMonNom est une chaîne=MoiMême..Nom
SI ChampExiste(sMonNom) = Vrai ALORS
IMG_Face_Elargie..AffichageActif=Faux
ChampSupprime(sMonNom)
IMG_Face_Elargie..AffichageActif=Vrai
FIN
FIN

dés lors que le champs est supprimé le traitement sur "lui même" ne peut continuer !!
Il me faudrait reprendre la main, quand le champs vient d'être supprimer et avant que l'utilisateur face une autre action....
Posté le 24 avril 2014 - 16:06
Bonjour,
Je vois une solution:
Tu déclares une file de chaine en variable globale
Dans le code du champ, tu ajoutes son nom dans la file
A l'init de la fenêtre, tu lances un thread secondaire qui scrute la file et
supprime le champ dont le nom est dans la file

Ainsi le code est exécuté hors du code du bouton. La boucle du thread étant
sur la file, tant que celle-ci est vide il ne fait rien.

Frédéric.

"DENIS" a écrit dans le message de groupe de discussion :
2014ea8a3dbe5ff418fe23ae1e665993f0bd@news.pcsoft.fr...

En fait je viens de m'apercevoir que la fonction affichageactif=vrai n'est
pas appelée !!
En effet lorsque je crée le champs :
nomchamp <- ChampCrée("lesion"+azer ,typImage,x-2,y-2,27,27)

je définis également ma procédure d'effacement
nomchamp..Traitement[trtClic] = Procédure_Efface

Et dans ma procédure : PROCEDURE Procédure_Efface()

sMonNom est une chaîne=MoiMême..Nom
SI ChampExiste(sMonNom) = Vrai ALORS
IMG_Face_Elargie..AffichageActif=Faux
ChampSupprime(sMonNom)
IMG_Face_Elargie..AffichageActif=Vrai
FIN
FIN

dés lors que le champs est supprimé le traitement sur "lui même" ne peut
continuer !!
Il me faudrait reprendre la main, quand le champs vient d'être supprimer et
avant que l'utilisateur face une autre action....
Posté le 25 avril 2014 - 10:34
Merci Frédéric pour ces conseils judicieux : effectivement j'ai résolu ce pb d'affichage avec un timer qui scrute si le champs fait l'objet d'un traitement.