# Gereedschapvenster bewerker

Dit venster wordt getoond wanneer je klikt op de Script bewerker knop onderaan een gereedschapvenster. Het verschaft je de mogelijkheid om een gereedschapvenster te configureren en bijbehorende acties in te stellen.

## Creëer de gereedschap layout

Maak eerst een titel in het tekstveld bovenaan.

Dan moet je tenminste een groep toevoegen: klik de Groep knop, stel de groep titel en het aantal van kolom-elementen in die wilt voor iedere rij. klik dan op de Toevoegen knop.

Gebruik hetzelfde principe om de elementen toe te voegen die je wilt, bijvoorbeeld een tekst Bewerk en een knop.
Deze elementen kunnen alleen aan een groep worden toegevoegd.
Aan ieder element wordt automatisch een naam toegekend, bijvoorbeeld Edit_1. Het is deze naam die je nodig hebt om toegang te krijgen tot de eigenschappen van het element van je script.
Voor sommige elementen kun je een titel selecteren of een hoogte in pixels..
Om het aantal elementen per rij te veranderen, creëer een nieuwe groep met de vereiste waarde maar zonder een titel. Speciale elementen zijn de Gebeurtenissen (“Events”). Dit voegt niets zichtbaars toe op het scherm, maar het stelt je in staat om een script te schrijven om een Gebeurtenis te verwerken.
Events zijn:

- Initialisation: Werkt eenmalig na een klik op de Toepassen knop, of bij het starten van het programma.
- Activation: Werkt iedere keer wanneer het gereedschapvenster wordt getoond.
- Timer: Werkt gedurende een periodieke interval, voer de interval-tijd in seconden in wanneer je deze gebeurtenis selecteert.
- Telescope move: Iedere keer dat de telescooppositie verandert.
- Chart refresh: Iedere keer dat de kaart opnieuw wordt afgebeeld.
- Object identification click: Iedere keer dat een object is geselecteerd via een klik op de kaart of als resultaat van een zoekactie.
- Distance measurement: Wanneer je een hoekafstandsmeting doet op de kaart.
- Telescope connected: Wanneer de telescoop wordt verbonden.
- Telescope disconnected: Wanneer de telescoop wordt ontkoppeld.
- Translation: Werkt bij initialisatie of wanneer je te programma taalinstelling wijzigt.

De gebeurtenissen zijn normaal gesproken inactief wanneer het gereedschap niet op het scherm is afgebeeld. Een uitzondering vormt de Timer Gebeurtenis die je altijd kunt activeren door een vinkje te zetten in de bijbehorende checkbox. Wees voorzichtig vanwege de performance issues die deze optie met zich mee kan brengen.
Gebruik de Activation Gebeurtenis om de wijzigingen voor je gereedschap bij te werken wanneer het gereedschap inactief was. Je kunt de groep of elementen herordenen door te klikken op de verticale pijltjes of door te slepen in de linker boomstructuur.

Als je een element selecteert in de boom en je wijzigt een eigenschap, klik dan op de Toepassen knop om de wijziging over te nemen.

Een script kun je koppelen aan de volgende elementen: Knop, Keuzelijst, Gebeurtenis.
Wanneer je een van deze elementen in de boom selecteert verschijnt er de “Script bewerken” knop. Zie onderstaande voor details.

Wanneer je klaar bent, klik de Toepassen knop om je elementen weer te geven in het gereedschapvenster en om de scripts te compileren.
Vergeet ook niet je werk op te slaan met de knop Opslaan. (De standaard bestandsextensie is .cdcps).
Sla ook de programma configuratie op om je gereedschapvenster automatisch geladen te krijgen bij de volgende keer dat je het programma start..

## Script bewerker

De bewerker maakt het je mogelijk om zelf een script te schrijven dat uitgevoerd wordt met een klik op een knop, een keuzelijst, of een gebeurtenis.

De te gerbuiken taal is Pascal Script, gebaseerd op Object Pascal.
Definïeer eerst de globale variabelen, dan de procedures en eventuele functies, daarna de private variabelen, uiteindelijk de main code die start met begin en eindigt met end.
Lees de script voorbeeld pagina voor een snelle start.

Omdat ieder script specifiek is voor een gebeurtenis is er geen mogelijkheid om globale variabelen te hebben tussen scripts. Het is dus niet mogelijk een variabele in te stellen met een klik op een knop en later deze variabele aan te roepen met een andere klik op een knop.
Om dat op te lossen zijn er een aantal globale variabelen gedefinieerd in het hoofdprogramma en er zijn specifieke functies om deze in te stellen en uit te lezen.

Deze functies en andere specifiek voor de interface zijn beschreven in een afzonderlijke script referentie pagina.

Gebruik de Opslaan knop om je wijzigingen op te slaan en terug te keren naar het hoofdvenster.

De knoppen op de bovenste rij zijn voor debuggingsfuncties zoals onderstaand is beschreven.

## Script debugger

Er zijn eenvoudige mogelijkheden beschikbaar om je code te debuggen.

Om je script in debug modus te draaien klik de groene pijl Uitvoeren knop. Het programma wordt eerst gecompileerd.

In geval van een compilatiefout, dan zul je de corresponderende rij gemarkeerd in geel oplichten en het foutbericht zie je onderaan in het berichtengebied.

Als de compilatie zonder fout verloopt dan zal het programma beginnen met uitvoering en stopt direct op de eerste regel van de “main” procedere. De huidige uitvoeringspositie is gemarkeerd in blauw.

Je kunt nu de Stap over knop gebruiken om je code regel voor regel uit te voeren..
De Stap in knop doet hetzelfde , behalve dat wanneer de de huidige regel een functie aanroept. Dan wordt de functie ook regel voor regel uitgevoerd. Een stap over voert de functie dus geheel uit en stopr op de volgende regel in het hoofdprogramma.

Je kunt ook een breakpoint op een bepaalde regel zetten om direct naar die positie te springen.

Om een breakpoint te plaatsen, doe een linker muisklik op de linker kolom met de regelnummers om een rood icoontje te plaatsen.
Gebruik de Uitvoeren knop om naar een volgend breakpoint te springen. De huidige regel is rood gemarkeerd.

Je kunt een breakpoint verwijderen door op het rode icoontje te klikken, je kunt ze ook allemaal ineens verwijderen door een klik op de knop Verwijder alle breakpoints.

Je kunt de waarde van variabelen weergeven wanneer het programma pauzeert op een breakpoint of na een Stap over klik.
Klick op de variabele naam waar dan ook in de programmacode om de waarde weer te geven in het berichtengebied.
Dit werkt alleen voor lokale variabelen, niet voor object eigenschappen.

Je kunt de Pauze knop gebruiken om programma-uitvoering te pauzeren. Dit is handig om de condities te controleren wanneer het programma in een oneindige lus terecht is gekomen.

De Stop knop beëindigt het programma onmiddellijk.