<sect1 id="tool-scriptbuilder">
<title
>Værktøjet Scriptopbygning</title>
<indexterm
><primary
>Værktøjer</primary>
<secondary
>Scriptopbygning</secondary>
</indexterm>

<para
>KDE-programmer kan styres fra andre programmer, fra kommandolinjen eller fra et shell script vha. protokollen "Desktop COmmunication Protocol" (<abbrev
>DCOP</abbrev
>). KStars udnytter denne mulighed til at gøre det muligt at lave script der udfører meget komplekse operationer, så de kan udføres igen og igen. Dette kan fx bruges i undervisningsverdenen, til at forberede en demonstration af astronomiske koncepter og eksempler. </para>
<para
>Problemet med DCOP script er at det minder meget om programmering når man skriver dem. Og derfor kan det virke uoverkommeligt at skulle lave dem i hånden hvis man ikke har erfaring med programmering. Værktøjet Scriptopbygning er en (<abbrev
>GUI</abbrev
>), en grafisk "peg og klik" brugerflade  til at konstruere DCOP script. På den måde bliver det meget nemmere for fx lærere at lave avancerede script. </para>

<sect2 id="sb-intro">
<title
>Introduktion til Scriptopbygning</title>

<para
>Før jeg forklarer hvordan Scriptopbyggeren bruges, vil jeg lave en kort introduktion af alle <abbrev
>GUI</abbrev
>-komponenterne. Brug funktionen "Hvad er dette?" for at få flere informationer. </para>

<screenshot>
<screeninfo
>Værktøjet Scriptopbygning </screeninfo>
<mediaobject>
  <imageobject>
    <imagedata fileref="scriptbuilder.png" format="PNG"/>
  </imageobject>
  <textobject>
    <phrase
>Værktøjet Scriptopbygning</phrase>
  </textobject>
</mediaobject>
</screenshot>

<para
>Værktøjet Scriptopbygning er vist på skærmbilledet herover. Boksen til venstre er boksen <firstterm
>Nuværende script</firstterm
>, den viser listen over de kommandoer scriptet foreløbigt består af. Boksen til højre er <firstterm
>Funktionsoversigten</firstterm
>, den viser listen over de funktioner der kan bruges i scriptet. Under funktionsoversigten er der et lille panel der kan vise kort information om den scriptfunktion der er markeret i funktionsoversigten. Under boksen nuværende script findes panelet <firstterm
>Funktionsargumenter</firstterm
>. Når en funktion markeres i boksen med det nuværende script bliver der i panelet Funktionsargumenter mulighed for at indsætte værdier for de forskellige indstillingsmuligheder funktionen har. </para
><para
>Langs toppen af vinduet er der en række knapper som indvirker på scriptet som helhed. Fra venstre mod højre er det:<guibutton
>Nyt script</guibutton
>, <guibutton
>Åbn script</guibutton
>, <guibutton
>Gem script</guibutton
>, <guibutton
>Gem scriptet som...</guibutton
> og <guibutton
>Test script</guibutton
>. Funktionen af disse knapper giver sig selv, undtagen måske den sidste knap. Når man trykker på <guibutton
>Test script</guibutton
> bliver det nuværende script udført i KStars hovedvindue. Det er smart at flytte vinduet med scriptopbyggeren før du trykker på denne knap, ellers kan du jo ikke se resultatet. </para
><para
>I midten af vinduet er der en lodret række knapper, som styrer individuelle scriptfunktioner. Nedefra og op er det:<guibutton
>Tilføj funktion</guibutton
>, <guibutton
>Fjern funktionen</guibutton
>, <guibutton
>Kopiér funktionen</guibutton
>, <guibutton
>Flyt op</guibutton
> og <guibutton
>Flyt ned</guibutton
>. <guibutton
>Tilføj funktion</guibutton
> tilføjer den funktion der i øjeblikket er markeret i funktionsoversigten til scriptet (du kan også tilføje en funktion ved at dobbeltklikke på den). Resten af knapperne virker på den funktion der er markeret i boksen Nuværende script, ved enten at sletter funktionen, kopiere den eller ændre dens placering i scriptet. </para>
</sect2>

<sect2 id="sb-using">
<title
>Brug af scriptopbyggeren</title>
<para
>For at illustrere hvordan scriptopbyggeren virker, vil vi gennemgå et lille eksempel, hvor vi laver et script der månen mens uret går meget hurtigt. </para
><para
>Hvis vi vil følge Månen er vi nødt til at indstille stjernekortet så det peger på den først. Funktionen <firstterm
>lookToward</firstterm
> bruges til at gøre dette. Markér denne funktion i funktionsoversigten, og se på dokumentationen der kommer frem under oversigten. Tryk på knappen <guibutton
>Tilføj funktion</guibutton
> for at tilføje denne funktion til scriptboksen. Panelet funktionsargumenter vil nu indeholde en komboboks <quote
>Ret:</quote
>, forkortelse for retning. Det er den retning stjernekortet skal ses i. Komboboksen indeholder fra starten hovedkompasretningerne ikke Månen eller andre objekter. Men du kan enten skrive <quote
>Moon</quote
> manuelt i boksen, eller trykke på knappen <guibutton
>Objekt</guibutton
> for at bruge vinduet <guilabel
>Find objekt</guilabel
> til at vælge Månen fra listen over kendte objekter. Læg mærke at centrering på et objekt også slår følgning af objektet til, så der er ingen grund til at tilføje <firstterm
>setTracking</firstterm
>-funktionen efter lookToward. </para
><para
>Nu da vi har fået stillet ind på Månen, skal vi have tiden til at gå hurtigere. Brug funktionen <firstterm
>setClockScale</firstterm
> til dette. Tilføj den til scriptet ved at dobbeltklikke på den i funktionsoversigten. Funktionsargumentpanelet indeholder en rulleboks til at indstille tidsintervallerne for uret i simuleringen. Ret tidsintervallerne til 3 timer. </para
><para
>O.k. vi har stillet ind på Månen og speedet uret op. Nu skal vi så have scriptet til at vente nogle sekunder så stjernekortet har tid til at stille ind på månen. Tilføj funktionen <firstterm
>waitFor</firstterm
> til scriptet, og brug funktionsargumentpanelet til at angive at det skal vente i 20 sekunder før det går videre. </para
><para
>For at afslutte stiller vi tiden til at gå normalt igen. Indsæt en ny forekomst af setClockScale og sæt dens værdi til 1 sek. </para
><para
>Faktisk er vi ikke helt færdige endnu. Vi skal tvinge stjernekortet til at benytte koordinater fra ækvatorsystemet før scriptet låser sig fast på Månen og sætter farten på uret op. Hvis stjernekortet bruger koordinatsystemet horisontsystemet vil det rotere meget hurtigt over store vinkler mens Månen står op og går ned. Dette kan være meget forvirrende, og kan undgås ved at sætte indstillingen <firstterm
>UseAltAz</firstterm
> til <quote
>false</quote
>.' For at ændre indstillinger af stjernekortet bruges funktionen <firstterm
>changeViewOption</firstterm
>. Tilføj denne funktion til scriptet og se nærmere på funktionsargumentpanelet. Der er en komboboks med alle de indstillinger der kan ændres med changeViewOption. Da vi ved at vi vil ændre indstillingen UseAltAz kan vi bare markere den i komboboksen. Men listen er ret lang, og der er ingen beskrivelse af hvad hver indstillingsmulighed er til. Så det er måske lettere at trykke på <guibutton
>Gennemse træstrukturen</guibutton
> som vil åbne et vindue der indeholder en trævisning af mulighederne organiseret efter emne. Tilmed har hver indstillingsmulighed tilknyttet en kort beskrivelse af hvad den gør, og en beskrivelse af datatypen af dens værdier. Vi finder UseAltAz under kategorien <guilabel
>Stjernekortsindstillinger</guilabel
>. Markér bare dette punkt og tryk på <guibutton
>O.k.</guibutton
>, og den vil blive valgt i komboboksen i funktionsargumentpanelet. Til sidst mangler vi så bare at sætte dens værdi til <quote
>false</quote
> eller <quote
>0</quote
>. </para
><para
>Et skridt mere: ændringen UseAltAz indsat sidst i scriptet gør ingen nytte. Vi har brug for at ændre det før noget andet sker. Så marker funktionen i boksen Nuværende script, og tryk på <guibutton
>Flyt op</guibutton
> indtil det er den første funktion. </para
><para
>Nu da vi er færdige med scriptet skal det gemmes på disken. Tryk på <guibutton
>Gem script</guibutton
>. Dette åbner en dialogboks hvor du først kan give scriptet et navn og skrive din navn som forfatter. Skriv <quote
>På sporet af Månen</quote
> som scriptets navn og dit eget navn som forfatter, og tryk på <guibutton
>O.k.</guibutton
>. Derefter vil du se  &kde;s standardgemmedialogboks. Skriv et filnavn og tryk på <guibutton
>O.k.</guibutton
> for at gemme scriptet. Vær opmærksom på at hvis filnavnet ikke ender på <quote
>.kstars</quote
>, vil dette filefternavn automatisk blive tilføjet. Hvis du er nysgerrig kan du altid læse scriptfilen i enhver teksteditor. </para
><para
>Nu da vi er færdige med scriptet kan vi starte det på forskellige måder. Fra kommandolinjen kan du simpelthen køre scriptet, når bare du husker at åbne KStars først. Alternativt kan du starte scriptet inde fra KStars ved at bruge menupunktet <guimenuitem
>Kør script</guimenuitem
> i <guimenu
>Fil</guimenu
>-menuen. </para>
</sect2>

</sect1>
