Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 05/04/2016 dans toutes les zones

  1. Salut, Je ne peux pas tester parce que je n'ai pas installé le module VBA (et que je ne compte pas le faire). Mais à lire le code, je dirais que le résultat est stocké dans la variable (globale) valtxt. Si tu veux que la fonction retourne cette valeur, appelle la variable à la fin de la routine: (defun inputbox (titre message defaut / *acad* users1 valtxt) ; de Patrick_35 (setq *acad* (vlax-get-acad-object) users1 (getvar "users1") ) ;_ Fin:setq (acad-push-dbmod) (vla-eval *acad* (strcat "ThisDrawing.SetVariable \"USERS1\"," "InputBox (\"" message "\", \"" titre defaut "\")" ) ;_ Fin:strcat ;_ Fin:strcat ) ;_ Fin:vla-eval (setq valtxt (getvar "users1")) (setvar "users1" users1) (acad-pop-dbmod) valtxt ) ;_ Fin:defun Sinon, tu peux aussi utiliser la routine ci-dessous (qui n'a pas besoin du VBA) extraite de Dialog.lsp en bas de cette page. ;; InputBox (gile) ;; Ouvre une boite de dialogue pour récupérer une valeur ;; sous forme de chaine de caractère ;; ;; Arguments ;; tous les arguments sont de chaines de caractère (ou "") ;; box : titre de la boite de dialogue ;; msg : message d'invite ;; val : valeur par défaut ;; ;; Retour ;; une chaine ("" si annulation) (defun InputBox (box msg val / subr temp file dcl_id ret) ;; Retour chariot automatique à 50 caractères (defun subr (str / pos) (if (and (< 36 (strlen str)) (setq pos (vl-string-position 32 (substr str 1 36) nil T)) ) (strcat ":text_part{label=\"" (substr str 1 pos) "\";}" (subr (substr str (+ 2 pos))) ) (strcat ":text_part{label=\"" str "\";}") ) ) ;; Créer un fichier DCL temporaire (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ret "" ) ;; Ecrire le fichier (write-line (strcat "InputBox:dialog{key=\"box\";initial_focus=\"val\";spacer;:paragraph{" (subr msg) "}spacer;:edit_box{key=\"val\";edit_width=36;allow_accept=true;}spacer;ok_cancel;}" ) file ) (close file) ;; Ouvrir la boite de dialogue (setq dcl_id (load_dialog temp)) (if (not (new_dialog "InputBox" dcl_id)) (exit) ) (set_tile "box" box) (set_tile "val" val) (action_tile "accept" "(setq ret (get_tile \"val\")) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) ;;Supprimer le fichier (vl-file-delete temp) ret )
    1 point
  2. Je connaissais pas, demain je télécharge et je test ! je te donnerais mon impression !
    -1 points
×
×
  • 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é