|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
Started by GpEp, Aug., 09 2022 12:03 PM - 9 replies |
| |
| | | |
|
| |
Registered member 45 messages |
|
Posted on August, 09 2022 - 12:03 PM |
Bonjour à tous,
Ce morceau de code simule un clic droit sur un champ HTML affichage pour ouvrir le menu contextuel de ce champ HTML.
Menu contextuel ouvert
En test ce code fonctionne très bien Multitâche(-1) EnvoieTouche("{BTNDROIT,500,500}",Handle(FI_NAVIGATEUR.HTM_BROWSER)) EnvoieTouche(RC)
Par contre en éxécution de la phase exécutable ... - le curseur se positionne correctement - la flêche du curseur est bien visible mais le menu ne s'ouvre pas !
Je ne comprends pas pourquoi malgré mes recherches. Pouvez-vous me donner une raison de ne pas fonctionner ou une idée à chercher ? Merci d'avance |
| |
| |
| | | |
|
| | |
| |
Registered member 3,334 messages Popularité : +93 (137 votes) |
|
Posted on August, 09 2022 - 12:30 PM |
Si tu mets ton HTML dans une fenêtre principale Mais pas dans une fenêtre interne Est ce que cela fonctionne ? |
| |
| |
| | | |
|
| | |
| |
Registered member 45 messages |
|
Posted on August, 09 2022 - 3:29 PM |
Bonjour Popoy , et merci de considérer ma question. Pardonnes-moi d'avoir tardé mais ta simple question m'a obligé à créer un petit projet simpliste pour tester le champ HTML avec une plus simple utilisation.
Effectivement toutes mes utilisations de la fonction envoietouche ( j'en ai teste plusieurs ) fonctionnent bien en phase exécutable, tant pour agir sur des boutons externes au champ HTML, que pour les actions sur les boutons et les formulaires de la page affichée.
Ceci dit je ne sais pas du tout ou envoyer les mains pour corriger mes projets réels que j'ai adapté avec les exemples plus sophistiqués de Windev pour que celà marche en phase exécutable. Merci d'avance si tu pouvais me guider |
| |
| |
| | | |
|
| | |
| |
Registered member 3,334 messages Popularité : +93 (137 votes) |
|
Posted on August, 10 2022 - 7:44 AM |
Salut Je pense que c'est Handle(FI_NAVIGATEUR.HTM_BROWSER)) Qui pose problème Normalement, a l'exécution ta FI_NAVIGATEUR est elle même Dans un autre champ fenêtre interne Si tu mets comme nom de champ CFI_ChampFenêtreInterne Alors il faut mettre Handle(CFI_ChampFenêtreInterne.HTM_BROWSER)) Cependant, il faut vérifier que le champ HTM_BROWSER est bien présent car la FI peut changer En utilisant si ChampExiste avec le "CFI_ChampFenêtreInterne.HTM_BROWSER" Ne pas oublier les guillemets
Une autre solution est d'utiliser la propriété ..nomcomplet A l'exécution a l'intérieur de la fenêtre interne sur le champ Pour connaître le bon nom a utilisé dans le handle. |
| |
| |
| | | |
|
| | |
| |
Registered member 45 messages |
|
Posted on August, 10 2022 - 11:01 AM |
Bonjour Merci infiniment pour tes pistes ! Je vais vérifier, tester tout celà et je t'informe |
| |
| |
| | | |
|
| | |
| |
Registered member 45 messages |
|
Posted on August, 11 2022 - 3:01 PM |
Bonjour,
En utilisant si ChampExiste avec le "CFI_ChampFenêtreInterne.HTM_BROWSER" Ne pas oublier les guillemets Une autre solution est d'utiliser la propriété ..nomcomplet A l'exécution a l'intérieur de la fenêtre interne sur le champ Pour connaître le bon nom a utilisé dans le handle.
Résumé de mes tests en suivant tes conseils ... // Dans l'évènement "Après chargement de la fenetre interne de CFI_SYSTEM_TAB // J'ai récupéré le nom du handle FenHandleEnCours = (CFI_SYSTEM_TAB..NomComplet) // FenHandleEnCours contient : FEN_MAIN.ONG_NAVIGATEUR.ALIAS_1.CFI_SYSTEM_TAB
// Dans l'événement Modification du volet affiché de ONG_NAVIGATEUR // Je récupère le nom de l'onglet qui devrait participé au handle WOngletEncours = ONG_NAVIGATEUR // WOngletEncours contient ALIAS_2
// Pour info, valeurs en cours pour .. FI_NAVIGATEUR.HTM_BROWSER.Plan = 1 FI_NAVIGATEUR.CFI_SYSTEM_TAB.Plan = 0
// Observation : je trouve anormal que dans FenHandleEnCours l'alias soit ALIAS_1 // alors que l'onglet en cours WOngletEnCours est ALIAS_2 ( visuellement l'onglet est bien le 2ème )
// de ce fait je tente la modification suivante : // Au début de ma procédure de simulation de clic droit sur le champ HTML affiché WOngletAVerifier est une chaîne WOngletAVerifier = Milieu(FenHandleEnCours,25,7) SI WOngletAVerifier <> WOngletEncours ALORS // ALIAS_1 est remplacé par ALIAS_2 FenHandleEnCours = Remplace(FenHandleEnCours,WOngletAVerifier,WOngletEncours) FIN // le nom complet du handle devient alors FenHandleEnCours = FEN_MAIN.ONG_NAVIGATEUR.ALIAS_2.CFI_SYSTEM_TAB
ResExiste = ChampExiste(FenHandleEnCours) // ResExiste = vrai SI ResExiste = Faux ALORS Info(FenHandleEnCours + " est non accessible" RETOUR FIN FIN // on ouvre le menu contextuel de la page web qui contient le sous-menu "Afficher le code source de la page" Multitâche(10) EnvoieTouche("{BTNDROIT,5,380}",Handle(FenHandleEnCours)) EnvoieTouche(RC) Temporisation(2s)
Voilà rien n'a changé, le résultat est correct : - positionnement de la flêche du curseur - ouverture immédiate du menu contextuel
et après reconstiution de la phase exécutable - positionnement de la flêche du curseur et le menu ne s'ouvre pas !!! .....
J'ai bien conscience que les contenus des valeurs en cours pour .. FI_NAVIGATEUR.HTM_BROWSER.Plan = 1 FI_NAVIGATEUR.CFI_SYSTEM_TAB.Plan = 0 signifient que on est une situation d'affichage de la fenêtre interne système et cache le browser ( commentaires trouvé dans une procédure )
et que celà est peut-etre une cause du problème mais je n'ai pas compris comment agir dessus !! |
| |
| |
| | | |
|
| | |
| |
Registered member 3,334 messages Popularité : +93 (137 votes) |
|
Posted on August, 11 2022 - 5:31 PM |
Je suis désolé de te dire qu'il manque .HTM_BROWSER Car c'est le champ HTML où tu fais ton clic droit C'est le nom complet du champ HTML Que tu dois connaître pas le nom complet de ta fenêtre interne |
| |
| |
| | | |
|
| | |
| |
Registered member 45 messages |
|
Posted on August, 12 2022 - 12:10 PM |
Bonjour Pardonne-moi je suis désolé de m'être trompé dans les exemples que je t'ai copiés mais tous mes tests ont bien été faits avec le handle que tu veux c'est à dire FEN_MAIN.ONG_NAVIGATEUR.ALIAS_1.HTM_BROWSER
A part cette erreur de frappe toutes les autres observations sont bonnes.
Rappel ResEx = ChampExiste("CFI_SYSTEM_TAB.HTM_BROWSER") RseEx donne faux "FEN_MAIN.ONG_NAVIGATEUR.ALIAS_1.HTM_BROWSER" existe "FEN_MAIN.ONG_NAVIGATEUR.ALIAS_1.CFI_SYSTEM_TAB" existe |
| |
| |
| | | |
|
| | |
| |
Registered member 3,334 messages Popularité : +93 (137 votes) |
|
Posted on August, 12 2022 - 1:17 PM |
Dans ce cas, Je ne sais pas Reste à demandé au support A moins que quelqu'un d'autre sur le forum a une idée Peut être avec la commande executejs mais ne me démande pas Le code JavaScript correspondant |
| |
| |
| | | |
|
| | |
| |
Registered member 45 messages |
|
Posted on August, 12 2022 - 3:45 PM |
Bah ! je vais m'arrêter là en te remerciant infiniment pour ta patience et tes conseils? |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|