manuk Posté(e) le 16 juin 2005 Posté(e) le 16 juin 2005 Bonjour,Je tiens à vous prévenir je suis une quiche en prog.Je pens que vous connaissez tous ce superbe compteur http://dvicad.free.fr/ZIP/compteur.zip et je souhaiterais l'améliorer.J'ai trouvé comment faire pour changer le format de nombre (décimal, scientifique, etc...) Mais je voudrais savoir comment faire pour justifier le texte (milieu, milieu droit, bas gauche,...).Je sais pas dutout comment faire pour l'intégrer au programme.Soyez sympa, je suis vraiment nul. :calim: Je l'ai rêvé, fedora l'a fait...
bonuscad Posté(e) le 16 juin 2005 Posté(e) le 16 juin 2005 Salut, Sans avoir vérifier ma modif, je changerais(if (= flag_ht 0)(command "texte" "st" nom_style position ht_style 0 lib_texte)(command "texte" "st" nom_style position 0 lib_texte)) en (if (= flag_ht 0)(command "_.text" "_style" nom_style "_justify" "_middle" position ht_style 0 lib_texte)(command "_.text" "_style" nom_style '_justify" "_middle" position 0 lib_texte)) Ceci pour que le texte soit au milieu du point fourni Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
gile Posté(e) le 16 juin 2005 Posté(e) le 16 juin 2005 Salut Manuk, Pour modifier la justification, il faut ajouter aux lignes : (command "texte" "st" nom_style position ht_style 0 lib_texte) (command "texte" "st" nom_style position 0 lib_texte) l'option Justifier et un mode (Mileu Centre par exemple) (command "_text" "_style" nom_style [surligneur]"_justify" "_mc"[/surligneur] position ht_style 0 lib_texte) (command "_text" "_style" nom_style [surligneur]"_justify" "_mc"[/surligneur] position 0 lib_texte) Il est aussi préférable d'écrire en langage international ("_text" plutôt que "texte") Bonuscad m'a coiffé au poteau, mais j'ai vérifié, çà marche. [Edité le 16/6/2005 par gile]
manuk Posté(e) le 17 juin 2005 Auteur Posté(e) le 17 juin 2005 Merci beaucoup pour vos réponses.Par contre je voulais savoir si il y avait moyen de laisser le choix de justification à l'utilisateur.Comme pour la commande txtdyn. Je l'ai rêvé, fedora l'a fait...
gile Posté(e) le 17 juin 2005 Posté(e) le 17 juin 2005 Tu peux coller le code suivant avant (setq position T) par exemple : (initget "Aligne Fixé Centre Milieu Droite HG HC HD MG MC MD BG BC BD") (setq justif (getkword "\nChoisissez une option de justification [Aligne/Fixé/Centre/Milieu/Droite/HG/HC/HD/MG/MC/MD/BG/BC/BD]: " ) ) et ensuite : (command "_text" "_style" nom_style "_justify" justif position ht_style 0 lib_texte) (command "_text" "_style" nom_style "_justify" justif position 0 lib_texte)
manuk Posté(e) le 17 juin 2005 Auteur Posté(e) le 17 juin 2005 Merci beaucoup, ça marche nickel :D :D :D Je l'ai rêvé, fedora l'a fait...
manuk Posté(e) le 17 juin 2005 Auteur Posté(e) le 17 juin 2005 Je viens de me rendre compte qu'après avoir fini ma commande compteur, la commande FILEDIA est égale à 0. Donc plus de boîte "ouvrir fichier" et "nouveau fichier".Pourtant, dans la fin du list, il y a ça ); progn(alert "Commande COMPTEUR annulée."));if (setvar "filedia" 1)(setvar "cmddia" 1) (princ) ); fin du defun (princ "=> Compteur")(princ) Y a t'il un moyen d'y remédier?Merci d'avance. Je l'ai rêvé, fedora l'a fait...
gile Posté(e) le 17 juin 2005 Posté(e) le 17 juin 2005 Ce programme ne contient pas de code pour la gestion des erreurs (il oublie aussi de remettre cmdecho à 1).Il suffit donc qu'il y ait une erreur (ou un "echap") en cours d'exécution pour que les variables ne soient pas remises à leurs valeurs initiales.Il faut donc redéfinir *error* :(defun compteur_err (msg) (if (or (= msg "Fonction annulée") (= msg "quitter / sortir abandon") ) (princ) (princ (strcat "\nErreur: " msg)) ) (setvar "filedia" 1) (setvar "cmddia" 1) (setvar "cmdecho 1") (setq *error* m:err m:err nil ) (princ) )et charger la nouvelle définition au début de "compteur" (avant les premiers "setvar") en sauvegardant l'ancienne dans une variable (m:err) :(setq m:err *error* *error* compteur_err)qu'on restaure à la fin (après les derniers "setvar") : (setq *error* m:err m:err nil)Il se peut aussi que la commande U n'annule pas tout le groupe de commandes.Pour çà va voir dans ce message et dans celui-ci, plusieurs solutions y sont proposées.
Patrick_35 Posté(e) le 17 juin 2005 Posté(e) le 17 juin 2005 Salutla même chose en plus simple et de plus, ça passe toutes les versions(command "_.text" "_style" nom_style "_justify" [b]pause[/b] position ht_style 0 lib_texte) (command "_.text" "_style" nom_style "_justify" [b]pause[/b] position 0 lib_texte) Y a t'il un moyen d'y remédier? C'est si ca plante,ou par un esc que l'on ne retourve pas le filedia à 0 ?Dans ce cas par une gestion des erreurs @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
manuk Posté(e) le 20 juin 2005 Auteur Posté(e) le 20 juin 2005 Ce programme ne contient pas de code pour la gestion des erreurs (il oublie aussi de remettre cmdecho à 1).Il suffit donc qu'il y ait une erreur (ou un "echap") en cours d'exécution pour que les variables ne soient pas remises à leurs valeurs initiales.Il faut donc redéfinir *error* :(defun compteur_err (msg) (if (or (= msg "Fonction annulée") (= msg "quitter / sortir abandon") ) (princ) (princ (strcat "\nErreur: " msg)) ) (setvar "filedia" 1) (setvar "cmddia" 1) (setvar "cmdecho 1") (setq *error* m:err m:err nil ) (princ) )Je veux bien mais tu met ça où....quand je vous le dit que je suis nul.... Je l'ai rêvé, fedora l'a fait...
bonuscad Posté(e) le 20 juin 2005 Posté(e) le 20 juin 2005 Tu peux rajouter la fonction (defun compteur_err au tout début du fichier.En règle générale dans le lisp on déclare ses fonctions où on veut, du moment qu'elles soient définies avant leurs utilisation.Pour les fonctions et variables le lisp est moins rigide que d'autre language de programmation.Une variable peut être définie au début de la procédure ou juste au moment où tu en as besoin. Une remarque à propos des lignes(command "_.text" "_style" nom_style "_justify" pause position ht_style "0" lib_texte)(command "_.text" "_style" nom_style "_justify" pause position 0 lib_texte) Ces deux lignes poseront problème si on choisit l'option "Fixé" ou "Aligné" Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
manuk Posté(e) le 20 juin 2005 Auteur Posté(e) le 20 juin 2005 En fait j'ai crée un lisp pour l'*error* et ça a l'air de marcher.Si vous pensez que ça peut créer un blème dites le moi Je l'ai rêvé, fedora l'a fait...
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