<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kseg "<application
>KSeg</application
>">
  <!ENTITY cabri "<application
>Cabri</application
>">
  <!ENTITY drgenius "<application
>Dr.Genius</application
>">
  <!ENTITY package "kdeedu">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Danish "INCLUDE">
  <!-- change language only here -->
]
>

<book lang="&language;">

  <bookinfo>
    <title
>&kig;-håndbogen</title>

    <authorgroup>
      <author
><firstname
>Dominique</firstname
> <surname
>Devriese</surname
> <affiliation
> <address
><email
>devriese@kde.org</email
></address>
	</affiliation>
      </author>
    &erik.kjaer.pedersen.role; 
    </authorgroup>


    <copyright>
      <year
>2002</year
><year
>2003</year
> <holder
>Dominique Devriese</holder>
    </copyright>

    <legalnotice
>&FDLNotice;</legalnotice>

    <date
>2003-07-27</date
> <releaseinfo
>0.6.0</releaseinfo>
    
    <abstract>
      <para
>&kig; er et &kde;-program til interaktiv geometri. </para>
    </abstract>

    <keywordset>
      <keyword
>KDE</keyword
> <keyword
>KDE-Edu</keyword>
      <keyword
>Kig</keyword
> <keyword
>Interaktiv geometri</keyword>
      <keyword
>KGeo</keyword
> <keyword
>Cabri</keyword>
    </keywordset>
  </bookinfo>

  <chapter id="introduction">
    <title
>Indledning</title>

    <para
>&kig; er et program til interaktiv geometri. Det er beregnet til at  tjene to formål: </para>

    <itemizedlist>
      <listitem
><para
>At tillade elever at udforske matematiske figurer og begreber interaktivt ved brug af en computer. </para
></listitem>

      <listitem
><para
>At tjene som et <acronym
>WYSIWYG</acronym
>-værktøj til at tegne matematiske figurer og inkludere dem i andre dokumenter.</para
></listitem>
    </itemizedlist>

    <para
>Du kan rapportere problemer i &kig; ved brug af det interne fejlrapport-værktøj (<menuchoice
><guimenu
>Hjælp</guimenu
><guimenuitem
>Rapportér fejl</guimenuitem
></menuchoice
>), eller blot ved at kontakte mig på <email
>devriese@kde.org</email
>. </para>
    <para
>Da &kig; understøtter makroer og lokuser, kan det lade sig gøre at definere nogle ret avancerede makroer. Hvis du har lavet en interessant makro, som du tror kunne være nyttig for andre, kan du sende den  til mig på <email
>devriese@kde.org</email
>, så jeg kan inkludere den i distributionen (hvis du gør det vil den komme under samme licens som &kig;'s license, nemlig <ulink url="http://www.gnu.org/licenses/licenses.html#GPL"
>GPL</ulink
>, så andre kan bruge den frit og adaptere den). </para>
  </chapter>

  <chapter id="using-kig-basic">
    <title
>Basal brug</title>
    <section id="constructing-objects">
      <title
>Konstruktion af objekter</title>
      <section id="constructing-points">
	<title
>Konstruktion af punkter</title>
	<para
>Du kan konstruere punkter på adskillige måder:</para>
	  <itemizedlist>
	    <listitem>
	      <para
>Vælg <menuchoice
><guimenu
>Objekter</guimenu
> <guisubmenu
>Punkter</guisubmenu
><guimenuitem
> Normalt punkt</guimenuitem
></menuchoice
> fra menulinjen eller tryk på en passende knap i værktøjslinjen. Du kan så konstruere et punkt ved at klikke på den ønskede position i vinduet.</para
>  <note
><para
>Rent faktisk virker dette også på samme måde til at konstruere andre objekter: klik på den ønskede indgang på menulinjen eller knap på værktøjslinjen og vælg de nødvendige objekter til at konstruere objektet.</para
></note>
	    </listitem>
	    <listitem>
	      <para
>Da du ofte har brug for at konstruere punkter, vil et simpelt klik et eller andet sted på skærmen med den <mousebutton
>midterste</mousebutton
> museknap konstruere et punkt for dig, uden at gå til en menu eller knap. </para>
	    </listitem>
	    <listitem>
	      <para
>Du kan konstruere punkter mens du er ved at bygge andre objekter i baggrunden, hvis du vil ved at vælge dem for objektet du er ved at  bygge. For mere om dette, se <link linkend="constructing-other-objects"
>afsnittet nedenfor</link
>. </para>
	    </listitem>
	  </itemizedlist>

	<screenshot>
	  <screeninfo
>Et  punkt er blevet konstrueret</screeninfo>
	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="constructed_a_point.png"
	      format="PNG"/>
	    </imageobject>
	    <textobject>
	      <phrase
>Et  punkt er blevet konstrueret</phrase>
	    </textobject>
	  </mediaobject>
	</screenshot>
      </section>

      <section id="constructing-other-objects">
	<title
>Konstruktion af andre objekter</title>
	<para
>Konstruction af andre objekter end punkter gøres normalt ved at vælge en passende indgang i <guimenu
>Objekter</guimenu
>-menuen, eller ved at klikke på en af værktøjslinjens knapper. </para>
	<screenshot>
	  <screeninfo
>Konstruktion af en cirkel</screeninfo>
	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="constructing_a_circle.png"
	      format="PNG"/>
	    </imageobject>
	    <textobject>
	      <phrase
>Konstruktion af en cirkel</phrase>
	    </textobject>
	  </mediaobject>
	</screenshot>
	<para
>Dette vil starte konstruktionen af den valgte objekttype. Alle disse typer kræver argumenter. For eksempel, hvis du valgte en cirkel ved centrum og punkt, vil du skulle give det to punkter: et for centrum, og et for punktet på cirklen. </para>
	<para
>For at vælge disse argumenter, klikkes simpelthen på objektet du ønsker at bruge. Hvis du bevæger dig over et objekt der kan bruges til at konstruere objekt, vil et foreløbigt billede blive vist af hvordan objektet vil komme til at se ud. For objekter der kræver punkter som argumenter, kan du konstruere et nyt punkt ved den nuværende markørposition og vælge det ved at klikke med <mousebutton
>venstre</mousebutton
> museknap. </para>
	<para
>Du kan altid annullere konstruktionen af det nye objekt ved at trykke på &Esc;-tasten eller ved at klikke på <guiicon
>Stop</guiicon
>-knappen (rød oktagon med et <quote
>X</quote
>) på værktøjslinjen. </para>
	<screenshot>
	  <screeninfo
>Konstruktion af en cirkel.</screeninfo>
	  <mediaobject>
	    <imageobject>
	      <imagedata fileref="constructing_a_circle_2.png"
	      format="PNG"/>
	    </imageobject>
	    <textobject>
	      <phrase
>Konstruktion af en cirkel</phrase>
	    </textobject>
	  </mediaobject>
	</screenshot>
      </section>
    </section>

    <section id="selecting-objects">
      <title
>Valg af objekter</title>
      <para
>Valg af objekter kan gøres på to måder: </para>
      <itemizedlist>
	<listitem>
	  <para
>Et objekt bliver valgt ved simpelthen at klikke på det, hvilket rydder det nuværende valg. Hvis du ikke ønsker dette skal ske, så hold &Ctrl;-tasten nede mens du klikker på et objekt. </para>
	</listitem>
	<listitem>
	  <para
>Ved at klikke på et tomt sted på skærmen og trække, kan du vælge alle objekter indenfor det rektangel der opstår. Dette vil rydde det nuværende valg. Som i det tidligere tilfælde vil det at holde &Ctrl;-tasten nede forhindre dette. </para>
	</listitem>
      </itemizedlist>

      <screenshot>
	<screeninfo
>Valg af objekter</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="selecting_objects.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Valg af objekter</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>

    <section id="moving-objects">
      <title
>Flytning af objekter</title>
      <para
>For at flytte objekter må du først <link linkend="selecting-objects"
>vælge</link
> dem. </para>
      <para
>Når de objekter du ønsker at flytte er blevet valgt, kan du begynde at flytte dem ved at <mousebutton
>venstre</mousebutton
>-klikke og trække en af dem. Når du er færdig så giv blot slip på &LMB;. </para>
      <note
><para
>For visse typer objekter (de mest komplicerede lokuser), kan det være langsom at flytte objekterne hvis computeren er langsom. Dette er uheldigt, men uundgåelig givet de involverede beregninger. </para
></note
> <note
><para
>Hvis du <mousebutton
>højre</mousebutton
>klikker på et af de markerede objekter, og vælger <guimenuitem
>Flyt</guimenuitem
>, vil flytning af musen flytte objektet. Når objektet er flyttet til den ønskede position, vil et  <mousebutton
>venstre</mousebutton
>klik standse bevægelsen. </para
></note>
    </section>
    <section id="deleting-objects">
      <title
>Sletning af objekter</title>
      <para
>Sletning af objekter gøres ved først at <link linkend="selecting-objects"
>vælge</link
> dem, og dernæst gøre et af følgende: <itemizedlist>
	  <listitem>
	    <para
>Tryk på <keycap
>Delete</keycap
>-tasten. </para>
	  </listitem>
	  <listitem>
	    <para
>Tryk på <guiicon
>slet</guiicon
>-knappen i værktøjslinjen. </para>
	  </listitem>
	  <listitem>
	    <para
>Klik med &RMB; på et af objekterne, og vælg <guimenuitem
>Slet</guimenuitem
> i den <link linkend="objects-context-menus"
>sammenhængsmenu</link
> der kommer frem. </para>
	  </listitem>
	</itemizedlist>
      </para>
    </section>
    <section id="showing-hiding-objects">
      <title
>Vise og skjule objekter</title>
      <para
>I &kig;, kan objekter være skjulte. Dette gøres ved at vælge objekterne, klikke med &RMB; et af dem, og vælge <guimenuitem
>Skjul</guimenuitem
> i <link linkend="objects-context-menus"
>sammenhængsmenuen</link
> der kommer frem. </para>
      <para
>For ikke længere at skjule objekterne bruges <menuchoice
><guimenu
>Redigér</guimenu
><guimenuitem
>Skjul intet...</guimenuitem
></menuchoice
>. Dette vil gøre at ingen objekter længere vil være skjult. </para>
    </section>
    <section id="undo-redo">
      <title
>Fortryd/Annullér fortryd</title>
      <para
>I &kig;, kan du fortryde næsten enhver ændring du gør på dokumentet. Brug blot <guiicon
>fortryd</guiicon
>/<guiicon
>annullér fortryd</guiicon
> knapperne i værktøjslinjen er passende genveje. </para>
    </section>
    <section id="full-screen-mode">
      <title
>Fuldskærmstilstand</title>
      <para
>&kig; har også en fuldskærmstilstand. For at bruge den klikkes på en passende knap i værktøjslinjen eller <menuchoice
><guimenu
>Vis</guimenu
><guimenuitem
>Fuldskærm</guimenuitem
></menuchoice
> vælges. </para>
      <para
>For at forlade fuldskærmstilstand klikkes med &RMB;på skærmen et sted hvor der ikke er noget objekt til stede og  <guimenuitem
>Forlad fuldskærmstilstand</guimenuitem
> vælges, eller der trykkes på &Esc;-tasten. </para>
    </section>
  </chapter>

  <chapter id="kig-object-types">
    <title
>&kig;'s objekttyper</title>
    <para
>&kig; understøtter et temmeligt stort antal objekttyper. Bemærk venligst at ikke alle de tilgængelige objekttyper er vist i værktøjslinjerne, men at der også er nogle objekter som du kun kan konstruere via <guimenu
>Objekter</guimenu
>-menuen i menulinjen. Naturligvis er, som med alle &kde;'s programmer, det der ses i værktøjslinjerne indstilleligt. Prøv  <menuchoice
><guimenu
>Opsætning</guimenu
> <guimenuitem
>Indstil værktøjslinjer...</guimenuitem
></menuchoice
> hvis du ønsker at gøre dette. </para>
  </chapter>

  <chapter id="using-advanced">
    <title
>Avanceret brug</title>
    <section id="objects-context-menus">
      <title
>Sammenhængsmenuer</title>
      <para
>&kig; har sammenhængsmenuer for sine objekter. Prøv at klikke med &RMB; på et objekt for at se en sammenhængsmenu komme frem. Der er mange valgmuligheder: til at konstruere andre objekter, sætte farver, og endog skjule, flytte eller slette objekter. Nogle objekter har deres egne indstillinger (&eg; kan du redefinere visse punkter til at være begrænset til en linje hvor de tidligere ikke var, &etc;). Disse valgmuligheder skulle være rimeligt nemme at forstå. </para>
    </section>
    <section id="document-context-menus">
      <title
>Dokument sammenhængsmenuer</title>
      <para
>Klik med &RMB; på dokumentet (&ie; ikke på et objekt) vil præsentere en popop som du kan bruge til at begynde på at konstruere et nyt objekt,ændre det brugte koordinatsystem, vise skjulte objekter, og endog formindske og forstørre dokumentet. </para>
    </section>
    <section id="defining-macros">
      <title
>Definere makroer</title>
      <para
>En af de mere avancerede egenskaber i &kig; er dets støtte for makroer. Dette tillader dig at definere en ny type objekter ved at kombinere andre. </para>
      <para
>For eksempel: Lad os antage du ønsker at lave en makro til at konstruere en cirkel ud fra tre punkter på den, så ville du blot konstruere tre punkter, nogle vinkelrette linjer og midtpunkter indtil du finder centrum, og så konstruere cirklen ud fra det centrum du har konstrueret og et af de tidligere punkter. Følgende billede skulle gøre dette en smulemere klart. </para>
      <screenshot>
	<screeninfo
>Testkørsel af makroer</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="test_run_macro.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Testkørsel af makroer</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>

      <para
>Dernæst kommer at definere makroen. Vælg <guimenuitem
>Ny makro</guimenuitem
> fra <guimenu
>Type</guimenu
>-menuen eller klik på knappen på værktøjslinjen. En guide vil komme frem der beder dig om at vælge de givne objekter. I vort eksempel, er disse de tre punkter. Vælg de tre punkter (klik på dem for at vælge dem, klik igen for at fravælge) og klik på <guibutton
>næste</guibutton
>-knappen for at fortsætte. Endelig vælges de sidste objekter (kun cirklen i vort eksempel). </para>

      <screenshot>
	<screeninfo
>Makro-guiden</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="macro_wizard.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Makro-guiden</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>

      <para
>Efter de tidligere skridt er færdige, klik på <guibutton
>næste</guibutton
>-knappen for at fortsætte. Indtast et navn og hvis du vil en beskrivelse for din nye type, og klik på <guibutton
>Færdig</guibutton
>-knappen. Din makrotype er nu færdig. </para>

      <para
>For at bruge den nye makrotype, klik på dens knap på værktøjslinjen eller brug <guimenu
>Objekter</guimenu
>-menuen. Bygning af et makro-objekt er helt ligesom at konstruere et vilkårligt andet objekt. </para>
      <screenshot>
	<screeninfo
>Brug din nye type</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="macros_at_work.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Brug din nye type</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>
    <section id="working-with-types">
      <title
>Arbejde med typer</title>
      <para
>Som du så i det tidligere kapitel, tillader &kig; dig at lave dine egne objekter. &kig; sørger også for at når du har lavet et objekt, bliver det gemt ved afslutning og indlæst når der startes igen. Du behøver ikke at gemme eller indlæse makro-definitioner manuelt. &kig; tillader dig imidlertid at gøre mere med makroerne. Hvis du vælger <guimenuitem
>Håndtér typer</guimenuitem
> fra <guimenu
>Typer</guimenu
>-menuen vil du se en dialog hvor du kan redigere dine typer. Det tillader dig at slette typer der ikke længere bliver brugt, eksportere dem til en fil, eller endog indlæse dem fra en anden fil. </para>
      <screenshot>
	<screeninfo
>Redigér-typer dialog</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="edit_types_dialog.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Rediger-typer dialogen</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>
    <section id="text-labels">
      <title
>Tekst-etiketter</title>
      <para
>&kig; tillader dig at tilføje tekst-etiketter til en konstruktion. Det er meget nyttigt til at vise navne, forklaringer eller anden tekst i konstruktioner. &kig; kan også vise variabel information om objekter (også  kendt som <quote
>egeneskaber</quote
>). </para>
      <para
>For at starte konstruktionen af en tekst-etikette, tryk blot på 'Tekst-etikette'-knappen i &kig;'s værktøjslinje eller vælg <menuchoice
><guimenu
>Objekter</guimenu
><guisubmenu
>Andet </guisubmenu
><guimenuitem
>Tekst-etikette</guimenuitem
> </menuchoice
> i menulinjen. </para>
      <para
>Dernæst skal du vælge et sted for tekst-etiketten. Du kan enten blot vælge et tilfældigt sted på skærmen, eller vælge at <quote
>knytte</quote
> etiketten til et andet objekt. </para>
      <screenshot>
	<screeninfo
>Tilknytning af en etiket til en cirkel...</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="text_label_attaching.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Tilknytning af en etiket til en cirkel...</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
      <para
>Du kommer nu til tekst-etikette dialogen. Her kan du skrive den tekst du ønsker skal vises i den nye etikette, og klikke på  <guibutton
>Færdig</guibutton
>. Etiketten skulle nu være tilstede i dit dokument. </para>
      <screenshot>
	<screeninfo
>Tekst-etikette dialogen</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="text_label_wizard.png" format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Tekst-etikette dialogen</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
      <para
>Det forrige eksempel var meget simpelt og begrænset kun til tekst. Der er imidlertid også støtte for at vise variabel information om objekter i en etikette (&eg;. kan du konstruere en etikette der viser teksten <quote
>Dette linjestykke er %1 enheder langt...</quote
> hvor <token
>%1</token
> bliver erstattet dynamisk med længden af et bestemt linjestykke). </para>
      <para
>For at gøre dette indtastes en  tekst med et antal pladsholdere ( <token
>%1</token
>, <token
>%2</token
> &etc;) i sig. Når du er færdig, tryk på <guibutton
>Næste</guibutton
>-knappen for at fortsætte. Hvis du ønsker at ændre teksten eller variablerne senere kan du gå tilbage ved brug af <guibutton
>Tilbage</guibutton
>-knappen. </para>
      <para
>Guiden viser nu teksten du skrev med alle pladsholdere erstattet med noget i retning af <guilabel
>argument 1</guilabel
>. Valg af hvad der skal vises som et bestemt argument gøres ved først at klikke på argumentet det drejer sig om. Derpå klikkes på det objekt for hvilket du ønsker at vise information, og så vælges noget interessant information i popop-menuen der kommer frem. For eksempel, i eksemplet ovenfor, ville du klikke på <guilabel
>argument 1</guilabel
>, klikke på det rigtige linjestykke i &kig;'s hovedvindue og så vælge egenskaben <guilabel
>Længde</guilabel
>. Bagefter kan du udfylde resten af de variable dele, eller vælge en anden egenskab for en af de variable dele hvis du ønsker at ændre det. Når du er  parat klikkes på <guibutton
>Færdig</guibutton
>-knappen for at færdiggøre konstruktionen af tekstetiketten. </para>
      <screenshot>
	<screeninfo
>Valg af en egenskab for en variabel del</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata
	    fileref="text_label_wizard__select_property.png"
	    format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>Valg af en egenskab for en variabel del</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
    </section>
    <section id="locuses">
    <title
>Lokuser</title>
      <para
>&kig; har støtte for geometriske lokuser. Et lokus, eller 'geometrisk sted' er et begreb fra gymnasiets matematik. Kort sagt bliver figuren defineret ved alle de punkter et punkt bevæges over, når et andet punkt bevæges langs sine begrænsninger. Dette lyder måske lidt kompliceret, men er rent faktisk ikke et vanskeligt begreb som følgende eksempel demonstrerer. </para>
      <para
>Betragt følgende geometriske konstruktion: Vi tegner en cirkel, og et punkt der bevæger sig på randen af cirklen (konstruér dette punkt ved at putte markøren på en cirkel, og klikke med den &MMB; museknap. Hvis du så prøver at flytte det resulterende punkt, vil du se at du ikke kan flytte det væk fra cirklen). Vi tegner så et linjestykke fra dette punkt til centrum for cirklen, og midtpunktet af dette linjestykke. </para>
      <screenshot>
	<screeninfo
>En simpel lokus konstruktion</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata
	      fileref="simple_locus_construction.png"
	      format="PNG"/>
	  </imageobject>
	  <textobject>
	    <phrase
>En simpel lokus konstruktion</phrase>
	  </textobject>
	</mediaobject>
      </screenshot>
      <para
>Hvis du nu bevæger punktet der er begrænset til cirklen, kan du se at det andet punkt bevæger sig samtidigt. Hvis du holdt en pen over det andet punkt, og du flytter det første punkt rundt på hele cirklen, vil en ny cirkel, på den halve størrelse af den anden blive tegnet. Vi skal se nedenfor at dette er nøjagtigt have et lokus eller geometrisk sted gør. Stien det andet punkt gennemløber mens det første bevæger sig gennem cirklen er hvordan et lokus vil se ud. </para>
      <para
>Rent faktisk at konstruere et lokus er meget nemt. Klik på lokus-knappen i værktøjslinjen eller vælg <menuchoice
><guimenu
>Objekter</guimenu
> <guisubmenu
>Andet</guisubmenu
> <guimenuitem
>Lokus</guimenuitem
> </menuchoice
> fra menulinjen. Vælg så det begrænsede punkt som det bevægende punkt (tekst <guilabel
>Bevægende punkt</guilabel
> vil komme frem når du har musen over det), og det andet punkt som det afhængige punkt. Så vil lokus komme frem. </para>
    </section>
  </chapter>

  <chapter id="scripting">
    <title
>Scripter</title>
    <para
>&kig; tillader brugeren at lave egne typer i Python script-sproget. Dette er en meget avanceret egenskab, og jeg kender kun et andet interaktivt geometri program der har lignende funktionalitet (GNOME-programmet &drgenius; ). </para>
    <para
>Python scripter i &kig; tillader dig basalt set at have din egen måde at definere et objekt fra et vist over-objekt. For eksempel, hvis du er matematiklærer, og du har en smart måde at beregne et interessant punkt på et keglesnit, så kan du, i stedet for at rode med komplekse konstruktioner og makroer, blot skrive ned i Python kode hvordan punktet skal beregnes så vil &kig; vise det for dig. </para>
    <para
>Antag du ikke kendte til &kig;'s indbyggede midtpunkts-type, og du ønskede at vise midtpunktet for to givne punkter. Du ville så klikke på <guibutton
>Python-script</guibutton
> knappen i værktøjslinjen eller vælg <menuchoice
> <guimenu
>Objekter</guimenu
> <guisubmenu
>Andet</guisubmenu
> <guimenuitem
>Script objekt</guimenuitem
> </menuchoice
> fra menulinjen. Du bliver så præsenteret for en guide der lader dig fortsætte. </para>
    <screenshot>
      <screeninfo
>Script objekt guiden</screeninfo>
      <mediaobject>
	<imageobject>
	  <imagedata fileref="script_wizard.png" format="PNG"/>
	</imageobject>
	<textobject>
	  <phrase
>Script objekt guiden</phrase>
	</textobject>
      </mediaobject>
    </screenshot>
    <para
>Det første du skal gøre er at vælge argumenterne for script-objektet. I vort eksempel, betyder dette de to punkter for hvilke vi ønsker at vise midtpunktet. Vælg dem i &kig;'s hovedvindue, og klik på <guibutton
>Næste</guibutton
> for at fortsætte. </para>
    <para
>Nu bliver du præsenteret for en tekst-redigeringsboks hvor du kan indtaste koden for dit script-objekt. Skabelon-kode og nogle kommentarer er allerede på plads. Det er vigtigt at sørge for at din kode er gyldig Python-kode. Folk der kender til Python vil bemærke at vi rent faktisk definerer en Python-funktion der hedder <function
>calc</function
>. Det er derfor nødvendigt at adlyde Python-reglerne for at definere funktioner. For eksempel skal hver linje i funktionen starte med en <keysym
>Tab</keysym
>. Den første linje der ikke starter med en <keysym
>Tab</keysym
> afslutter definitionen af funktionen. </para>
    <para
>Python-funktionen der bliver defineret hedder <quote
>calc</quote
>, og i vores tilfælde accepterer den to argumenter. Disse er de objekter du har valgt som argumenter på den forrige skærm. Der vil være så mange argumenter som du har valgt der. De hedder <parameter
>arg1</parameter
> og <parameter
>arg2</parameter
>, men du kan ændre deres navne til noget mere betydningsfuldt hvis du vil. </para>
    <para
>I funktionen kan du udføre alle slags beregninger som du mener er nødvendige, ved brug af de to argumenter. Du skal returnere objektet du ønsker skal blive vist. I vores tilfælde er det et punkt-objekt. De to argumenter er også punkt-objekter, og vi kan bruge <function
>Point.coordinate()</function
> funktionen til at få fat i koordinaterne for de to givne punkter. </para>
    <para
>Den nødvendig beregning i vores eksempel er meget enkel, vi lægger simpelthen de to koordinater sammen, og dividerer resultatet med to. Vi konstruerer så et nyt punkt ved brug af disse koordinater. Den python-kode der bruges er:</para>

<programlisting
>def calc( a, b ):
        m = ( a.coordinate() + b.coordinate() ) / 2;
        return Point( m )
</programlisting>

    <screenshot>
      <screeninfo
>Indtastning af kode</screeninfo>
      <mediaobject>
	<imageobject>
	  <imagedata fileref="script_wizard_entering_code.png" format="PNG"/>
	</imageobject>
	<textobject>
	  <phrase
>Indtastning af kode for midtpunkt i Script-objekt guide.</phrase>
	</textobject>
      </mediaobject>
    </screenshot>
    <para
>Hvis du nu klikker på  <guibutton
>Færdig</guibutton
>-knappen, så vil det nye objekt komme frem i &kig;-dokumentet. Hvis du flytter et af punkterne, så vil det nye punkt flytte langs med dem. Mange meget mere interessante objekter kan bygges på denne måde, du opfordres til at forsøge dig frem. </para>
    <screenshot>
      <screeninfo
>Konstruerede et script-objekt</screeninfo>
      <mediaobject>
	<imageobject>
	  <imagedata fileref="constructed_script_object.png" format="PNG"/>
	</imageobject>
	<textobject>
	  <phrase
>Det nyligt konstruerede script-objekt. </phrase>
	</textobject>
      </mediaobject>
    </screenshot>
    <para
>Alle objekter i &kig; kan bruges i Python-koden. Som vi har set ovenfor er punkter af Punkt-klasse, og du kan bruge &eg; <function
>Point.coordinate()</function
> metoden. Du kan også returnere alle andre slags objekter, ikke kun punkter. Mange flere klasser og metoder er tilgængelige fra &kig;'s Python-kode, og en mere fuldstændig reference om dem findes  <ulink url="http://edu.kde.org/kig/manual/scripting-api/index.html"
>her</ulink
>. </para>
  </chapter>

  <chapter id="kig-features">
    <title
>&kig;'s egenskaber</title>

      <itemizedlist>
	<listitem>
	  <para
>&kig; er et open source program. Det betyder at det står dig frit for at bruge og ændre det som du har lyst. Distribution af &kig; foregår under nogle restriktioner, basalt set skal alle have de samme rettigheder til at bruge &kig;, inklusive at lave ændringer, som dig og mig. </para>
	  <para
>Free software programmer udvikles i en meget åben ånd, og dets udviklere er sædvanligvis meget responsive for tilbagemeldinger fra brugere. Derfor, hvis du skulle have spørgsmål, beklagelser, eller hvadsomhelst om &kig;, så lad forfatteren vide om det på <email
>devriese@kde.org</email
>. </para>
	</listitem>
	<listitem>
	  <para
>&kig; er et KPart-program, hvilket betyder at du kan indlejre det i andre &kde;-programmer. Hvis du åbner en <literal role="extension"
>.kig</literal
>-fil i &konqueror;, kan den åbnes direkte i &konqueror;-skærmen uden at behøve at starte et eksternt program. </para>
	</listitem>
	<listitem>
	  <para
>Det skulle være ligetil at arbejde med &kig;. Konstruktion af objekter er nemt og interaktivt, med foreløbige resultater der bliver vist &etc;. Det foregår som man skulle forvente når man flytter, markere og bygger ting. Støtte for at fortryde skulle også være meget intuitivt. </para>
	</listitem>
	<listitem>
	  <para
>&kig; understøtter makroer defineret på en ligetil måde. Disse objekter bliver præsenteret for brugeren som normale objekter. De bliver gemt ved afslutning on indlæst ved opstart, så de går ikke tabt ved afslutning. I <link linkend="working-with-types"
>Type-håndtering</link
> kan du håndtere disse objekter. Du kan eksportere dem til filer, importere dem fra filer, og slette dem. </para>
	</listitem>
	<listitem>
	  <para
>&kig; gemmer sine data i et rent &XML;-format. </para>
	</listitem>
	<listitem>
	  <para
>&kig; understøtter konstruktion af lokuser.. </para>
	</listitem>
	<listitem>
	  <para
>&kig; tillader dig at eksportere en &kig;-fil til nogle interessante formater, såsom billeder og XFig-filer. Dette er ret nyttigt da ikke alle programmer understøtter &kig;'s filformat endnu. </para>
	</listitem>
	<listitem>
	  <para
>&kig; har et meget fleksibelt transformationssystem. </para>
	</listitem>
	<listitem>
	  <para
>&kig; prøver på at være kompatibel med sine konkurrenter. Det er derfor den understøtter &kgeo;'s filformat, &kseg;'s filformat og støtte for andre formater er også planlagt. </para>
	</listitem>
      </itemizedlist>
  </chapter>


  <chapter id="faq">
    <title
>Spørgsmål og svar</title>
&reporting.bugs; &updating.documentation; <para
></para>
  </chapter>

  <chapter id="credits">
    <title
>Medvirkende og licens</title>

    <para
>&kig; </para>
    <para
>&kig; ophavsret 2002 Dominique Devriese <email
>devriese@kde.org</email
> </para>

    <para
>Dokumentation ophavsret 2002-2003 Dominique Devriese. <email
>devriese@kde.org</email
> </para>
    &erik.kjaer.pedersen.credit;  &underFDL; &underGPL; </chapter>

  <appendix id="installation">
    <title
>Installation</title>

    <sect1 id="getting-kig">
      <title
>Hvordan får du fat på &kig;</title>
&install.intro.documentation; </sect1>

    <sect1 id="compilation">
      <title
>Kompilering og installation</title>
&install.compile.documentation; </sect1>

  </appendix>

  <appendix id="contributing">
    <title
>Hjælp til</title>
    <section id="kig-is-free">
      <title
>Frie programmer</title>
      <para
>&kig; er <ulink url="http://www.gnu.org/philosophy/philosophy.html#AboutFreeSoftware"
> Free Software</ulink
>. Det betyder at dets kildekode er frit tilgængelig på internettet, og enhver kan bruge den, læse den, ændre den og distribuere den. Jeg arbejder på den som en hobby, og jeg har allerede lært en masse om C++ programmering, &kde;/&Qt;, matematik, samarbejde om software open source projekter i processen. </para>
    </section>
    <section id="contribute-to-kig">
      <title
>Hjælp til</title>
      <para
>Pointen i dette kapitel er at påpege over for dig (brugeren) de rettigheder som &kig;'s licens giver dig. Som med al fri software har du lov til (og opfordres) til at ordne problemer du møder mens du bruger det, at tilføje egenskaber du mangler, at distribuere dit ændrede program, og til at sende disse ændringer til mig på <email
>devriese@kde.org</email
>, så jeg kan inkludere dem i den næste udgave så andre kan nyde dem. Jeg personligt har ingen finansiel interesse i dette projekt overhovedet, så dette er ikke blot marketing-snak her. </para>
      <para
>Hvis du er usikker på dine rettigheder til brugen af denne software, eller andre menneskers ret til at bruge ændringer du laver på dette program &etc;, så læs venligst licensen. Du kan finde den i <filename
>COPYING</filename
>-filen i &kig;'s kildetræ eller licens-fanebladet i <guilabel
>Om Kig</guilabel
>-dialogen. </para>
    </section>
    <section id="howto-contribute">
      <title
>Hvordan kan jeg bidrage ?</title>
      <para
>Ethvert bidrag er velkomment. Hvis du synes ikonerne er elendige, eller at manualen trænger til at blive opdateret, eller du har denne virkelig interessante makro som du ønsker at dele med hele verden, så hold dig ikke tilbage med at sende den til mig. Husk venligst at dine bidrag vil blive distribueret under betingelserne i GNU's GPL; du kan finde betingelserne i denne license i <filename
>COPYING</filename
>-filen i &kig;'s kildetræ, og i <link linkend="credits"
>Medvirkende og licens</link
> kapitlet i denne manual. </para>
    </section>
  </appendix>

  &documentation.index;
</book>
<!--
Local Variables:
mode: xml
End:
-->
