BUTTON
Deuxième exemple
OUI-NON
Dans cet exemple je vais tenter d'expliquer comment créer une boîte de dialogue qui n'utilise pas les boutons OK / Cancel fournis avec le logiciel mais créer des boutons qui s'expriment en français,
Oui et Non ou bien On y va et On s'arrête ça fait la différence, non ?
Libre à vous de trouver des expressions qui font plus "personnalisé"...
Il va donc falloir créer deux fichiers, un DCL et un LSP, maintenant vous savez pourquoi si vous avez lu les articles précédents.
Le fichier DCL :
Le fichier LSP :
Exemple de syntaxe, en ligne de commande ou dans un fichier LSP :
(DCL2 "Titre de la case perso" "Tout fonctionne correctement ?") |
Et à l'écran il apparaît ceci :
Mais ça ne s'arrête pas là, vous avez remarqué que je fais appel à la fonction (alert) en ligne 23 du LSP et de ce fait un message (classique AutoCAD ce coup-là) va s'afficher pour vous montrer que la bonne réponse est prise en compte :
Ce que j'appelle la bonne réponse c'est celle qui est mémorisée dans la variable reponse qui dépend du bouton cliqué, Oui ou Non.
Ce sont les lignes 19,20 et21 qui gèrent cet affichage.
Si j'ai pris le soin de faire ça c'est pour montrer que des actions dans le DCL peuvent être renvoyées vers le LSP sous forme de variable et donc ultérieurement traitées comme il se doit pas le programme LSP.
Pour ceux qui copient-collent :
Fichier DCL :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | //--------------------------------------------------------------------------------------------------------- // OuiNon_Perso pour da-code //--------------------------------------------------------------------------------------------------------- OuiNon_Perso : dialog { key = "Titre"; label = "";//Titre depuis le LSP spacer; : text { key = "Text1"; label = "";//Question depuis le LSP width = 35.0; alignment = centered; } spacer; : row { fixed_width = true; alignment = centered; : button { key = "Oui"; label = "&Oui"; is_default = true; width = 7.92; fixed_width = true; } : button { key = "Non"; label = "&Non"; is_cancel = true; width = 7.92; fixed_width = true; } } }//DCL2 |
Fichier LSP :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | ;Titre : argument 1 ;Question = argument 2 ;Syntaxe: (DCL2 "Titre de la case" "message à afficher") ;------------------------------------------------------ (defun DCL2 (Titre Question / reponse Dcl_Id Return#) (princ "\nMyYesNo")(princ) (setq Dcl_Id (load_dialog "DCL2.dcl")) (new_dialog "OuiNon_Perso" Dcl_Id) (set_tile "Titre" Titre) (set_tile "Text1" Question) (action_tile "Oui" "(done_dialog 1)") (action_tile "Non" "(done_dialog 0)") (setq Return# (start_dialog)) (unload_dialog Dcl_Id) (if (= Return# 1) (setq reponse "Oui") (setq reponse "Non") ); if (alert (strcat "Vous avez répondu : " reponse)) reponse );DCL2 |
J'ai choisi OUI et NON mais vous êtres libres d'y mettre ce que vous voulez, ce n'est que de l'affichage dans le bouton, pour échanger avec le logiciel c'est le key qui compte.
Par exemple : essayez de faire ceci pour vous démarquer des autres :
Allez je vous laisse vous casser les ongles sur les claviers...
12 janvier 2018,
mise à jour le 16 février 2018