# Éditeur de boîte à outil

Cette fenêtre s'affiche lorsque vous cliquez sur le bouton Éditeur de script au bas d'une boîte à outil. Il permet de configurer et de programmer les actions pour la boîte à outils.

## Créer la mise en page de l'outil

Définissez d'abord le titre de votre outil dans le champ de texte en haut.

Ensuite, vous devez ajouter au moins un groupe: cliquez sur le bouton Groupe, définissez le titre du groupe et le nombre d'éléments souhaité sur chaque ligne. Cliquez ensuite sur le bouton Ajouter.

Utilisez ensuite le même principe pour ajouter les éléments que vous voulez, par exemple une zone de saisie de texte et un bouton.
Ces éléments ne peuvent être ajoutés qu'à un groupe.
Un nom est automatiquement attribué à chaque élément, par exemple Edit_1. C'est le nom que vous devez utiliser pour accéder aux propriétés de l'élément à partir de votre script.
Pour certains éléments, vous pouvez sélectionner un titre ou une hauteur en pixels.
Pour modifier le nombre d'éléments par ligne, créez un nouveau groupe avec la valeur requise mais sans titre.

Les événements sont des éléments spéciaux. Cela n'ajoute rien de visible sur l'écran, mais vous permet d'écrire le script qui va traiter un événement.
Les événements sont:

- Initialisation: Exécuté une fois après avoir cliqué sur le bouton Appliquer, ou lorsque le programme démarre.
- Activation: Exécuté chaque fois que cette boîte à outils est affichée.
- Timer: Exécuté à intervalle périodique, entrez l'intervalle en seconde lorsque vous sélectionnez cet événement.
- Telescope move: Chaque fois que la position du télescope change.
- Chart refresh: Chaque fois que la carte est redessinée.
- Object identification click: quand un objet est sélectionné par un clic sur la carte ou suite a une recherche.
- Distance measurement: Lorsque vous mesurez une distance sur la carte.
- Telescope connected: Lorsque le télescope est connecté.
- Telescope disconnected: Lorsque le télescope est déconnecté.
- Translation: Exécuté après l'initialisation ou lorsque vous changez la langue du programme.

Les événements sont normalement inactifs lorsque l'outil n'est pas affiché. Une exception est l'événement Timer que vous pouvez toujours activer en cochant la case correspondante. Mais attention que cette option peut engendrer des problèmes de performance.
Utilisez plutôt l'événement Activation pour mettre à jour votre outil avec les modifications ont pu se produire sur la carte lorsque l'outil était inactif.

Vous pouvez réorganiser les groupe ou les éléments à l'aide des flèches verticales ou par glisser-déplacer dans l'arborescence de gauche.

Si vous sélectionnez un élément dans l'arborescence et que vous modifiez l'une de ses propriétés, le bouton Mise à jour apparaît pour permettre d'appliquer la modification.

Un script peut être attaché aux éléments suivants: Bouton, Menu, Liste déroulante, Événement.
Lorsque vous sélectionnez l'un de ces éléments dans l'arborescence, le bouton “Modifier le script” apparaît. Voir ci-dessous pour les détails.
Vous pouvez ajouter une fonction au menu contextuel de la carte. Pour cela, créez un bouton et cochez “Menu”.

Lorsque vous êtes prêt, cliquez sur le bouton Enregistrer pour enregistrer votre travail dans un fichier et afficher vos éléments dans la boîte à outils ainsi que compiler les scripts. (l'extension de fichier par défaut est .cdcps).
Sauvegardez également la configuration du programme pour vous recharger la boîte d'outils automatiquement la prochaine fois que vous démarrez le programme.

## Éditeur de script

L'éditeur permet d'écrire le script lui-même qui s'exécutera lors d'un clic sur le bouton, une sélection dans la liste déroulante, ou un événement.

Le langage de programmation à utiliser est Pascal Script, basé sur Pascal Objet.
Définissez d'abord les variables globales, puis les procédures et fonctions, le cas échéant, puis les variable privée et enfin le code principal commençant par begin et terminé par end.
Lisez la page exemple de script pour un démarrage rapide.

Comme chaque script est spécifique à un événement, il n'est pas possible d'avoir des variables globales entre les scripts. Par exemple, vous ne pouvez pas définir une variable lorsqu'un bouton est pressé et utiliser cette variable dans le clic d'un autre bouton.
Pour résoudre ce problème, un certain nombre de variables globales sont prédéfinies dans le programme principal et des fonctions spécifiques permettent de les lire et écrire.

Ces fonctions et d'autres spécifiques à l'interface avec CdC sont décrites dans une page séparée de référence des scripts.

Utilisez le bouton Enregistrer pour enregistrer votre changement et revenir à la fenêtre principale.

Les boutons du haut sont liés à la fonction de débogage comme décrit ci-dessous.

## Débogage

Une fonction de débogage simple est disponible pour tester votre code.

Pour exécuter le script en mode debug, appuyez sur la flèche verte Exécuter . Le programme est d'abord compilé.

En cas d'erreur de compilation, la ligne correspondante est mise en surbrillance en jaune et le message d'erreur s'affiche dans la zone de message.

Si la compilation se termine sans erreur, le programme démarre et s'arrête sur la première ligne de code de la procédure principale. La position d'exécution actuelle est mise en surbrillance en bleu.

Vous pouvez maintenant utiliser le bouton Pas à pas pour exécuter votre programme ligne par ligne.
Le bouton Pas à pas approfondi fait de même, sauf si la ligne en cours est un appel à l'une de vos fonctions. Dans ce cas Pas à pas approfondi va détaillé l’exécution de la fonction, alors que Pas à pas continu dans le programme principal à la ligne suivante.

Vous pouvez également définir un point d'arrêt sur une ligne spécifique pour sauter directement à cette position.

Pour définir un point d'arrêt, cliquez sur la colonne la plus à gauche pour afficher une icône rouge.
Utilisez le bouton Exécuter pour passer au prochain point d'arrêt. La ligne actuelle est alors mise en surbrillance en rouge.

Vous pouvez supprimer un point d'arrêt en cliquant sur l'icône rouge ou tous d'un coup avec le bouton Supprimer tous les points d'arrêt .

Vous pouvez afficher la valeur des variables lorsque le programme est en pause à un point d'arrêt ou après un Pas à pas .
Il suffit de cliquer sur le nom de la variable n'importe où dans le source du programme pour afficher la valeur dans la zone de message.
Notez que cela fonctionne uniquement pour les variables locales, et pas pour les propriétés d'un objet.

Vous pouvez utiliser la touche Pause pour suspendre l'exécution du programme. Cela peut être utile pour examiner l'état d'une boucle infinie par exemple.

La touche Arrêt termine l'exécution du programme immédiatement.