|
Iniciado por Romain SIMON, 06,ago. 2022 20:20 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 33 mensajes |
|
Publicado el 06,agosto 2022 - 20:20 |
Bonjour !
Je cherche desesperement comment faire une fenêtre modal (ou popup) avec Windev Mobile sur Android (et aussi iOS).
Sur l'émulateur, une fenêtre interne que j'ouvre avec "OuvreFenêtreMobile" fonctionne parfaitement, mais une fois sur un vrai device, cela ne fonctionne pas. La fenêtre interne ne s'ouvre pas, et ma fenêtre actuelle se recharge.
En parcourant les forums, je suis tombé sur un message indiquant que les fenêtres internes ne s'utilisent pas de cette manière.
J'ai donc cherché une autre solution, et voici ce que j'ai trouvé : Je créer une fenêtre interne qui contient le contenu de la popup, je l'ajoute dans le plan 1 ou 2 de ma fenêtre parente, puis lorsque je veux ouvrir la popup, j'affiche le plan 1 ou 2 et j'appelle la procédure "Initialise" de ma fenêtre interne.
Cela fonctionne plutôt bien, mais uniquement parce que ma fenêtre parente n'utilise pas les plans (je m'en sert juste pour les popups). Mais si je devais utiliser les plans, ma méthode ne fonctionne plus.
Je voudrais donc savoir si il existait un moyen plus simple et plus propre d'ouvrir une popup sur Android et iOS en version 26 de WinDev Mobile. Egalement, est-ce qu'en version 27 la méthode change ou ça reste pareil ?
J'ai cru comprendre que Android n'avait pas de système de popup. Pourtant, j'ai déjà utilisé des applications qui en utilisaient (par exemple, sur un logiciel de caisse, quand on clique sur "Encaisser", cela ouvre une popup pour choisir le montant, le mode de paiement, etc...)
Avez-vous des astuces pour ça ?
Idéalement, si la popup pouvait retourner une valeur, ce serait top. Sinon, je peux toujours passer une procédure en Callback.
Merci ! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3.346 mensajes Popularité : +93 (137 votes) |
|
Publicado el 06,agosto 2022 - 22:14 |
Plusieurs solutions - Une fenêtre non maximiser - la personnalisation des fenêtres de dialogue pcsoft https://doc.pcsoft.fr/fr-FR/?3021003 Qui sont elles aussi des fenêtres non maximiser. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 964 mensajes Popularité : +16 (20 votes) |
|
Publicado el 07,agosto 2022 - 11:23 |
Personnellement j'ai opté pour des fenêtres non maximalisées qui affiche un champ HTML et des boutons personnalisables (texte, couleur...)
Le problème reste le modal pour lequel WM ne propose rien
On argumentera qu'il ne faut pas faire de modal mais des fois, la réponse "de la modale" influe sur des choix applicatifs.
Ce qui est râlant, c'est que quand on fait un bête "info", le code ne continue qu'après la réponse.
Le problème des fenêtres info, dialogue... c'est leur pauvreté du graphisme.
J'ai donc surchargé les méthodes info, dialogue... avec mes propres procédures (voir procédure plus bas)
Deux avantages : Je fais le design que je veux avec autre chose que des "Oui" et des "Non". De plus, je ne change rien à mes réflexes de programmation, je continue à coder des info("truc chouette") mais dans ma procédure je règle le problème de l'application en arrière plan pour laquelle Android > 10 interdit les affichages.
Comment j'ai réglais l'aspect modal ?
Dans les événements (typiquement le clic sur un bouton) fermant la fenêtre "FEN_INFO", je passe à vrai un booléen global (gbFEN_INFO_LOOP_END) ce booléen étant testé après le OuvreFenêtreMobile (voir dans le code).
Procedure Info(vParmLigne1,vParmLigne2="",vParmLigne3 ="",vParmLigne4 ="",vParmLigne5 ="",vParmLigne6 ="",vParmLigne7 ="",vParmLigne8 ="",vParmLigne9 ="",vParmLigne10 ="",vParmLigne11 ="",vParmLigne12 ="",vParmLigne13 ="",vParmLigne14 ="",vParmLigne15 ="") sMyNL_Debut est une chaîne = "" sMyNL_Fin est une chaîne = "" nIndice est un entier = 0 nIndiceMax est un entier = 0 vLigne est un Variant vLignes est un tableau de Variant SI Majuscule(vParmLigne1)=vParmLigne1 ALORS gsFEN_INFO_TITRE=vParmLigne1 AjouteLigne(vLignes,vParmLigne2) AjouteLigne(vLignes,vParmLigne3) AjouteLigne(vLignes,vParmLigne4) AjouteLigne(vLignes,vParmLigne5) AjouteLigne(vLignes,vParmLigne6) AjouteLigne(vLignes,vParmLigne7) AjouteLigne(vLignes,vParmLigne8) AjouteLigne(vLignes,vParmLigne9) AjouteLigne(vLignes,vParmLigne10) AjouteLigne(vLignes,vParmLigne11) AjouteLigne(vLignes,vParmLigne12) AjouteLigne(vLignes,vParmLigne13) AjouteLigne(vLignes,vParmLigne14) AjouteLigne(vLignes,vParmLigne15) AjouteLigne(vLignes,"") SINON gsFEN_INFO_TITRE="" AjouteLigne(vLignes,vParmLigne1) AjouteLigne(vLignes,vParmLigne2) AjouteLigne(vLignes,vParmLigne3) AjouteLigne(vLignes,vParmLigne4) AjouteLigne(vLignes,vParmLigne5) AjouteLigne(vLignes,vParmLigne6) AjouteLigne(vLignes,vParmLigne7) AjouteLigne(vLignes,vParmLigne8) AjouteLigne(vLignes,vParmLigne9) AjouteLigne(vLignes,vParmLigne10) AjouteLigne(vLignes,vParmLigne11) AjouteLigne(vLignes,vParmLigne12) AjouteLigne(vLignes,vParmLigne13) AjouteLigne(vLignes,vParmLigne14) AjouteLigne(vLignes,vParmLigne15) FIN
POUR nIndiceMax = 15 À 1 PAS -1 QUAND EXCEPTIONEXCEPTION DANS vLigne=vLignes[nIndiceMax] SI vLigne<>"" ALORS SORTIR FIN FAIRE SORTIR FIN FIN
<Compile SI TypeConfiguration=iOS> sMyNL_Debut=CRLF sMyNL_Fin = "" <FIN>
<Compile SI TypeConfiguration=Android> sMyNL_Debut="<p Class='ligne'>" sMyNL_Fin=" </p>" SI gbIsTelephoneBizarre=Vrai ALORS sMyNL_Debut = RC sMyNL_Fin = "" FIN
<FIN>
vLigne="" POUR nIndice = 1 À nIndiceMax SI SansEspace(vLignes[nIndice])="" ALORS vLignes[nIndice]=sMyNL_Debut+sMyNL_Fin FIN vLigne+=sMyNL_Debut+vLignes[nIndice]+sMyNL_Fin FIN
SI EnModeArrièrePlan() ALORS SINON <Compile SI TypeConfiguration=iOS> WL.TitreSuivant(gsFEN_INFO_TITRE) vLigne=Remplace(vLigne,"<strong>","") vLigne=Remplace(vLigne,"</strong>","") WL.Info(vLigne) <FIN> <Compile SI TypeConfiguration=Android> SI gbIsTelephoneBizarre=Vrai ALORS WL.TitreSuivant(gsFEN_INFO_TITRE) WL.Info(vLigne) SINON
gbFEN_INFO_LOOP_END=Faux OuvreFenêtreMobile(FEN_INFO,gsFEN_INFO_TITRE,vLigne,"ok") gsFEN_INFO_TITRE="" TANTQUE gbFEN_INFO_LOOP_END=Faux SI PAS EnModeSimulateur() ALORS <Compile SI TypeConfiguration=iOS> Multitâche(-1) <FIN> <Compile SI TypeConfiguration=Android> Multitâche(-100) <FIN> SINON Multitâche(-1) FIN FIN FIN <FIN> FIN
-- Pascal Boulesteix Applications Visiolittoral et WNat |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 33 mensajes |
|
Publicado el 07,agosto 2022 - 20:51 |
En effet, les fenêtres non maximisées font exactement ce que je souhaite. C'est parfait !
Concernant l'apparence des Popups "Oui/Non" etc, je ne peux pas les personnaliser pour le moment, car je suis en version Express le temps de recevoir ma licence. |
| |
| |
| | | |
|
| | | | |
| | |
|