Aller au contenu

lisp et dcl


Messages recommandés

bonjour,

Voici mon lisp qui controle + ou - mon .dcl

(defun c:toto ()

(setq id (load_dialog "toto.dcl"))

(if (not (new_dialog "toto" id)) (exit))

(action_tile "A" "(setq 1)")

(action_tile "B" "(setq 2)")

(action_tile "C" "(setq 3)")

(action_tile "D" "(setq 4)")

(action_tile "accept" "(done_dialog)")

(start_dialog)

 

mon .DCL

toto : dialog {

label = "TITRE";

: radio_column {

label = "lettre";

: radio_button {

label = "1";

key = "A";

value = "1";

}

: radio_button {

label = "2";

key = "B";

}

: radio_button {

label = "3";

key = "C";

}

: radio_button {

label = "4";

key = "D";

}

}

ok_only;

}

 

Je n'arrive pas a écrire dans mon lisp malgrès les nombreux exemples que j'ai trouvé sur ce forum

si key a activé (command x etc...)

si key b activé (command y etc...)

 

4 radio_button avec un OK à controler seulement et je n'y arrive pas :casstet:

merci d'eclairer ma lanterne meme si ça vous parait trop facile :D

Lien vers le commentaire
Partager sur d’autres sites

Salut

Tu as plusieurs possibilitées

 

Exemple 1

(defun c:toto ()
(setq id (load_dialog "toto.dcl"))
(if (not (new_dialog "toto" id)) (exit))
(action_tile "A" "(alert\"Vous avez choisis sur le bouton 1\")")
(action_tile "B" "(alert\"Vous avez choisis sur le bouton 2\")")
(action_tile "C" "(alert\"Vous avez choisis sur le bouton 3\")")
(action_tile "D" "(alert\"Vous avez choisis sur le bouton 4\")")
(action_tile "accept" "(done_dialog)")
(start_dialog)
(unload_dialog id)
)

 

Exemple 2

(defun c:toto ()
(defun choix_bouton(val)
(alert (strcat "Vous avec choisis le bouton " (itoa val)))
)
(setq id (load_dialog "toto.dcl"))
(if (not (new_dialog "toto" id)) (exit))
(action_tile "A" "(choix_bouton 1)")
(action_tile "B" "(choix_bouton 2)")
(action_tile "C" "(choix_bouton 3)")
(action_tile "D" "(choix_bouton 4)")
(action_tile "accept" "(done_dialog)")
(start_dialog)
(unload_dialog id)
)

 

Exemple 3

(defun c:toto ()
(setq id (load_dialog "toto.dcl")
ch 1)
(if (not (new_dialog "toto" id)) (exit))
(action_tile "A" "(setq ch 1)")
(action_tile "B" "(setq ch 2)")
(action_tile "C" "(setq ch 3)")
(action_tile "D" "(setq ch 4)")
(action_tile "accept" "(done_dialog)")
(start_dialog)
(unload_dialog id)
(alert (strcat "Vous avec choisis le bouton " (itoa ch)))
)

 

A toi de faire ton choix en fonction de tes besoins

 

@+

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

bonjour et merci patrick-35

 

je commence à voir des possibilités mais ce que je n'arrive pas, c'est que lorsque dans ma boite de dialogue

 

le bouton OK est validé alors

si action-tile A est selectionné, tu executes (command " 1")

si action-tile b est selectionné, tu executes (command " 2")

si action-tile c est selectionné, tu executes (command " 3")

 

Je m'excuses d'etre aussi lourd mais j'aime bien comprendre je que j'écris en programmation

 

d'avance merci

Lien vers le commentaire
Partager sur d’autres sites

Je m'excuses d'etre aussi lourd mais j'aime bien comprendre je que j'écris en programmation

Ce qui me parait normal

 

Dans l'exemple 3, tu stockes le choix de ton bouton dans la variable ch, et dès que tu fais OK, tu sais quelle bouton qui a été retenue

 

@+

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

ça c'est impeccable merci beaucoup

une derniere chose...

maintenant que la variable est stockée dans le bouton OK

j'ai 4 petit programme à faire fonctionner

Je ne sais pas comment lui faire executer le progr 1 pour le bouton 1

progr 2 pour le bouton 2

progr 3 pour le bouton 3

progr 4 pour le bouton 4

j'ai essayé ça mais rien de rien

(if (= ch 1)

(progn

(command "ligne")

 

(if (= ch 2)

(progn

(command"pedit")

 

sinon avec defun aussi mais rien non plus

 

Promis je vous embete plus après ... peut-etre :D

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Un exemple

(cond
((eq ch 1)
 (load"prog1") ; s'il n'est pas déjà chargé
 (c:prog1)
)
((eq ch 2)
 (load"prog2") ; s'il n'est pas déjà chargé
 (c:prog2)
)
...
((eq ch 5)
 (load"prog5") ; s'il n'est pas déjà chargé
 (c:prog5)
)
)

 

@+

 

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

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é