Donnez vie à vos documents numériques !
 

Action pour ouvrir une page web par script

abracadabraPDF Forums PDF – Général Action pour ouvrir une page web par script

  • Créateur
    Sujet
  • #75717
    michel c.
    Participant

    Bonjour, j’aimerais pouvoir ajouter une action pour ouvrir une page web à des boutons (sélection par menu déroulant) grâce à un code

    J’ai pour l’instant ce script :

    var i = event.target.name.substr(6);
    var j = this.getField("NoLien."+i).value;

    //ajouter le code permettant d'ouvrir le lien dont l'adresse
    //est contenue dans le champ : this.getField("Links."+i+"."+j).value

    this.getField("LaC."+i).value == "";

     

    Merci

     

Affichage de 24 réponses de 1 à 24 (sur un total de 24)
  • Auteur
    Réponses
  • #75718
    Merlin
    Maître des clés

    Bonjour

     

    Il faut remplir la liste déroulante avec les intitulés (ou “Elément”, c’est ce qui est affiché à l’utilisateur) et les valeurs d’exportation (l’URL correspondante).

    Ensuite le bouton utilise la valeur d’exportation pour ouvrir le lien (via un navigateur).

    Code à utiliser dans le bouton (souris relâchée) :

    app.launchURL(this.getField("LISTE").value);

     

    Attachments:
    You must be logged in to view attached files.
    #75720
    michel c.
    Participant

    Merci mais je me suis mal exprimé et en plus le fichier joint n’a pas été lié.

    En fait, je voudrais que lorsque je saisis un lien dans le champ Lien.i et que je sélectionne le numéro de lien dans le champ NoLien.i ; alors le lien saisi soit ajouté à une action souris basse sur le lien Links.i.j (ou j est la valeur d’export du champ NoLien.i)

    Merci

    Attachments:
    You must be logged in to view attached files.
    #75722
    michel c.
    Participant

    Je viens de tester ceci, je pense que je ne suis pas loin…

    var i = event.target.name.substr(6);
    var j = this.getField("NoLien."+i).value;
    var lien = this.getField("LaC."+i).value;

    //ajouter le code permettant d'ouvrir le lien dont l'adresse
    //est contenue dans le champ : this.getField("Links."+i+"."+j).value

    this.getField("Links."+i+"."+j).setAction("MouseDown", app.launchURL(lien));

    this.getField("LaC."+i).value == "";

     

    Pour l’instant ça ne marche pas …

    Attachments:
    You must be logged in to view attached files.
    #75724
    bebarth
    Maître des clés

    bonjour,
    Voici un script pour ajouter un lien aux boutons :
    var i=event.target.name.substr(6);
    var j=this.getField("NoLien."+i).value;
    var leLien=this.getField("LaC."+i).value;
    if (j!="-" && /^(https?:\/\/)?([\w-]+(\.[\w-]+)+)(:\d+)?(\/[^\s]*)?$/i.test(leLien)) {
    this.getField("Links."+i+"."+j).setAction("MouseUp","app.launchURL(\""+leLien+"\");");
    this.getField("LaC."+i).value="";

    }
    else if (j=="-") app.alert("Veuillez choisir un numéro d'indice",3);
    else app.alert("L'url indiquée n'est pas correcte",3);
    On trouve différentes expressions régulières sur internet qui correspondent à une url, celle-ci en est une !

    Pour la proposition de Merlin, on peut comme dans un post précédent lancer directement le lien depuis le menu déroulant en utilisant un script de touches personnalisé :
    if (!event.willCommit) {
    try {
    app.launchURL(event.changeEx);
    } catch(e) {}
    }
    On met le “try” au cas où la valeur d’exportation ne soit pas une url…

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #75731
    Merlin
    Maître des clés

    “On trouve différentes expressions régulières sur internet qui correspondent à une url”

    Une des plus simples se trouve ici :

    GREP pour InDesign : détection d’URL

    En ce qui nous concerne ici, on peut même se passer des deux métacaractères finaux qui indiquent la fin d’un mot puisqu’on ne risque pas de trouver de ponctuation après.

    😉

    #75771
    michel c.
    Participant

    Merci beaucoup, ça fonctionne très bien. J’aimerais savoir si on peut :

    • lorsqu’on clique sur Ajouter le lien, avoir une boite de dialogue demandant le texte qui apparaîtra sur le bouton?
    • Avoir les éléments de liste déroulante soient générés en fonction du dernier indice (b) des champs LinkT.a.b
    • Avoir un message d’alerte si il y a déjà un lien associé au bouton pour éviter qu’il soit écrasé par erreur

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    #75782
    bebarth
    Maître des clés

    bonjour,
    Voici ma proposition qui devrait correspondre à ce que tu demandes :
    var i=event.target.name.substr(6);
    var j=this.getField("NoLieT."+i).value;
    if (this.getField("LinkT."+i+"."+j).buttonGetCaption()!="....") {
    app.alert("Ce bouton renvoie déjà à une url.",3);
    } else {
    var leLien=this.getField("LaT."+i).value;
    if (j!="-" && /^(https?:\/\/)?([\w-]+(\.[\w-]+)+)(:\d+)?(\/[^\s]*)?$/i.test(leLien)) {
    this.getField("LinkT."+i+"."+j).setAction("MouseUp","app.launchURL(\""+leLien+"\");");
    var texteBouton="";
    while ((!/^(\w|\W)+( (\w|\W)+)*$/.test(texteBouton) && texteBouton!=null) || texteBouton=="Exemple") {
    var texteBouton=app.response({
    cQuestion: "Quel nom souhaitez-vous attribuer à ce bouton ?",
    cTitle: "Nom du bouton",
    cLabel: "Nom :",
    cDefault: "Exemple"
    });
    }
    if (texteBouton!=null) {
    this.getField("LinkT."+i+"."+j).buttonSetCaption(texteBouton);;
    this.getField("LinkT."+i+"."+j).fillColor=color.green;
    this.getField("LaT."+i).value="";
    for (var k=0; k<10; k++) {
    if (this.getField("LinkT."+i+"."+k).buttonGetCaption()=="....") {
    this.getField("NoLieT."+i).value=k;
    break;
    }
    }
    if (k==10) app.alert("Tous les boutons renvoient à une url",3);
    }
    }
    else if (j=="-") app.alert("Veuillez choisir un numéro d'indice",3);
    else app.alert("L'url indiquée n'est pas correcte",3);
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #75795
    michel c.
    Participant

    Merci beaucoup, je voulais savoir s’il était possible dans le cas ou une Url est déjà affectée à un bouton que la boite de dialogue demande si on veut écraser l’Url existante ou annuler?

    Je vais commencer à réfléchir à ça. J’espère trouver avant la fin du week-end

    #75799
    michel c.
    Participant

    Je pense que j’ai réussi.

    J’aimerais aussi pouvoir me passer des champs LaT.1 et NoLieT.1 et pouvoir saisir ces informations dans la même boite de dialogue que celle demandant le nom à afficher au bouton.

    Je n’arrive pas à savoir comment faire pour avoir tout ceci dans la même boite de dialogue…

     

    Merci

    Attachments:
    You must be logged in to view attached files.
    #75811
    bebarth
    Maître des clés

    bonjour,

    Je n’arrive pas à savoir comment faire pour avoir tout ceci dans la même boite de dialogue…

    C’est un petit boulot, mais si tu n’es pas trop pressé je te fais ça en fin de semaine…

    @+
    😎

    #75815
    michel c.
    Participant

    Super, merci. D’ici là je vais chercher pour voir si j’y arrive.

    #75829
    bebarth
    Maître des clés

    bonjour,

    D’ici là je vais chercher pour voir si j’y arrive.

    As-tu réussi à faire quelque chose ?
    Je m’y attelle dès ce soir. “Normalement” ça ne devrait pas être trop long. la boite de dialogue n’est pas très compliquée, mais lorsqu’on n’en fait pas depuis un certain temps il faut se remettre dans le bain.
    Je te tiens au courant…

    @+
    😎

    #75831
    michel c.
    Participant

    Non, je cherche encore, c’est plus complexe que je ne le pensais.

    J’en suis à la phase ou je cherche des scripts sur le net et j’essaye de les décortiquer pour savoir comment les adapter.

    Attachments:
    You must be logged in to view attached files.
    #75833
    bebarth
    Maître des clés

    bonjour,

    c’est plus complexe que je ne le pensais

    C’est pas le plus simple dans le Javascript Acrobat… Il y a quelques exemples dans l’API Reference (https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API_AcroJS.html#execdialog) ou sur ce fichier de Thom Parker (page : https://www.pdfscripting.com/public/ACRODIALOGS-OVERVIEW.cfm, fichier : http://www.windjack.com/resources/Examples/DialogUses.pdf).
    Si cela t’intéresse de créer des boites de dialogue je peu de donner quelques exemples simples.

    Voilà ce que j’ai fait. Je pense l’avoir testé, mais dis-moi s’il y a des erreurs.
    J’en ai profité pour faire un peu de pub à ma fille !!!

    Voici le script :

    var nomBoutons=[];
    for (var k=0; k<10; k++) nomBoutons.push(this.getField("LinkT.1."+k).buttonGetCaption());
    for (var k=0; k<10; k++) {
    if (this.getField("LinkT.1."+k).buttonGetCaption()=="...") break;
    }
    if (k==10) app.alert("Tous les boutons renvoient à une URL.",3);
    //
    var bDialogue={
    initialize: function(bDialogue) {
    this.cbInit=true;
    bDialogue.enable({url0: true});
    this.loadDefaults(bDialogue);
    },
    loadDefaults: function(bDialogue) {
    bDialogue.load({
    cb00: false,
    rd00: true,
    url0: "http://www.",
    });
    bDialogue.insertEntryInList({"menu":{"- Indices -": 0}});
    bDialogue.insertSeparatorEntryInList("menu");
    for (var i=0; i<10; i++) {
    if (i!=k) var par=-1;
    else var par=1;
    eval("bDialogue.insertEntryInList({\"menu\":{\""+i+"\": "+(par*(i+1))+"}});");
    }
    },
    cb00: function(bDialogue) {
    this.cbInit=!this.cbInit;
    bDialogue.enable({init: this.cbInit});
    },
    quelBtRd: function (oRslt) {
    for (var i=0; i<=1; i++) { if (oRslt["rd0"+i]) { switch (i) { case 0: resBtRd="Non"; break; case 1: resBtRd="Oui"; } } }; return resBtRd; }, validate: function(bDialogue) { var oRslt=bDialogue.store(); var elements=bDialogue.store()["menu"]; for (var i in elements) { if (elements>0) indice=i;
    }
    if (indice=="- Indices -") {
    app.alert("Veuillez sélectionner l'indice d'un champ;.",3);
    return false;
    } else {
    initialiser=oRslt["cb00"];
    if (initialiser) {
    texteBouton="...";
    texteURL="";
    return true;
    } else {
    texteBouton=oRslt["nmbt"];
    var testOK0=true;
    if (!/^(\w|\W)+( (\w|\W)+)*$/.test(texteBouton)) var testOK0=false;
    if (!testOK0) app.alert("Veuillez indiquer un nom pour le bouton.",3);
    var testOK1=true;
    texteURL=oRslt["url0"];
    if (!/^(https?:\/\/)?([\w-]+(\.[\w-]+)+)(:\d+)?(\/[^\s]*)?$/i.test(texteURL)) var testOK1=false;
    if (!testOK1) app.alert("Veuillez renseigner une URL correcte.",3);
    cAc=this.quelBtRd(oRslt);
    if (nomBoutons[indice]!="...") {
    if (cAc=="Non") {
    app.alert("Le bouton d'indice \""+indice+"\" est déjà renseigné.",3);
    return false;
    } else {
    var reponse=app.alert("Le bouton d'indice \""+indice+"\" est déjà renseigné.\rSouhaitez-vous réellement le modifier ?",3,2);
    if (reponse==3) return false;
    }
    }
    var testOK=testOK0 && testOK1;
    return testOK;
    }
    }
    },
    description: {
    name: "Bouton vers URL",
    first_tab: "cb00",
    elements: [
    {
    type: "cluster", //
    elements: [
    {
    type: "static_text",
    name: "Indice du bouton",
    font: "dialog",
    bold: true,
    },
    {
    type: "popup",
    item_id: "menu",
    alignment: "align_fill",
    //width: 150,
    },
    {
    type: "check_box",
    alignment: "align_center",
    item_id: "cb00",
    name: " Réinitialiser le bouton",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "cluster",
    item_id: "init",

    elements: [
    {
    type: "static_text",
    name: "Texte pour le bouton",
    font: "dialog",
    bold: true,
    },
    {
    type: "edit_text",
    item_id: "nmbt",
    alignment: "align_fill",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "static_text",
    name: "URL à atteindre",
    font: "dialog",
    bold: true,
    },
    {
    type: "edit_text",
    item_id: "url0",
    alignment: "align_fill",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "static_text",
    name: "Modifier le bouton si renseigné ?",
    font: "dialog",
    bold: true,
    },
    {
    type: "view",
    alignment: "align_center",
    align_children: "align_row",
    elements: [
    {
    type: "radio",
    group_id: "gr00",
    item_id: "rd00",
    name: " Non",
    },
    {
    type: "radio",
    group_id: "gr00",
    item_id: "rd01",
    name: " Oui",
    },
    ]
    },
    ]
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "ok_cancel",
    },
    ]
    },
    ]
    }
    };
    if("ok"==app.execDialog(bDialogue)){
    if (initialiser) {
    this.getField("LinkT.1."+indice).setAction("MouseUp","//");
    this.getField("LinkT.1."+indice).buttonSetCaption("...");
    this.getField("LinkT.1."+indice).fillColor=color.ltGray;
    } else {
    this.getField("LinkT.1."+indice).setAction("MouseUp","app.launchURL(\""+texteURL+"\");");
    this.getField("LinkT.1."+indice).buttonSetCaption(texteBouton);
    this.getField("LinkT.1."+indice).fillColor=color.green;
    }
    }

    …et le fichier où j’ai rajouté une ligne pour en avoir 10 (de 0 à 9).

    @+
    😎

    • Cette réponse a été modifiée le il y a 3 jours et 3 heures par bebarth.
    Attachments:
    You must be logged in to view attached files.
    #75836
    Merlin
    Maître des clés

    bebarth, PDF Expert gère nativement les boites de dialogue (AcroDialog).

    Michel va te mettre la misère.

    😉

    #75839
    bebarth
    Maître des clés

    PDF Expert gère nativement les boites de dialogue (AcroDialog).

    Je n’avais pas vérifié avec PDF Expert et effectivement :

    1. Il ne trouve pas le premier indice disponible
    2. Il ne comprend pas “insertSeparatorEntryInList”

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #75844
    bebarth
    Maître des clés

    J’ai fait une version qui fonctionne apparemment avec PDF Expert !
    A vérifier quand même…

    Il y avait une erreur que j’ai modifié (dans les 2 fichiers);

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #75847
    michel c.
    Participant

    Merci mille fois, c’est super, ça fonctionne à merveille.

    Je n’ai pas pdf expert mais pdf Xchange editor mais le premier fichier ne fonctionnait pas.

    Je viens de faire une modif pour avoir plusieurs boutons qui ajoutent des liens sur des boutons ayant un premier indice différent.

    J’ai l’impression que ça fonctionne bien

     

    • Cette réponse a été modifiée le il y a 2 jours et 13 heures par michel c..
    Attachments:
    You must be logged in to view attached files.
    #75850
    Merlin
    Maître des clés

    “Je n’ai pas pdf expert mais pdf Xchange “

    Oups ! 😉

    #75851
    michel c.
    Participant

    Non, mon script n’est pas bon, je viens de mettre ça en fonction et j’ai modifié les scripts ainsi mais ça ne fonctionne pas…

    Je ne vois pas ou ça coince…

    function addLink(a) {
    var nomBoutons=[];
    for (var k=0; k<10; k++) nomBoutons.push(this.getField("LinkT."+a+"."+k).buttonGetCaption());
    for (var k=0; k<10; k++) {
    if (this.getField("LinkT."+a+"."+k).buttonGetCaption()=="...") break;
    }
    if (k==10) app.alert("Tous les boutons renvoient à une URL.",3);
    //
    var bDialogue={
    initialize: function(bDialogue) {
    this.cbInit=true;
    bDialogue.enable({url0: true});
    this.loadDefaults(bDialogue);
    },
    loadDefaults: function(bDialogue) {
    bDialogue.load({
    cb00: false,
    rd00: true,
    url0: "http://www.",
    });
    bDialogue.insertEntryInList({"menu":{"- Indices -": 0}});
    bDialogue.insertSeparatorEntryInList("menu");
    for (var i=0; i<10; i++) {
    if (i!=k) var par=-1;
    else var par=1;
    eval("bDialogue.insertEntryInList({\"menu\":{\""+i+"\": "+(par*(i+1))+"}});");
    }
    },
    cb00: function(bDialogue) {
    this.cbInit=!this.cbInit;
    bDialogue.enable({init: this.cbInit});
    },
    quelBtRd: function (oRslt) {
    for (var i=0; i<=1; i++) {
    if (oRslt["rd0"+i]) {
    switch (i) {
    case 0:
    resBtRd="Non";
    break;
    case 1:
    resBtRd="Oui";
    }
    }
    };
    return resBtRd;
    },
    validate: function(bDialogue) {
    var oRslt=bDialogue.store();
    var elements=bDialogue.store()["menu"];
    for (var i in elements) {
    if (elements>0) indice=i;
    }
    if (indice=="- Indices -") {
    app.alert("Veuillez sélectionner l'indice d'un champ;.",3);
    return false;
    } else {
    initialiser=oRslt["cb00"];
    if (initialiser) {
    texteBouton="...";
    texteURL="";
    return true;
    } else {
    texteBouton=oRslt["nmbt"];
    var testOK0=true;
    if (!/^(\w|\W)+( (\w|\W)+)*$/.test(texteBouton)) var testOK0=false;
    if (!testOK0) app.alert("Veuillez indiquer un nom pour le bouton.",3);
    var testOK1=true;
    texteURL=oRslt["url0"];
    if (!/^(https?:\/\/)?([\w-]+(\.[\w-]+)+)(:\d+)?(\/[^\s]*)?$/i.test(texteURL)) var testOK1=false;
    if (!testOK1) app.alert("Veuillez renseigner une URL correcte.",3);
    cAc=this.quelBtRd(oRslt);
    if (nomBoutons[indice]!="...") {
    if (cAc=="Non") {
    app.alert("Le bouton d'indice \""+indice+"\" est déjà renseigné.",3);
    return false;
    } else {
    var reponse=app.alert("Le bouton d'indice \""+indice+"\" est déjà renseigné.\rSouhaitez-vous réellement le modifier ?",3,2);
    if (reponse==3) return false;
    }
    }
    var testOK=testOK0 && testOK1;
    return testOK;
    }
    }
    },
    description: {
    name: "Bouton vers URL",
    first_tab: "cb00",
    elements: [
    {
    type: "cluster", //
    elements: [
    {
    type: "static_text",
    name: "Indice du bouton",
    font: "dialog",
    bold: true,
    },
    {
    type: "popup",
    item_id: "menu",
    alignment: "align_fill",
    //width: 150,
    },
    {
    type: "check_box",
    alignment: "align_center",
    item_id: "cb00",
    name: " Réinitialiser le bouton",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "cluster",
    item_id: "init",

    elements: [
    {
    type: "static_text",
    name: "Texte pour le bouton",
    font: "dialog",
    bold: true,
    },
    {
    type: "edit_text",
    item_id: "nmbt",
    alignment: "align_fill",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "static_text",
    name: "URL à atteindre",
    font: "dialog",
    bold: true,
    },
    {
    type: "edit_text",
    item_id: "url0",
    alignment: "align_fill",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "static_text",
    name: "Modifier le bouton si renseigné ?",
    font: "dialog",
    bold: true,
    },
    {
    type: "view",
    alignment: "align_center",
    align_children: "align_row",
    elements: [
    {
    type: "radio",
    group_id: "gr00",
    item_id: "rd00",
    name: " Non",
    },
    {
    type: "radio",
    group_id: "gr00",
    item_id: "rd01",
    name: " Oui",
    },
    ]
    },
    ]
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "ok_cancel",
    },
    ]
    },
    ]
    }
    };
    if("ok"==app.execDialog(bDialogue)){
    if (initialiser) {
    this.getField("LinkT.1."+indice).setAction("MouseUp","//");
    this.getField("LinkT.1."+indice).buttonSetCaption("...");
    this.getField("LinkT.1."+indice).fillColor=color.ltGray;
    } else {
    this.getField("LinkT.1."+indice).setAction("MouseUp","app.launchURL(\""+texteURL+"\");");
    this.getField("LinkT.1."+indice).buttonSetCaption(texteBouton);
    this.getField("LinkT.1."+indice).fillColor=color.green;
    }
    }
    }

    Attachments:
    You must be logged in to view attached files.
    #75853
    bebarth
    Maître des clés

    …comme ça je ne comprends pas pourquoi cela ne fonctionne pas !
    Dans un premier temps tu peux mettre ce script sur tous tes boutons “AjouT”.

    var ind=event.target.name.substring(event.target.name.indexOf(".")+1);
    var nomBoutons=[];
    for (var k=0; k<10; k++) nomBoutons.push(this.getField("LinkT."+ind+"."+k).buttonGetCaption());
    for (var k=0; k<10; k++) {
    if (this.getField("LinkT."+ind+"."+k).buttonGetCaption()=="...") break;
    }
    if (k==10) app.alert("Tous les boutons renvoient à une URL.",3);
    lesElements=[0,1,2,3,4,5,6,7,8,9];
    var laListe="- Indices -";
    var listeElements="var listeElements \= \{\""+laListe+"\": "+(lesElements.length+1)+",";
    for (var i=0; i<lesElements.length; i++) {
    if (i!=k) var par=-1;
    else var par=1;
    listeElements+="\""+lesElements+"\": "+(par*(i+1)).toString()+",";
    }
    var listeElements=listeElements.substring(0, listeElements.length-1);
    listeElements+="\}";
    eval(listeElements);
    //
    var bDialogue={
    initialize: function(bDialogue) {
    this.cbInit=true;
    bDialogue.enable({url0: true});
    this.loadDefaults(bDialogue);
    },
    loadDefaults: function(bDialogue) {
    bDialogue.load({
    cb00: false,
    rd00: true,
    url0: "http://www.",
    menu: listeElements,
    });
    },
    cb00: function(bDialogue) {
    this.cbInit=!this.cbInit;
    bDialogue.enable({init: this.cbInit});
    },
    quelBtRd: function (oRslt) {
    for (var i=0; i<=1; i++) {
    if (oRslt["rd0"+i]) {
    switch (i) {
    case 0:
    resBtRd="Non";
    break;
    case 1:
    resBtRd="Oui";
    }
    }
    };
    return resBtRd;
    },
    validate: function(bDialogue) {
    var oRslt=bDialogue.store();
    var elements=bDialogue.store()["menu"];
    for (var i in elements) {
    if (elements>0) indice=i;
    }
    if (indice=="- Indices -") {
    app.alert("Veuillez sélectionner l'indice d'un champ;.",3);
    return false;
    } else {
    initialiser=oRslt["cb00"];
    if (initialiser) {
    texteBouton="...";
    texteURL="";
    return true;
    } else {
    texteBouton=oRslt["nmbt"];
    var testOK0=true;
    if (!/^(\w|\W)+( (\w|\W)+)*$/.test(texteBouton)) var testOK0=false;
    var testOK1=true;
    texteURL=oRslt["url0"];
    if (!/^(https?:\/\/)?([\w-]+(\.[\w-]+)+)(:\d+)?(\/[^\s]*)?$/i.test(texteURL)) var testOK1=false;
    cAc=this.quelBtRd(oRslt);
    if (nomBoutons[indice]!="...") {
    if (cAc=="Non") {
    app.alert("Le bouton \"LinkT."+ind+"."+indice+"\" est déjà renseigné.",3);
    return false;
    } else {
    var reponse=app.alert("Le bouton \"LinkT."+ind+"."+indice+"\" est déjà renseigné.\rSouhaitez-vous réellement le modifier ?",3,2);
    if (reponse==3) return false;
    }
    }
    if (!testOK0) app.alert("Veuillez indiquer un nom pour le bouton.",3);
    else if (!testOK1) app.alert("Veuillez renseigner une URL correcte.",3);
    var testOK=testOK0 && testOK1;
    return testOK;
    }
    }
    },
    description: {
    name: "Bouton vers URL",
    first_tab: "cb00",
    elements: [
    {
    type: "cluster", //
    elements: [
    {
    type: "static_text",
    name: "Indice du bouton",
    font: "dialog",
    bold: true,
    },
    {
    type: "popup",
    item_id: "menu",
    alignment: "align_fill",
    //width: 150,
    },
    {
    type: "check_box",
    alignment: "align_center",
    item_id: "cb00",
    name: " Réinitialiser le bouton",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "cluster",
    item_id: "init",

    elements: [
    {
    type: "static_text",
    name: "Texte pour le bouton",
    font: "dialog",
    bold: true,
    },
    {
    type: "edit_text",
    item_id: "nmbt",
    alignment: "align_fill",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "static_text",
    name: "URL à atteindre",
    font: "dialog",
    bold: true,
    },
    {
    type: "edit_text",
    item_id: "url0",
    alignment: "align_fill",
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "static_text",
    name: "Modifier le bouton si renseigné ?",
    font: "dialog",
    bold: true,
    },
    {
    type: "view",
    alignment: "align_center",
    align_children: "align_row",
    elements: [
    {
    type: "radio",
    group_id: "gr00",
    item_id: "rd00",
    name: " Non",
    },
    {
    type: "radio",
    group_id: "gr00",
    item_id: "rd01",
    name: " Oui",
    },
    ]
    },
    ]
    },
    {
    type: "gap",
    height: 5
    },
    {
    type: "ok_cancel",
    },
    ]
    },
    ]
    }
    };
    if("ok"==app.execDialog(bDialogue)){
    if (initialiser) {
    this.getField("LinkT."+ind+"."+indice).setAction("MouseUp","//");
    this.getField("LinkT."+ind+"."+indice).buttonSetCaption("...");
    this.getField("LinkT."+ind+"."+indice).fillColor=color.ltGray;
    } else {
    this.getField("LinkT."+ind+"."+indice).setAction("MouseUp","app.launchURL(\""+texteURL+"\");");
    this.getField("LinkT."+ind+"."+indice).buttonSetCaption(texteBouton);
    this.getField("LinkT."+ind+"."+indice).fillColor=color.green;
    }
    }

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #75855
    michel c.
    Participant

    Merci beaucoup, c’est impec !

    #75856
    bebarth
    Maître des clés

    Si je trouve, je te dirai pourquoi ça ne fonctionne pas en fonction, mais pour l’instant je ne sais pas !!!

    @+
    😎

    #75857
    michel c.
    Participant

    En tout cas, c’est déjà super. Ça me fait gagner un temps fou.

    Merci beaucoup

     

Affichage de 24 réponses de 1 à 24 (sur un total de 24)
  • Vous devez être connecté pour répondre à ce sujet.