DCL-01

Premier Exemple

Le premier exemple sera une simple case qui fait apparaître un message, dans le style de la boîte de dialogue AutoCAD (alert)

Le principe est de donner une information à l'utilisateur, une simple information mais on commence doucement...
Par contre on va voir comment "personnaliser" le message fourni, ce que ne permet pas la boîte de dialogue AutoCAD (alert).


Deux fichiers séparés sont nécessaires comme vous l'avez vu dans la partie théorique.

  • un fichier (boîte de dialogue) avec l'extension DCL
  • un fichier (programme) avec l'extension LSP.

Ces deux fichiers interagissent, c'est à dire que le LSP envoie des informations au DCL et inversement.


Fichier DCL :

Fichier LSP :

Explications :

Surligné en vert : le titre de la boîte de dialogue, ce qui apparaît dans la barre de titre bleu dur
Surligné en rose : le message passé par la boîte de dialogue.

Charger (load) le fichier LSP et en ligne de commande taper :
dcl1 et à l'écran on devrait voir ça :

OK ? on continue ?


Personnaliser les messages

Jusque là on n'a fait que "refaire" la boîte de dialogue (alert)
Cherchons à améliorer en laissant le choix du titre de la case et du message :

Fichier DCL :

 

Fichier LSP :


Une fois que le fichier LSP est chargé, voici un exemple de syntaxe à taper en ligne de commande (ou dans un autre fichier LSP) :

(dcl1-bis "titre de la case" "message à faire passer")

Et à l'écran apparaît :

 

Les variables "titre" et "message" ont bien été prises en compte pour l'affichage d'une boîte personnalisée.


Pour ceux qui veulent copier-coller (ils savent ce que j'en pense !!!) :

1
2
3
4
5
6
7
8
9
10
Premier : dialog {
 label = "www.da-code.fr";
 spacer;
 : text {
 label = "Premier Essai ...réussi, YES !";
 alignment = centered;
 }
 spacer;
 ok_only;
}//Premier
1
2
3
4
5
6
7
(defun c:DCL1 (/ Dcl_Id)
 (setq Dcl_Id (load_dialog "DCL1.dcl"))
 (new_dialog "Premier" Dcl_Id)
 (start_dialog)
 (unload_dialog Dcl_Id)
 (princ)
);fin de defun c:DCL1

1
2
3
4
5
6
7
8
9
10
11
12
13
Premier_Bis : dialog {
 key = "Titre";
 label = "";//depuis le fichier LSP
 spacer;
 : text {
 key = "Message";
 label = "";//depuis le fichier LSP
 width = 30.0;
 alignment = centered;
 }
 spacer;
 ok_only;
}
1
2
3
4
5
6
7
8
9
(defun DCL1-Bis (Titre_Case Message_Case / Dcl_Id)
 (setq Dcl_Id (load_dialog "DCL1-Bis.dcl"))
 (new_dialog "Premier_Bis" Dcl_Id)
 (set_tile "Titre" Titre_Case)
 (set_tile "Message" Message_Case)
 (start_dialog)
 (unload_dialog Dcl_Id)
 (princ)
)

Essayez les différentes options pour vous familiariser avec ce langage, il est possible de faire plein de variations..,

 

Si je voulais faire la case très large :
Ajouter la ligne : (ou changer la valeur de width)

key = "Titre";
 width = 50; 
 label = "";
...
...
 alignment = right;

La commande  :

(dcl1-bis "titre de la case élargie" "ceci est un message à DROITE")

donnera ça à l'écran :


Allez ! je vous laisse faire vos tests dans le secrets de vos alcôves


 

Haut de page

retour à "Exercices DCL"


12 janvier 2018,
mise à jour le 16 février 2018