# Editor de la caixa d'eines

Aquesta finestra es mostra quan feu clic al botó Script al peu d'una Caixa d'eines. Permet configurar i programar l'acció per a la caixa d'eines

## Crear la distribució de l'eina

Primer poseu el títol per a l'eina en el camp de text superior.

Després us cal afegir com a mínim un grup: feu clic al botó Grup, poseu-hi el títol i el nombre de columnes d'elements que voleu per a cada fila. Llavorsnfeu cli al botó “Afegeix”.

Després useu la mateixa regla per afegir els elements que voleu, per exemple un text d'edició i un botó.
Aquests elements només poden ser assignats a un grup.
Un nom s'afegeix automàticament a cada element, per exemple, Edit_1 . Aquest és el nom que us cal per accedir a les propietats de l'element des del script.
Per a alguns elements podeu triar un títol o una altura en píxels.
Creeu un grup nou amb el valor que voleu, però sense títol.

Elements especials són els Esdeveniments. Aquests no afegeixen res visible a la pantalla però us permeten d'escriure l'script que cal per processar un esdeveniment.
Són esdeveniments:

- Inicialització: S'executa una sola vegada quan feu clic al botó Aplica, o quan s'engega el programa.
- Activació: S'executa cada vegada que aquesta caixa d'eines es mostra,
- Temporitzador: S'executa a intervals periòdics. Entreu el temps en segons quan trieu aquest esdeveniment.
- Mou el telescopi: Cada cop que varia la posició del telescopi.
- Refresca el mapa: Cada cop que es redibuixa el mapa.
- Clic d'identificació d'objecte: Cada vegada que un objecte és triat per un clic al mapa o com a resultat d'una recerca.
- Mesura de distància: Quan mesureu una distància en el mapa.
- Telescopi connectat: Quan es connecta el telescopi.
- Telescopi desconnectat: Quan es desconnecta el telescopi.
- Traducció: S'executa en la inicialització o bé quan canvieu l'idioma del programa.

Els esdeveniments estan normalment inactius quan l'eina no es mostra en pantalla. Una excepció és l'esdeveniment Temporitzador, que podeu activar sempre fent clic a la caixa corresponent. Però aneu amb compte pel resultat operatiu que aqueta opció pot implicar.
Useu l'esdeveniment Activació per actualitzar l'eina amb els canvis que poden haver ocorregut en el mapa quan l'eina estava inactiva.

Podeu reordenar el grup o els elements usant les fletxes verticals o arrossegant i deixant anar en l'arbre de l'esquerra.

Si trieu un element en l'arbre i canvieu una de les seves propietats, apareix el botó Actualitza per permetre aplicar el canvi.

Un script pot ser lligat als següents elements: Botó, caixa Combo, Esdeveniment.
Quan trieu un d'aquests elements en l'arbre, apareix el botó “Edita un script”. Vegeu més avall per a més detalls.
Podeu afegir una funció al menú del clic dret de la carta. Per fer-ho, creeu la funció per a un botó i marqueu “Menú”.

Quan hagueu acabat feu clic al botó Aplica per veure els vostres elements en la caixa d'eines i compilar els scripts.
No oblideu desar el vostre treball a un fitxer amb el botó Desa (l'extensió per defecte és .cdcps).
També deseu la configuració del programa per que la vostra caixa d'eines sigui carregada la propera vegada que executeu el programa.

## Editor de scripts

L'editor de scripts permet escriure el propi script que s'executa amb un clic d'un botó, uns selecció en una caixa combo o un esdeveniment.

El llenguatge a usar és el Pascal Script, basat en Object Pascal.
Definiu primerament les variables globals, i després els procediments i funcions si n'hi ha, llavors les variables privades, i finalment, el codi principal que comença amb begin i acaba amb end.
Llegiu la pàgina de exemples de scripts per a una ràpida inicialització.

Quan un script és específic d'un esdeveniment, no és possible tenir variables globals entre els scripts. Per exemple no podeu assignar una variable quan es prem un botó i més tard usar aquesta variable en el clic d'un altre botó.
Per resoldre aquest problema un nombre de variables globals està predefinit en el programa principal i funcions específiques poden escriure-les i llegir-les.

Aquestes funcions i d'altres específiques de la interfície amb Skychart estan descrites en una pàgina separada referències scripts.

Useu el botó Desa per desar els canvis i tornar a la finestra principal.

El botó de dalt té relació smb la funció de desentrellat com es descriu més avall.

## Script desentrellador

Una senzilla funció d'eliminar errors està disponible per provar el vostre codi.

Per executar l'script en mode antierror premeu la fletxa verda botó Run . El programa primerament és compilat.

En el cas d'un error de compilació, la línia corresponent queda resaltada en groc, i un missatge d'error es mostra al peu en la zona de missatges.

Si la compilació s'ha fet sense errors el programa comença a executar-se i es para en la primera línia de codi del procés principal. La posició actual es mostra resaltada en blau.

Ara podeu usar el botó Pas següent (Step over) per executar el programa línia per línia.
El botó Pas a dins de (Step into) fa el mateix, excepte si la línia actual fa crida a una funció. En aquest cas permet recórrer la funció línia per línia, mentre que Pas següent (Step over) hauria executat la funció i s'hauria parat en la següent línia del programa principal.

També podeu posar un punt d'interrupció en una línia específica per saltar i parar a aquesta posició a l'executar el programa.

Per posar un punt d'interrupció feu clic a la columna de més a l'esquerra per mostrar una icona vermella.
Useu el botó Run (Executa) per saltar al punt d'interrupció següent. La línia actual es resalta en vermell.

Podeu eliminar un punt d'interrupció fent clic a la icona vermella o tots a la vegada amb el botó Treu tots els punts d'interrupció.

Podeu veure els valors de les variables quan el programa està pausat en un punt d'interrupció o després d'un clic a Pas següent (Step over).
Justament feu clic en el nom de la variable en qualsevol lloc del programa font per mostrar el seu valor en la zona de missatges.
Noteu que això només funciona per a variables locals, no per ales propietats d'un objecte.

Podu fer servir el botó Pausa per pausar l'execució del programa. Això pot ser útil per examinar la condició d'un bucle infinit, per exemple.

El botó Stop acaba immediatament l'execució del programa.