(gile) Posté(e) le 24 septembre 2021 Posté(e) le 24 septembre 2021 Salut, Les bibliothèques DCL fournissent des boutons ou groupes de boutons à utiliser pour fermer les boites de dialogue (ok_only, ok_cancel, ok_cancel_help, ok_cancel_help_info). On peut créer un groupe de boutons Oui / Non (yes_no) utilisable de la même façon que ok_cancel en ajoutant ces quelques lignes à son fichier DCL. yes_button : retirement_button { label = " Oui "; key = "accept"; is_default = true; } no_button : retirement_button { label = " Non "; key = "cancel"; is_cancel = true; } yes_no : column { : row { fixed_width = true; alignment = centered; yes_button; : spacer { width = 2; } no_button; } } On peut aussi utiliser ce même code pour écrire le fichier DCL "à la volée" depuis le fichier LISP. Un exemple avec une boite de dialogue "générique" qui permet d'afficher un message / question et des boutons Oui / Non. (defun YesNoBox (title msg / temp file dcl_id status) ;; Créer un fichier DCL temporaire (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) ;; Ecrire le fichier ;; boutons Oui / Non (write-line "yes_button : retirement_button { label = \" Oui \"; key = \"accept\"; is_default = true; } no_button : retirement_button { label = \" Non \"; key = \"cancel\"; is_cancel = true; } yes_no : column { : row { fixed_width = true; alignment = centered; yes_button; : spacer { width = 2; } no_button; } }" file ) ;; boite de dialogue principale (write-line "yes_no_box : dialog { key = \"titre\"; spacer;" file) (if (vl-consp msg) (progn (write-line ": paragraph {" file) (foreach l msg (write-line (strcat ": text_part{ label = \"" l "\";}") file) ) (write-line "}" file) ) (write-line (strcat ": text { label = \"" msg "\"; }") file) ) (write-line "spacer; yes_no; }" file) (close file) ;; Ouvrir la boite de dialogue (setq dcl_id (load_dialog temp)) (if (not (new_dialog "yes_no_box" dcl_id)) (exit) ) (set_tile "titre" title) (action_tile "accept" "(done_dialog 1)") (setq status (start_dialog)) (unload_dialog dcl_id) ;; Supprimer le fichier (vl-file-delete temp) ;; Renvoyer le résultat (Oui = 1 , Non = 0) status ) 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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