Applescript : text returned dialog box with buttons

spinoops

Membre confirmé
9 Janvier 2007
19
0
38
Bonjour,

J'ai une petite question sûrement toute bête, mais je n'arrive pas à trouver une solution. J'ai pourtant regardé pas mal de tuto mais l'utilisation d'une boîte de dialogue avec retour de texte se résume toujours à un simple bouton OK.

Or moi, j'aimerais utiliser plusieurs boutons au retour de ma boîte de dialogue, seulement, il semblerait qu'il y ait un conflit entre le "button returned" et le "text returned".

Voici un exemple :

Bloc de code:
display dialog "Veuillez entrer le chemin du point de partage." default answer "afp://" buttons {"Annuler", "Suivant"} default button 2

--la variable qui devrait retourner le texte
set vText to text returned of result
--la variable qui devrait retourner le bouton
set vButton to button returned of result

if vButton = "Suivant" then
	
	display dialog "c'est bon " & vText
	
end if

Donc dans mon cas, si j'écris mon chemin et je clique sur suivant, une nouvelle fenêtre devrait s'ouvrir. Si je presse sur annuler, la fenêtre devrait se fermer. (Dans mon vrai code, j'ai une boucle repeat qui, si je clique sur annuler, retourne au début de code.) Cependant, dans cet exemple, j'ai justement une erreur de conflit de type : "Il est impossible d’obtenir button returned of "afp://"."

Si quelqu'un peut m'aider, je pense plutôt à une erreur de syntaxe...

Merci d'avance, @ bientôt :)
 
Bonjour,

il semblerait qu'il y ait un conflit entre le "button returned" et le "text returned".

Bonjour

Essais ce code avec ton display dialog.

Bloc de code:
set {vText, vButton} to {text returned, button returned} of (display dialog "Veuillez entrer le chemin du point de partage." default answer "afp://" buttons {"Annuler", "Suivant"} default button 2)
if vButton is "Annuler" then return --Sécurité

@+
 
Dernière édition:
  • J’aime
Réactions: spinoops
J'ai encore juste une question :

On peut prendre comme exemple le script vu plus haut mais j'ai ce problème avec n'importe quel Applescript.

En effet, lorsque je veux fermer un "display dialog" avec le bouton croix rouge en haut à gauche, c'est soit mon application Applescript qui plante totalement lorsque j'exécute mon script ou dans le cas d'une compilation, c'est mon finder qui se relance comme s'il avait planté.

Y'a-t-il une manière d'utiliser la fermeture de cette manière sans avoir de plantée?

Je ne peux malheureusement pas configurer un bouton "Cancel", car comme en Applescript il n'est possible que de placer 3 boutons max sur un "display dialog", tous mes boutons sont utilisés.

Merci d'avance
 
J'ai encore juste une question :

Je ne peux malheureusement pas configurer un bouton "Cancel", car comme en Applescript il n'est possible que de placer 3 boutons max sur un "display dialog", tous mes boutons sont utilisés.

Merci d'avance
Bonjour

Et faire croire que tes 3 boutons peuvent quitter le code?

En utilisant le contenu de la variable vText comme quatrième bouton, si pas de modifications alors quitte.

Exemple:

Bloc de code:
set {vText, vButton} to {text returned, button returned} of (display dialog "Veuillez entrer le chemin du point de partage." default answer "afp://" buttons {"Premier", "Deuxième", "Troisième"} default button 2)

if vText is "afp://" then return

display dialog vText

PS: Pour utiliser 5 où plus de boutons, il faut alors passer par un choose from list pour faire simple.

@+
 
Dernière édition:
Je dois être pomme, mais la syntaxe me semblait couler de source pour le code suivant :

Bloc de code:
repeat
	
	set nameList to {"Envoyer vers serveur", "Restaurer", "Configuration"}
	
	set {textList, buttonList} to {text returned, button returned} of (choose from list the nameList with prompt "Choose : " with title "Choose")
	
	if buttonList is "OK" then
		
		if textList is "Envoyer vers serveur" then
			
			display dialog "C'est l'envoi vers le serveur"
			
		else if textList is "Restaurer" then
			
			display dialog "C'est la restauration"
			
		else if textList is "Configuration" then
			
			display dialog "C'est la configuration"
			
		end if
		
	else
		
		exit repeat
		
	end if
	
end repeat

Je me retrouve donc avec une erreur du type :

error "Il est impossible d’obtenir text returned of {\"Envoyer vers serveur\"}." number -1728 from text returned of {"Envoyer vers serveur"}

Je n'arrive pas à comprendre cette erreur... Est-ce le contenu de ma variable text returned qui pose problème avec les caractères "{\"?

Merci d'avance

PS : Le repeat peut sembler ne servir à rien dans ce code... Mais il fait partie de mon programme principal. C'est la raison pour laquelle je l'ai inséré dans cet exemple.
 
Je n'arrive pas à comprendre cette erreur... Est-ce le contenu de ma variable text returned qui pose problème avec les caractères "{\"?

Merci d'avance

PS : Le repeat peut sembler ne servir à rien dans ce code... Mais il fait partie de mon programme principal. C'est la raison pour laquelle je l'ai inséré dans cet exemple.

Bonsoir

Tu n'utilise pas un display dialog.

Dans un choose from list c'est les lignes de texte qui servent de bouton.

Le bouton OK c'est juste pour valider ta sélection.

Regarde ce code modifié pour voir si ça fonctionne chez toi.

Bloc de code:
repeat
	
	set nameList to {"Envoyer vers serveur", "Restaurer", "Configuration"}
	
	set choix to (choose from list the nameList with prompt "Choose : " with title "Choose") as string
	if choix is "false" then exit repeat -- Bouton Annuler
	
	if choix is "Envoyer vers serveur" then
		
		display dialog "C'est l'envoi vers le serveur"
		
	else if choix is "Restaurer" then
		
		display dialog "C'est la restauration"
		
	else if choix is "Configuration" then
		
		display dialog "C'est la configuration"
		
	end if
	
end repeat

@+
 
Super ça marche :) Merci !

Par contre, j'ai du mal à trouver de la doc concrète (notamment pour les syntaxes) sur internet. Il y a bien un lien chez Apple qui apparaît toujours mais ça semble mort... Je vais peut-être me renseigner pour un bouquin éventuellement.