Applescript - Erreur lors de l'affichage d'un dialogue

Le
Lionel Mychkine
Soit le code suivant :

tell application "Finder"
display dialog "Mon message personnalisé" with icon stop ¬
buttons {"OK"} default button 1
end tell

Le dialogue s'affiche avec un seul bouton (rouge) dans la barre de
titre. Curieux, j'ai cliqué sur ce bouton pour voir ce qui se passait.
En fait la fenêtre de dialogue se ferme et il ne se passe rien; le
script continue de s'exécuter comme si aucune action n'était survenue.
Pour y mettre fin il faut le forcer à quitter.

J'ai tenté d'intercepter une éventuelle erreur en utilisant
l'instruction try mais cela n'a rien changé.

Comment, dans le script, intercepter un click sur le bouton de clôture
du dialogue ?

--
Lionel Mychkine
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick Stadelmann
Le #21385421
In article Lionel Mychkine
Soit le code suivant :

tell application "Finder"
display dialog "Mon message personnalisé" with icon stop ¬
buttons {"OK"} default button 1
end tell

Le dialogue s'affiche avec un seul bouton (rouge) dans la barre de
titre.



???

Ici en 10.5.8 le dialogue affiche l'icône "Stop", le message et un
bouton "OK" qui est le bouton par défaut.

Comme ici, pas sans le bouton "Cancel".

Curieux, j'ai cliqué sur ce bouton pour voir ce qui se passait.
En fait la fenêtre de dialogue se ferme et il ne se passe rien; le
script continue de s'exécuter comme si aucune action n'était survenue.
Pour y mettre fin il faut le forcer à quitter.



Pas normal.

Comment, dans le script, intercepter un click sur le bouton de clôture
du dialogue ?



Le clic ferme le dialgoue, et "display dialog" retourne un record
contenant le nom du bouton pressé. Comme c'est l'unique valeur de retour
dans ton script, elle s'affiche dans la section "Result" de l'Editeur de
Scripts :

{button returned:"OK"}

Pour traiter la valeur de retour, on l'assigne à une variable :

set r to display dialog ...
if button returned of r = "OK" then beep

Patrick
--
Patrick Stadelmann
Lionel Mychkine
Le #21385671
In article
Patrick Stadelmann
> Le dialogue s'affiche avec un seul bouton (rouge) dans la barre de
> titre.

???



Je me suis peut-être mal exprimé, le bouton rouge n'est pas la seule
chose affichée. Le dialogue affiche l'icône Stop, le texte, le bouton
"OK" et un seul bouton dans la barre de titre : le bouton rouge de
fermeture de la fenêtre de dialogue.

> Comment, dans le script, intercepter un click sur le bouton de clôture
> du dialogue ?

Le clic ferme le dialgoue, et "display dialog" retourne un record
contenant le nom du bouton pressé. Comme c'est l'unique valeur de retour
dans ton script, elle s'affiche dans la section "Result" de l'Editeur de
Scripts :

{button returned:"OK"}



Désolé mais je crois que tu m'as lu un peu vite. Il n'y a pas de bouton
"OK" ou autre pressé puisque j'ai cliqué sur le bouton de fermeture de
la fenêtre de dialogue dans la barre de titre. Or je n'arrive pas à
intercepter cette action.

--
Lionel Mychkine
Patrick Stadelmann
Le #21385731
In article Lionel Mychkine
In article
Patrick Stadelmann
> > Le dialogue s'affiche avec un seul bouton (rouge) dans la barre de
> > titre.
>
> ???

Je me suis peut-être mal exprimé, le bouton rouge n'est pas la seule
chose affichée. Le dialogue affiche l'icône Stop, le texte, le bouton
"OK" et un seul bouton dans la barre de titre : le bouton rouge de
fermeture de la fenêtre de dialogue.



Chez moi il n'y a aucun bouton dans le barre de titre. La fenêtre est
semblable à celle-ci, mais sans le bouton "Cancel" :

http://www.devdaily.com/blog-files/dialog-stop-icon.jpg

Désolé mais je crois que tu m'as lu un peu vite. Il n'y a pas de bouton
"OK" ou autre pressé puisque j'ai cliqué sur le bouton de fermeture de
la fenêtre de dialogue dans la barre de titre. Or je n'arrive pas à
intercepter cette action.



Il ne devrait pas y avoir de bouton de fermeture, un tel dialogue se
ferme via l'un des "vrais" boutons dans la fenêtre. S'il y en avait tout
de même un, il devrait logiquement être interprété comme une pression
sur le bouton "Annuler" et générer une erreur -128 (user canceled) que
l'on récupère avec des blocs "try / on error".

Tu est sous quelle version de Mac OS X ?

Patrick
--
Patrick Stadelmann
Lionel Mychkine
Le #21385811
In article
Patrick Stadelmann
Chez moi il n'y a aucun bouton dans le barre de titre. La fenêtre est
semblable à celle-ci, mais sans le bouton "Cancel" :

http://www.devdaily.com/blog-files/dialog-stop-icon.jpg



J'ai exactement la même chose, sans le bouton Cancel en effet, mais avec
le bouton de fermeture dans la barre de titre ;-(

Il ne devrait pas y avoir de bouton de fermeture, un tel dialogue se
ferme via l'un des "vrais" boutons dans la fenêtre. S'il y en avait tout
de même un, il devrait logiquement être interprété comme une pression
sur le bouton "Annuler" et générer une erreur -128 (user canceled) que
l'on récupère avec des blocs "try / on error".

Tu est sous quelle version de Mac OS X ?



J'utilise un Powermac G5 sous MacOS 10.5.8.

J'ai essayé d'intercepter une erreur lors de l'affichage du dialogue
mais rien n'est intercepté :

try
display dialog "Mon message personnalisé" with icon stop ¬
buttons {"OK"} default button 1
on error
return
end try

--
Lionel Mychkine
Lionel Mychkine
Le #21385801
L'Applescript dont il a été question a été compilé en tant
qu'application Universal dans l'Editeur de Scripts. Lorsque je la
compile en tant qu'application "Classic", tout rentre dans l'ordre et le
bouton de fermeture dans la barre de titre du dialogue n'apparaît plus !

--
Lionel Mychkine
laurent.pertois
Le #21385861
Lionel Mychkine
Je me suis peut-être mal exprimé, le bouton rouge n'est pas la seule
chose affichée. Le dialogue affiche l'icône Stop, le texte, le bouton
"OK" et un seul bouton dans la barre de titre : le bouton rouge de
fermeture de la fenêtre de dialogue.



Sur un 10.6.2 je n'ai pas le bouton de fermeture de la fenêtre, je ne
peux la faire disparaître qu'avec le bouton OK.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.
g4fleurot
Le #21386551
Laurent Pertois
Sur un 10.6.2 je n'ai pas le bouton de fermeture de la fenêtre, je ne
peux la faire disparaître qu'avec le bouton OK.



Tiens donc !
Je viens de constater que je l'ai ce bouton rouge.

J'ai mon iMac 2,5" avec MacOS x 10.6.2 depuis mi-novembre et je démarre
l'ordinateur tous les matins avec un AppleScript (que j'utilise depuis
des années) et je ne l'avais pas remarqué, car j'appuie sur l'extème
droite du clavier en bas pour continuer ou esc en haut à gauche pour
annuler.
En cliquant sur ce bouton la fenêtre se ferme, mais le script est bloqué
à ce niveau et sans rien faire, au bout d'un certain temps (assez long -
2 minutes) apparaît un message indiquant :
Erreur d'AppleScript
Erreur dans Finder : Délai dépassé pour un AppleEvent
Le résultat dans la fenêtre du script en le lançant par l'éditeur est :
error "Erreur dans Finder : Délai dépassé pour un AppleEvent." number
-1712.

Autrement,
tell application "Finder"
display dialog "Mon message personnalisé"
end tell
tout bête donne :

Il y aurait donc bien un bug qui crée le bouton rouge.
--
Gérard FLEUROT
Lionel Mychkine
Le #21386621
In article (Laurent Pertois) wrote:

Sur un 10.6.2 je n'ai pas le bouton de fermeture de la fenêtre, je ne
peux la faire disparaître qu'avec le bouton OK.



En effet. C'est un bug sur les machines PPC qui se produit uniquement
quand on compile le script en tant qu'application Universal. C'est quand
même tordu !

J'ai pris l'option "Universal"sur tous les scripts que j'ai écrits parce
que je prépare la migration sur une machine Intel. Avec mon PowerMac G5,
il faut que je change de machine si je veux migrer sur Snow Leopard.

--
Lionel Mychkine
g4fleurot
Le #21386841
Lionel Mychkine
C'est un bug sur les machines PPC



Pas uniquement puisque je l'ai sur un iMac Intel en MacOs X 10.6.2 et en
lançant le script à partir de l'Éditeur sans l'avoir enregistré sous
quelque forme que ce soit.

--
Gérard FLEUROT
Lionel Mychkine
Le #21386981
In article (Fleuger) wrote:

Pas uniquement puisque je l'ai sur un iMac Intel en MacOs X 10.6.2 et en
lançant le script à partir de l'Éditeur sans l'avoir enregistré sous
quelque forme que ce soit.



J'ai testé pour le coup. Effectivement, lorsque le script s'exécute dans
Script Editor, on a droit au bouton rouge. Tout rentre dans l'ordre
lorsque le script est compilé...

--
Lionel Mychkine
Publicité
Poster une réponse
Anonyme