PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2025 → EnumèreChamp : comment interprétez-vous la doc ?
EnumèreChamp : comment interprétez-vous la doc ?
Débuté par Pascal BOULESTEIX, 04 mai 2025 07:49 - 2 réponses
Membre enregistré
1 166 messages
Posté le 04 mai 2025 - 07:49
Bonjour

J'utilise la fonction EnumèreChamp pour changer la couleur des boutons dans ma page home, boutons répartis dans plusieurs plans.

Dans le première paragraphe de la doc, comment interprétez-vous la deuxième phase du texte explicatif ("Cet élément doit être affiché.").

https://doc.pcsoft.fr/fr-FR/?3025005&productversion=xxA302032

En mode GO, tous les champs de tous les plans de la fenêtre sont énumérés, qu'ils soient "visible" vrai ou faux et qu'ils soient "visibles" au sens "au premier plan" dans le plan courant.

Si je pose la question, c'est qu'il arrive que quand je reviens sur mon application ayant été mise en arrière plan dans le téléphone ou bien que, mon application étant au premier plan mais que mon téléphone sorte de mise en veille, j'ai un plantage sur l'affectation d'un setTextColor (dans le texte) sur un objet undefined.
Attempt to read from field 'eg.a sg.c.Y' on a null object reference in method 'void af.h0.setTextColor(eg.a)'


--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
3 705 messages
Posté le 04 mai 2025 - 14:31
Salut,
Pour moi, c'est le fait de mettre ton application en arrière plan qui pose problème.
Tu as des fonctions comme EnModeArrièrePlan
Tu devrais verrouillé ton application pendant la mise en arrière plan
Pour éviter qu'elle agisse avec l'ihm
Peut être que la LST n°87 : Android Verrouillage pourra t'aider
Je suis d'ailleurs étonné que le support ne propose pas un autre exemple sur le sujet
Membre enregistré
1 166 messages
Posté le 05 mai 2025 - 10:20
Salut popoy
J'utilise déjà EnModeArrièrePlan.
Pour cela, j'ai surchargé les principes fonctions susceptibles d'interférer avec l'IU (info, ouinon, toastaffiche...)
Si par hasard une de ces fonctions est utilisées en arrière-plan, j'envoie une notification quand c'est possible.
Il est vrai que dans le rapport, le message parle d'un ouvreFille que je n'ai pas surchargé, mais je ne vois pas dans quel cas j'aurais besoin d'ouvrir une autre fenêtre quand l'application revient au premier plan !

Il faut noter que ce bug n'arrive que quand la connexion Internet est instable.

Le processus de détection du changement de statut de connexion est en place depuis des années.
Dans l'init du projet :

gbIsInternet = InternetConnecté()
InternetConnecté(gPROC_INTERNET_REFRESH)


Procedure gPROC_INTERNET_REFRESH(Etat)

sUuid est une chaîne = DonneGUID(guidFormaté)
sMsg est une chaîne =""

SI Etat=RéseauDéconnecte ALORS
gbIsInternet = Faux // InternetConnecté()
gbIsInternet=gPROC_INTERNET_TEST_REPONSE_URL()
IF gbIsInternet=Faux ALORS
gnQuidInternet=3
SINON
gnQuidInternet=99
FIN
SI gbIsInternet=Vrai ALORS
gnQuidInternet = 99
FIN
SINON
gbIsInternet = Vrai // InternetConnecté()
gnQuidInternet=Etat
FIN

SELON gnQuidInternet

CAS RéseauDéconnecte
sMsg="Vous n'êtes pas connecté à Internet"

CAS réseauMobile
sMsg="Connexion Internet par GSM"

CAS réseauWifi
sMsg="Connexion Internet par WIFI"
CAS 99
sMsg="Connexion Internet active"
FIN

SI PAS EnModeArrièrePlan() ALORS
ToastAffiche(sMsg,toastCourt,cvBas,chCentre)
FIN

Trace("myTRACE : CALLBACK gPROC_INTERNET_REFRESH "+sMsg)


Le mode verrouillage évoqué dans lst87 n'est pas adapté dans mon application et je ne vois pas ce que ça changerait au sortir de l'arrière-plan.

--
Pascal Boulesteix
Applications Visiolittoral et WNat