abracadabraPDF › Forums › PDF – Général › Action pour ouvrir une page web par script
- Ce sujet contient 24 réponses, 3 participants et a été mis à jour pour la dernière fois par
michel c., le il y a 10 heures et 42 minutes.
-
CréateurSujet
-
18 mars 2025 à 12:03 #75717
michel c.
ParticipantBonjour, 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
-
CréateurSujet
-
AuteurRéponses
-
18 mars 2025 à 12:14 #75718
Merlin
Maître des clésBonjour
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.18 mars 2025 à 13:48 #75720michel c.
ParticipantMerci 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.18 mars 2025 à 14:16 #75722michel c.
ParticipantJe 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.18 mars 2025 à 14:19 #75724bebarth
Maître des clésbonjour,
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.19 mars 2025 à 00:35 #75731Merlin
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 :
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.
😉
21 mars 2025 à 09:13 #75771michel c.
ParticipantMerci 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.21 mars 2025 à 20:28 #75782bebarth
Maître des clésbonjour,
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.22 mars 2025 à 16:41 #75795michel c.
ParticipantMerci 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
23 mars 2025 à 16:53 #75799michel c.
ParticipantJe 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.24 mars 2025 à 11:23 #75811bebarth
Maître des clésbonjour,
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…
@+
😎24 mars 2025 à 13:04 #75815michel c.
ParticipantSuper, merci. D’ici là je vais chercher pour voir si j’y arrive.
27 mars 2025 à 20:37 #75829bebarth
Maître des clésbonjour,
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…@+
😎28 mars 2025 à 13:49 #75831michel c.
ParticipantNon, 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.28 mars 2025 à 14:18 #75833bebarth
Maître des clésbonjour,
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.28 mars 2025 à 14:54 #75836Merlin
Maître des clésbebarth, PDF Expert gère nativement les boites de dialogue (AcroDialog).
Michel va te mettre la misère.
😉
28 mars 2025 à 18:42 #75839bebarth
Maître des clésPDF Expert gère nativement les boites de dialogue (AcroDialog).
Je n’avais pas vérifié avec PDF Expert et effectivement :
- Il ne trouve pas le premier indice disponible
- Il ne comprend pas “insertSeparatorEntryInList”
@+
😎Attachments:
You must be logged in to view attached files.28 mars 2025 à 19:34 #75844bebarth
Maître des clésJ’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.29 mars 2025 à 09:37 #75847michel c.
ParticipantMerci 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.29 mars 2025 à 11:53 #75850Merlin
Maître des clés“Je n’ai pas pdf expert mais pdf Xchange “
Oups ! 😉
29 mars 2025 à 12:12 #75851michel c.
ParticipantNon, 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.29 mars 2025 à 19:13 #75853bebarth
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.30 mars 2025 à 08:34 #75855michel c.
ParticipantMerci beaucoup, c’est impec !
30 mars 2025 à 18:36 #75856bebarth
Maître des clésSi je trouve, je te dirai pourquoi ça ne fonctionne pas en fonction, mais pour l’instant je ne sais pas !!!
@+
😎31 mars 2025 à 12:16 #75857michel c.
ParticipantEn tout cas, c’est déjà super. Ça me fait gagner un temps fou.
Merci beaucoup
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.