"Benoît L." <
benoit@com.invalid> wrote:
Cela veut dire qu'on ne peut plus saisir de texte avec un ou des retour
chariot ?
Effectivement, si on active le raccourci clavier du bouton par défaut, ça
empêche de rajouter une ligne dans le texte.
Pas possible de concilier les deux, et c'est dommage
On ne peut d'ailleurs pas saisir de texte dans ton script.
Si, si, il suffit de mettre le curseur 'd'insertion à l'endroit voulu et l'on
rentre, efface, tout le texte que l'on veut avant de passer au bouton de copie.
En l'état, quoi que fasse l'utilisateur dans le champ, (même en effacer tout
le contenu) ce qui sera collé dans le P-P est le GMP original (hors l'option
du délimiteur par l'autre bouton)
Si tu veux permettre que la modification à la volée soit prise en compte
dans le P-P (sans modifier la base de données), il faut adapter la fin de l
a boucle /repeat/ comme suit (attention à la coupure de la ligne la plus longue)
**********************************
set {buttonName, controlsResults} to display enhanced window "SignAuPif" acc view width accViewWidth acc view height theTop acc view controls {theField, boldLabel} buttons theButtons initial position
{0, 0} with align cancel button
if buttonName is "Nouveau tirage" then
-- recommencer la boucle de tirage au sort
else if buttonName contains "avec" then -- copier en l'état
set the clipboard to (controlsResults's item 1 as text)
exit repeat --quitter la boucle
else -- supprimer le délimiteur de signature et copier
try -- zapper erreur s'il reste moins de 5 caractères dans le champ
set the clipboard to (text 5 thru -1 of (controlsResults's item 1 as text as text))
end try
exit repeat
end if
end repeat
***********************************
Bien sûr il te suffit de désactiver la ligne de vidage du P-P au début de
la boucle repeat, si tu estimes que ce n'est pas correct ;-)
que le code est globalement bien plus simple
Oui, mais on perd quelques trucs au passage.
Rien qui ne puisse se remettre sans difficulté
Je souhaite pouvoir modifier la liste (modification ou ajout*,
suppression) sans passer par une deuxième boîte de dialogue. Il faudrait
que la zone de texte ne soit pas sélectionnée/active par défaut (il faut
que je trouve où modifier ça).
un quatrième bouton peut faire ça, mais il faut en écrire le code ;-)
Aucune importance que le texte soit présélectionné et de toute façon ce
ne sera pas le bouton par défaut
* Là j'ai un problème d'interface, c'est un bouton qui doit être grisé
tant que l'utilisateur n'a pas touché à la citation.
Pas faisable (à ma connaissance avec les Dialog Tool Kit), mais d'aucun
intérêt : ce ne sera pas le bouton par défaut
Il peut la supprimer, il peut la « modifier » même sans modification,
Donc appliquer la version de script ci-dessus
n'ai pas envie qu'il puisse la dupliquer dans la liste. Quel intérêt ?
par contre ajout d'une GMP (modifiée ou créé) ou sa supression dans la base
de texte originale, là ça va devenir bien plus compliqué car il va falloir
scanner toute la base existante à comparer avec la citation impliquée soit à
modifier, soit à ajouter, soit à supprimer puis raffraîchir le texte.
C'est faisable, soit en pur AppleCript, soit avec des commandes Shell,
mais dans tous les cas il va y avoir un algorithme pointu à écrire et surtout
un gros gros boulot de déboggage !
En plus, expliquer à l'utilisateur qu'il doit respecter un minimum de syntaxe
sinon son intervention va mettre la base existante en vrac, je ne vois pas
comment tu vas t'y prendre.
Bon courage pour la suite
-- J. B.