Aller au contenu

Boite de Dialogue -> Question -> Action


Messages recommandés

Posté(e)

Bonjour à tous,

 

J'aimerai vous soumettre un probleme que je traine depuis trop longtemps :

 

Lancer un lisp qui ouvre une petite boite de dialogue avec pour commencer une Question à Choix multiple, puis inserer un bloc suite aux réponses apportées.

 

C'est vrai que pour certains d'entre vous cela reste simple et réchauffé mais je cherche dans tout les sens sans résultat positif, je suis presque sure de ne pas etre loin mais j'ecris comme un petit cochon, alors pour le coup je recherche de l'aide pour pouvoir faire fonctionner cette idée et que je puisse par la suite greffer plusieurs questions dans une seule boite.

 

Voila mon bout d'essai qui ne marche pas :

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                                 ;;
;;              Création de la boite de Dialogue dans un fichier Temporaire        ;;
;;                                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq temp (vl-filename-mktemp "tempone.dcl") file (open tempone "w"))

(write-line

(strcat

"Montitre"

": dialog { key = \"Title\"; label = "" ;//Title$ from lsp file spacer; "

": boxed_radio_row { key = \"Radio1\";label = \"Position du Titre\" ; "

": radio_button { key = \"P\"; label = \"à Gauche\";} "

": radio_button { key = \"L\"; label = \"à Droite\";}} "

"spacer; ok_only;"

"}//Montitre"

)

file

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                                 ;;
;;              initialisation et chargement de la boite de dialogue               ;;
;;                                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(setq dcl_id (load_dialog tempone))

(if (not (new_dialog "IncTxt" dcl_id))

(exit))

(while (setq st (tblnext "STYLE" (not st)))

(if (/= (cdr (assoc 2 st)) "")

(setq slst (cons (cdr (assoc 2 st)) slst))

))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                                 ;;
;;              Récupération des infos de la boite de dialogue                     ;;
;;                                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun c:Montitre (/ Dcl_Id% Radio1$ Return#)

(princ "\nMontitre")(princ)

(if (not *Montitre@)

(setq *Montitre@ (list nil "" "" )))

(setq Radio1$ (nth 1 *Montitre@))

(setq Dcl_Id% (load_dialog "Tempone.dcl"))

(new_dialog "Montitre" Dcl_Id%)

(set_tile "Title" "      -    Choix du Cartouche   -  ")

(set_tile "Radio1" Radio1$)

(action_tile "Radio1" "(setq format1$ $value)")

(action_tile "Radio1" "(setq format1$ $value)")

(setq Return# (start_dialog))

(unload_dialog Dcl_Id%)

(setq *Montitre@ (list nil Radio1$))
 
(princ)

)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                                 ;;
;;                       Fermeture de la boite de dialogue                         ;;
;;                                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(unload_dialog dcl_id)

(vl-file-delete tempone)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                                 ;;
;;  Programme pour inserer le bloc en fonction des choix de la boite de dialogue   ;;
;;                                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq TIT (atoi(get_tile "P")))

(setq TIT (atoi(get_tile "L")))

(SetVar "CMDECHO" 0)

(Setq OldAccr (GetVar "OSMODE"))

(IF (= (TblSearch "Layer" "Cadre") nil)

(command "_Layer" "_N" "Cadre" "_CO" "7" "Cadre" ""))

(Setq AncienPlan (GetVar "CLayer"))	

(command "_Layer" "_S" "Cadre" "")

(SetVar "OSMODE" 8)  

(setq Orientation (/ (* 200 (getvar "VIEWTWIST")) pi)) 



;;;;(setq TIT (getstring "\nTitre à Gauche ou à Droite ? < G ou D >"))



(IF (= TIT "g")

(progn

(Setq Point (GetPoint "\nPoint d'Insertion du Point Bas Gauche : "))

(command "_Insert" "Titre-gauche" Point 1 "" Orientation)))	

(Setq Point Nil)

(IF (= TIT "d")

(progn

(Setq Point (GetPoint "\nPoint d'Insertion du Point Bas Gauche : "))

(command "_Insert" "Titre-droit" Point 1 "" Orientation)))
      	
(SetVar "OSMODE" OldAccr)

(prin1)


 

Merci d'avance pour vos suggestions...

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é