bonuscad Posté(e) le 16 août 2004 Posté(e) le 16 août 2004 Bonjour, J'aurais besoin de redéfinir la command "_PLOT" et "_PAGESETUP".Je sais me servir de la commande "_REDEFINE", là n'est pas le problème. Mon problème est que si la commande imprimer du menu fichier ou l'icône impression appellent bien la commande _PLOT, ce n'est pas le cas du bouton imprimer de la commande "_PAGESETUP" ou par le click droit sur un onglet de présentation, qui eux appellent la commande "_.PLOT" :casstet: Est ce que quelqu'un saurait comment je pourrais "shunter" cet appel de commande non redéfinissable (c'est à dire précédé d'un point) Mon but final étant d'insérer une procédure avant l'appel de l'impression. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Serge Posté(e) le 16 août 2004 Posté(e) le 16 août 2004 Salut, Malheureusement, cela ne se fait pas car cela enlèverait le sens du point.Par contre, quel est le besoin qui ne pourrait être comblé par un autre moyen. Est-ce pour ouvrir une boite de dialogue et permettre le choix d'une imprimante? Serge
bonuscad Posté(e) le 17 août 2004 Auteur Posté(e) le 17 août 2004 Salut Serge, J'ai bien compris que cela ne pouvait se faire. ;) D'aiileur à mon désespoir je comprend pas pourquoi l'appel à la commande est différente (sans le point, et avec) suivant où on la pioche dans les menu déroulant, contextuel ou icone.Cela enlève complétement l'intérêt de la commande "_.REDEFINE" :( Je ne veux en aucun cas modifier la commande "_PLOT" mais simplement éxecuter une procédure de mise à jour avant l'impression. Seul moyen pour moi d'être sur de la validité des objets imprimés. Bien sur cette mise à jour peut être faite manuellement avant, mais tellement facilement "zappé" par l'utilisateur que je cherchais un moyen plus sûr. Alors une idée géniale pour contourner ce problème ? :P Moi je sèche :( Bruno Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
bruno_l Posté(e) le 26 août 2004 Posté(e) le 26 août 2004 encore moi avec les reacteurs, decidement c'est une obsetion !!mais avec eux on peut executer une action avant le lancement d'une commandeavec vlr-vommand-reactor :vlr-commandwilstart
bonuscad Posté(e) le 26 août 2004 Auteur Posté(e) le 26 août 2004 Peut être une solution, mais je ne suis pas encore très famillier avec les réacteurs. D'après ce que j'ai pus en saisir, il s'agit d'attacher des évenements à des objet graphique lors qu'ils sont manipulés.Hors dans mon cas, je pense que c'est plutôt l'inverse. Ce serait un évenement qui devrait agir sur un objet. Si c'est faisable avec les réacteurs, pourrait-tu me donner un exemple de code simple afin de mieux comprendre le fonctionnement? Merci en tout cas de ta réponse :D Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
bruno_l Posté(e) le 26 août 2004 Posté(e) le 26 août 2004 exemple de code ;;;initialisation;;; (vl-load-com)(vlr-remove-all);;; fonction cleanreac;;; nettoyage de tous les reacteurs (defun CLEANREAC () (mapcar 'vlr-remove-all '(:vlr-acdb-reactor :vlr-editor-reactor :vlr-linker-reactor :vlr-object-reactor ) ) ;_ Fin de mapcar) ;_ Fin de defun;;;;;;fin initialisation ;;;definition des actions pour les reacteurs;;;(defun CHOIX_REAC (A B) (setq test b) (if (= "PLOT" (car b)) (alert "tu veut vraiment imprimer ? ")) ) ;_ Fin de defun(defun CHOIX_REAC2 (A B) (setq test b) (if (= "PLOT" (car b)) (alert "tu ne sait vraiment pas ce que tu veut toi !!")) ) ;;nettoyage d'eventuels reacteurs residuels(CLEANREAC);;;initialisation des reacteurs(vlr-command-reactor NIL '((:vlr-commandwillstart . CHOIX_REAC)))(vlr-command-reactor nil '((:vlr-commandcancelled . CHOIX_REAC2))) ;|«Visual LISP© Format Options»(72 2 40 2 T "Fin de " 80 9 1 2 1 T T nil T);*** NE PAS AJOUTER de texte au-dessous du commentaire! ***|; si on invoque la commande plotune case de dialogue apparait avant le dialogue d'impressionensuite si on annule le dialogue d'impression une autre case apparait
Serge Posté(e) le 26 août 2004 Posté(e) le 26 août 2004 bruno_l, Juste une petite remarque. Dans un environnement où d'autres applications définissent des réacteurs, tu risque de les effacer. Au lieu de vlr-remove-all, tu peux stocker le réacteur dans une variable, ce qui te permettra de faire un nettoyage spécifique. Exemple:(if eacu_layoutSysVar::commandReactor (vlr-remove eacu_layoutSysVar::commandReactor))(setq eacu_layoutSysVar::commandReactor (vlr-editor-reactor nil '( (:vlr-CommandWillStart . eacu_layoutSysVar:CommandWillStartEvent) (:vlr-CommandEnded . eacu_layoutSysVar:CommandEndedEvent) (:vlr-CommandCancelled . eacu_layoutSysVar:CommandCancelledEvent) (:vlr-CommandFailed . eacu_layoutSysVar:CommandCancelledEvent) ))) Serge
bruno_l Posté(e) le 26 août 2004 Posté(e) le 26 août 2004 ca c'est une eventualité qui ne m'avais meme pas efleuré !!!bonne remarque, je note, merci
bonuscad Posté(e) le 27 août 2004 Auteur Posté(e) le 27 août 2004 Merci de la contribution de Bruno et Serge, J'ai réussi à faire un test en incorporant la fonction qui m'interressait, et cela fonctionne. Il ne me reste plus qu'a décortiquer pour bien comprendre, surtout la notion de nettoyage ciblée de Serge. Bonne solution, que je vais exploitée :P Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
bonuscad Posté(e) le 30 août 2004 Auteur Posté(e) le 30 août 2004 Bonjour, J'ai essayé de me pencher sur les réacteursDonc j'ai bien réussi à faire fonctionner l'exemple simple, mais j'avoue que des zones d'ombre persistent, malgré l'exécution pas à pas de l'exemple. (Je trouve que le résultat des fonctions n'est pas transparent et n'aide pas à la compréhension) Est ce que quelqu'un connaitrait un lien traitant du B.A.BA (ou pour les nuls :D ) des réacteurs.De préférence en Français... Merci Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Serge Posté(e) le 30 août 2004 Posté(e) le 30 août 2004 Bruno, Si je puis me permettre une pub:http://www.cadnovation.com/devcui/fr/EU/uamj.asp (aujourd'hui)http://www.cadnovation.com/fr/EU/uamj.asp (à partir du 31 aout ou du 1er septembre) D'autre part, j'avais déjà fait un petit sondage pour savoir si un manuel de Lisp serait désiré. Je n'avais reçu qu'une réponse. Je crois que la plupart des gens en veulent, mais en autant que ça soit gratis. Est-ce que je me trompe? Serge
Serge Posté(e) le 30 août 2004 Posté(e) le 30 août 2004 Il doit y avoir un mauvais caractère dans ma réponse. Notre sitre sera prêt demain ou après demain. Serge
Invité Patrick Posté(e) le 30 août 2004 Posté(e) le 30 août 2004 Problème de caractère corrigé, un < puis un a sont interprétés comme le début d'une balise de lien URL...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant