Aller au contenu

Amélioration d\'un compteur


manuk

Messages recommandés

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...

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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]

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Salut

la 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité