| |
Posted on November, 29 2019 - 3:06 PM |
Bonjour,
Je rencontre un problème sous iOs que je n'ai pas sous Android:
J'ai sur ma_fenêtre_mère un bouton dans lequel j'ai le code OuvreFenêtreMobile(ma_fenêtre_fille_1)
Dans le code de 'Fermeture d'une fenêtre fille de ma_fenêtre_mère j'ai:
SELON MaFenêtreFille..Nom CAS "ma_fenêtre_fille_1" OuvreFenêtreMobile(ma_fenêtre_fille_2) FIN
Sous Android, pas de problème : ma_fenêtre_fille_2 s'ouvre bien lorsque ma_fenêtre_fille_1 se ferme. Sous iOs, cela provoque l'exception suivante : Exception : Il n'est pas possible d'appeler cette fonction dans le traitement de fermeture d'une fenêtre fille. La fenêtre est en train de se fermer, on ne peut pas en ré-ouvrir une autre en même temps.
Avez-vous rencontré ce problème ? Si oui, comment l'avez-vous résolu ?
Merci d'avance pour vos retours.
Eric |
| |
| |
| | | |
|
| | |
| |
Posted on December, 02 2019 - 11:38 AM |
Bonjour,
J'ai fait un tout petit projet qui démontre le bug. Vous pouvez le télécharger à cette adresse: https://fromsmash.com/5vwukV3cQ9-c0 Si vous voulez-bien me faire un retour pour savoir si cela se reproduit chez vous, merci d'avance.
Eric |
| |
| |
| | | |
|
| | |
| |
Registered member 449 messages Popularité : +31 (43 votes) |
|
Posted on December, 02 2019 - 12:03 PM |
Bonjour,
J'ai téléchargé votre projet test et j'ai le même bug que vous. Personnellement je travail beaucoup avec les plan sous windev mobile je trouve cela moins lourd à gérer surtout dans un environnement multi os (ios,android)Message modified, December, 02 2019 - 12:08 PM |
| |
| |
| | | |
|
| | |
| |
Posted on December, 02 2019 - 2:05 PM |
Merci Dimitri. Cela me rassure un peu, je vais donc transmettre le projet au ST. Utiliser les Plans est une bonne idée mais mon projet existe déjà sous Android et ce ne sera pas évident de toute reprendre avec des Plans. Je garde quand même cette pseudo-solution sous le coude au cas où le ST ne trouverait pas de remède. |
| |
| |
| | | |
|
| | |
| |
Registered member 309 messages Popularité : +31 (37 votes) |
|
Posted on December, 02 2019 - 2:38 PM |
Bonjour, Problème connu. Pour contourner ce problème, j'ai l'habitude de déclencher l'ouverture de la seconde fenêtre dans un timer (qui effectue la dite ouverture au bout d 1/2 seconde) ...Il s'agit de différer l'ouverture de la fenêtre 2 de la fermeture de la fenêtre 1 (qui peut prendre quelques centiemes de secondes)
Bon dev |
| |
| |
| | | |
|
| | |
| |
Registered member 477 messages Popularité : +20 (20 votes) |
|
Posted on December, 02 2019 - 3:46 PM |
Le délai de fermeture ou d'ouverture de la fenêtre varie suivant le périphérique donc le mieux est de tester la fermeture effective avec Fenetat dans une boucle avec une temporisation |
| |
| |
| | | |
|
| | |
| |
Registered member 309 messages Popularité : +31 (37 votes) |
|
Posted on December, 02 2019 - 3:57 PM |
+1 pour stef, très bonne suggestion.
bon dev. |
| |
| |
| | | |
|
| | |
| |
Posted on December, 02 2019 - 5:57 PM |
Merci Samir et Stef1811, Mais ça ne fonctionne toujours pas même avec un Multitâche(-300) avant l'ouverture de la fenetre_2. On dirait que la fenêtre_1 est toujours considérée comme étant ouverte tant qu'on est dans la procédure 'Fermeture d'une fenêtre fille'. D'ailleurs FenEnCours() renvoie toujours le nom de la fenêtre_1 et DonneFocus(FEN_Main) ne fonctionne pas dans la procédure. Ce qui est dingue c'est que tout fonctionne à merveille sous Android ! |
| |
| |
| | | |
|
| | |
| |
Registered member 309 messages Popularité : +31 (37 votes) |
|
Posted on December, 03 2019 - 9:47 AM |
Essayez de faire :
TANTQUE FenEtat(ma_fenêtre_fille_1)<>Inexistant Multitâche(-100) FIN OuvreFenêtreMobile(ma_fenêtre_fille_2)
bon dev |
| |
| |
| | | |
|
| | |
| |
Posted on December, 04 2019 - 11:50 AM |
Merci Samir mais j'ai déjà essayé. Malheureusement la boucle devient infinie car fenetat(ma_fenêtre_fille_1) renvoie toujours 0. Si je n'ai pas de réponse du ST alors je vais opter pour la solution suivante qui fonctionne: - Avant l'ouverture de Fen1, je lance un Thread qui boucle tant qu'un booleen est False. - En sortie de cette boucle, je lance dans le Thread Principal l'ouverture de Fen2 - Dans la procédure 'Fermeture d'une fenêtre fille', je mets ce booleen à True.
Voici le code:
TANTQUE PAS gbFen1Ferme ThreadPause(10) FIN gbFen1Ferme=Faux ExécuteThreadPrincipal(OuvreFen2)
SELON MaFenêtreFille..Nom CAS "FEN_fen1" gbFen1Ferme=Vrai
AUTRE CAS
FIN
OuvreFenêtreMobile(FEN_Fen2)
|
| |
| |
| | | |
|
| | |
| |
Posted on May, 24 2020 - 3:51 PM |
Bonjour,
J'ai le même problème sur IOS/WM 25 (Update 3) ...
Pourriez-vous nous dire quelle a été la réponse du ST ?
D'avance merci beaucoup...
Cyril |
| |
| |
| | | |
|
| | |
| |
Posted on May, 25 2020 - 11:31 AM |
Voici la réponse du ST: "Malheureusement sous iOS, l’ouverture des fenêtres n’est pas possible pendant la fermeture d’une fenêtre. C’est une contrainte liée au fonctionnement de iOS. Vous pouvez soit utiliser une procédure avec un automatisme permettant de décaler l’ouverture de la fenêtre (Timer pour procédure différée). Toutefois, souvent l’utilisation d’une seule fenêtre contenant une fenêtre interne qui pourra être changée par ChangeFenêtreSource est également une bonne alternative." |
| |
| |
| | | |
|
| | |
| |
Posted on May, 25 2020 - 2:49 PM |
Merci beaucoup pour la réponse ... S'ils l'avaient mentionné dans la doc nous aurions, je pense, gagné du temps ! |
| |
| |
| | | |
|
| | |
| |
Posted on May, 25 2020 - 6:01 PM |
Tout à fait ! Je te conseille d'utiliser la méthode que j'ai décrite. Elle à le mérite de ne pas être dépendante des possibles mises à jour et fonctionne dans tous les environnements.
Eric |
| |
| |
| | | |
|
| | |