<chapter id="applicationwizard">

<chapterinfo>
  <authorgroup>
    <author><firstname>Bernd</firstname><surname>Pol</surname></author>
    <!-- ROLES_OF_TRANSLATORS -->
  </authorgroup>
</chapterinfo>

<title>Kom i gang &mdash; med &appwizard;</title>
<!-- FIXME (bp, 2006-06-18) This is a misnomer. It should be something like -->
<!-- Working With Projects -->
<!-- featuring the application manager as part of the New Projects section. -->

<indexterm zone="applicationwizard">
  <primary>Programguiden</primary></indexterm>

<para>Arbejdet med at udvikle programmel i &tdevelop; organiseres i <emphasis>projekter</emphasis>. Et sådant projekt holder alt sammen, som hører til en fuldstændig programmeringsopgave: kildekodefiler, yderligere datafiler, alle håndteringsfunktioner som behøves, som f.eks. byggesystemet samt adgang til alle kontroller og yderligere værktøjer som behøves for at få programmet klart til at køre. </para>
<para>At organisere udviklingsarbejdet i projekter tillader dig nemt at skifte mellem eksisterende globale opgaver. Dette er rigtigt bekvemt hvis du &eg; arbejder med flere programmer samtidigt, hvilket ofte er tilfældet. Bed &tdevelop; om at åbne projektet du vil arbejde med, og du kan fortsætte i miljøet præcis hvor du tidligere forlod det. </para>

<sect1 id="new-projects">
<title>Nye projekter</title>

<!-- TODO (bp, 2006-06-18) This whole section must be completely rewritten. -->
<!-- There is no need for a tutorial habit anymore. -->

<indexterm zone="new-projects">
  <primary>projekt</primary>
  <secondary>ny</secondary></indexterm>

<para>Hver gang du vil påbegynde et nyt programmeringsprojekt, skal der udføres en hel del formelle indstillingsprocedurer. En startstruktur for mapper skal laves, nye deklarationsfiler og kildekodefiler skal laves, byggesystemet skal initieres, &etc; </para>
<para>&tdevelop; sørger for en nem måde at starte et nyt programmeringsprojekt&mdash;<emphasis>programguiden</emphasis>. Du finder programguiden via menupunktet <menuchoice><guimenu>Projekt</guimenu> <guimenuitem>Nyt projekt</guimenuitem></menuchoice>. </para>
<para>Det er kun et fåtal af skridt der er nødvendige for at oprette et nyt programmeringsprojekt med programguiden: </para>
<orderedlist>
  <listitem><para><link linkend="new-projects-start-type">Vælg programmeringssproget</link> du vil bruge, og type af program som du vil oprette ud fra et sæt fordefinerede skabeloner. </para></listitem>
  <listitem><para><link linkend="new-projects-start-general">Sørg for en del generel information</link> såsom programnavn, mappe hvor programmet skal bygges, &etc; </para></listitem>
  <listitem><para>Bestem om du vil bruge et <link linkend="new-projects-start-cvs">versionskontrolsystem</link>, som &eg; CVS, og sørg for nødvendig information som behøves. </para></listitem>
  <listitem><para>Indstil nogle skabeloner for <link linkend="new-projects-start-templates">oprindelig deklarationsfil og kildekodefil</link> (om nødvendigt). </para></listitem>
  <listitem><para>Bed til sidst programguiden om at <link linkend="new-projects-start-build">oprette alle nye ting</link>, mappestruktur, startskabeloner for deklarationsfiler og kildekodefiler, og håndteringsværktøj såsom &eg; et startskelet til at bygge programmet, &etc; </para></listitem>
</orderedlist>
<para>Voil&agrave;&mdash;det er alt. Programguiden har nu givet dig et første fungerende sæt programfiler, hvor du enkelt kan begynde at arbejde. </para>
<para>Lad os nu tage et mere detaljeret kig på alt dette... </para>

<sect2 id="new-projects-start">
<title>Indledende skridt</title>

<indexterm zone="new-projects-start">
  <primary>dialog</primary>
  <secondary>opret nyt projekt</secondary></indexterm>
<indexterm zone="new-projects-start">
  <primary>projekt</primary>
  <secondary>opret nyt projekt</secondary>
  <tertiary>dialog</tertiary></indexterm>
<indexterm zone="new-projects-start">
  <primary>projekt</primary>
  <secondary>skabeloner</secondary></indexterm>
<indexterm zone="new-projects-start">
  <primary>skabeloner</primary>
  <secondary>projekt</secondary></indexterm>

<para>For at oprette et nyt projekt i &tdevelop;, vælges <guimenuitem>Nyt projekt</guimenuitem> i menuen <guimenu>Projekt</guimenu>. Du vil nu se guiden for at oprette nyt projekt, som vises nedenfor: </para>

<screenshot id="screenshot-newprojectwizard">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project.png" format="PNG"/>
    </imageobject>
    <caption><para>Indledende dialog for at oprette et nyt projekt </para></caption>
  </mediaobject>
</screenshot>

<para>Som du kan se, er dialogen opdelt i en øvre og en nedre del. I den øverste del kan du bestemme dig for programmeringssprog og programtype. Den nederste del indeholder en del generel information. </para>

<sect3 id="new-projects-start-type">
<title>Vælg programmeringssprog og programtype</title>

<indexterm zone="new-projects-start-type">
  <primary>projekt</primary>
  <secondary>programtype</secondary></indexterm>
<indexterm zone="new-projects-start-type">
  <primary>projekt</primary>
  <secondary>programmeringssprog</secondary></indexterm>
<indexterm zone="new-projects-start-type">
  <primary>projekt</primary>
  <secondary>sprog</secondary></indexterm>
<indexterm zone="new-projects-start-type">
  <primary>sprog</primary></indexterm>
<indexterm zone="new-projects-start-type">
  <primary>programmeringssprog</primary></indexterm>
<indexterm zone="new-projects-start-type">
  <primary>program</primary>
  <secondary>type</secondary></indexterm>

<para>Du udfører dine valg på venstresiden længst oppe i dialogen. Når den kommer frem er der en liste med mapper, hver med navnet på et programmeringssprog, som for eksempel: </para>

<itemizedlist>
  <listitem><para>Ada <indexterm>
      <primary>Ada</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>C <indexterm>
      <primary>C</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>C++ <indexterm>
      <primary>C++</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Database (SQL-projekter) <indexterm>
      <primary>SQL</primary>
      <secondary>nyt projekt</secondary></indexterm>
    <indexterm>
      <primary>Database</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Fortran <indexterm>
      <primary>Fortran</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Haskell <indexterm>
      <primary>Haskell</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Java <indexterm>
      <primary>Java</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>PHP <indexterm>
      <primary>PHP</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Pascal <indexterm>
      <primary>Pascal</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Perl <indexterm>
      <primary>Perl</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Python <indexterm>
      <primary>Python</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Ruby <indexterm>
      <primary>Ruby</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
  <listitem><para>Skal (scripter for Bash skallen) <indexterm>
      <primary>Bash</primary>
      <secondary>nyt projekt</secondary></indexterm>
    <indexterm>
      <primary>skal</primary>
      <secondary>nyt projekt</secondary></indexterm>
  </para></listitem>
</itemizedlist>

<para>For at være præcis, indeholder mapperne i virkeligheden ikke rigtige programmeringsværktøjer. De fører til fordefinerede <emphasis>skabeloner</emphasis> som du kan bruge som udgangspunkt for udvikling i et sprog. For at få en idé om hvad der tilbydes, åbn kun en mappe af gangen. Der er en serie af undermapper i visse, men kun en eller flere enkle indgange i andre. Undermapperne du ser organiserer de tilgængelige skabeloner ifølge visse opgaver, de enkle indgange navngiver skabeloner som du kan vælge. </para>
<para>Her kan vi ikke i detalje gå ind på hvilke opgaver hver skabelon sørger for, men det er nemt at finde ud af. Så snart du markerer en skabelonindgang, vises nogen information i feltet til højre. I det nederste felt ser du en <emphasis>kort beskrivelse</emphasis> om hvad skabelonen er beregnet til at gøre. I feltet ovenfor vises et billede, om tilgængelig, med hvordan programmet som skabelonen producerer ser ud hvis du kompilerer og kører den uden ændring. Oftest er det et <emphasis>skærmaftryk</emphasis> af hovedvinduet som programmet viser. </para>
<para>Vælg skabelonen som bedst passer målene for dit program som startpunkt. Indtast derefter information om almene egenskaber i de nederste felter, som vises i næste kapitel. </para>

<formalpara>
<title>Vælg et projekthåndteringssystem</title>
<para>Hver skabelon er bundet til et bestemt <link linkend="makesystems">Projekt håndteringssystem</link>. For øjeblikket er der ikke nogen måde frit at vælge et sådant projekthåndteringssystem. Du skal finde en skabelon som passer til dine behov eller ændre dit projekt ifølge et efter oprettelsen. </para>
</formalpara>

</sect3> <!-- new-projects-start-type -->

<sect3 id="new-projects-start-general">
<title>Angiv almen information</title>

<indexterm zone="new-projects-start-general">
  <primary>projekt</primary>
  <secondary>egenskaber</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>egenskaber</primary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>program</primary>
  <secondary>navn</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>navn</primary>
  <secondary>program</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>projekt</primary>
  <secondary>mappe</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>mappe</primary>
  <secondary>projekt</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>søgesti</primary>
  <secondary>nyt projekt</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>projekt</primary>
  <secondary>forfatter</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>projekt</primary>
  <secondary>e-mail</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>forfatter</primary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>e-mail</primary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>projekt</primary>
  <secondary>main.cpp</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>main.cpp</primary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>projekt</primary>
  <secondary>licens</secondary></indexterm>
<indexterm zone="new-projects-start-general">
  <primary>licens</primary></indexterm>

<para>Den nederste del af siden <guilabel>Generelt</guilabel> i dialogen <guilabel>Opret nyt projekt</guilabel> er et indrammet felt som hedder <guilabel>Egenskaber</guilabel>. Du skal sørge for en del almen information om projektet, så programguiden ved hvordan den oprindelige struktur skal bygges. </para>
<formalpara>
<title>Programnavn</title>
<para>Dit program behøver naturligvis et navn. Indtast det i det øverste felt under <guilabel>Egenskaber</guilabel>, som hedder <guilabel>Programnavn</guilabel>. Vi bruger <quote>MyApp</quote> som eksempel. </para>
</formalpara>
<para>Når du gør det, mærker du at programguiden nægter at acceptere specialtegn af nogen slags. De eneste tegn som accepteres er: <itemizedlist>
  <listitem><para>små og store bogstaver</para></listitem>
  <listitem><para>tal</para></listitem>
  <listitem><para>tegnet understregning</para></listitem>
</itemizedlist>
</para>
<para>En fremtrædende grund til begrænsningen er at programguiden vil bruge programnavnet som <emphasis>basis for visse klassenavn</emphasis> som den laver når den opbygger projektet fra begyndelsen. Altså skal projektets navn følge reglerne for programsproget som bruges. </para>
<formalpara>
<title>Projektmappen</title>
<para>Den anden udmærkede grund for begrænsningen ser du på nederste linje i området <guilabel>Egenskaber</guilabel>. Den hedder <guilabel>Endeligt sted</guilabel>, og viser mappen hvor programguiden laver programmet. </para>
</formalpara>
<para>Når du indskriver programmets navn mærker du at programguiden gentager det du indskriver længst nede på linjen <guilabel>Endeligt sted</guilabel>, men kun med små bogstaver. </para>
<para>Altså skal du vælge  navnet på det nye program med forsigtighed. Hvis du ender med en mappe som allerede bruges, lader programguiden dig ikke fortsætte til næste skridt, ved at beholde knappen <guibutton>Næste &gt;</guibutton> inaktiv (grå). Den <emphasis>advarer</emphasis> dig også ved at tilføje <quote>(fil eller mappe findes allerede)</quote> sidst på linjen <guilabel>Endeligt sted</guilabel>. </para>

<formalpara>
<title>Startsøgesti</title>
<para>Der er to måder at vælge en anden søgesti til det nye program. En er at bruge et andet navn. Det er dog ikke altid muligt (&eg; laver du måske en ny udgave af et eksisterende program). Som et alternativ kan du vælge en anden søgesti til programmappen. </para>
</formalpara>
<para>Det gøres i den anden linjes indtastningsfelt under <guilabel>Egenskaber</guilabel>, som hedder <guilabel>Sted</guilabel>. Det du skriver her er <emphasis>startsøgestien</emphasis> for det nye programs udviklingsmappe. Programguiden tilføjer  programnavnet sidst i søgestien når det nye projekt laves. Resultatet vises på linjen <guilabel>Endeligt sted</guilabel> for at bedre vise hvad der sker. </para>
<para>Programguiden kopierer en <emphasis>startværdi</emphasis> til feltet <guilabel>Sted</guilabel> fra begyndelsen. Det hentes fra det du har valgt under feltet <guilabel>Standardprojektmappe</guilabel> under de <link linkend="setup-general">generelle indstillinger</link>. I vores tilfælde har vi &tdevelop; sat op til at bruge <filename class="directory">/home/devel/projects/</filename> som oprindelig sti for nye projekter. </para>
<para>Ændr indholdet i feltet <guilabel>Sted</guilabel>, så udviklingsmappen for programmet som vises på linjen <guilabel>Endeligt sted</guilabel> er entydig. </para>
<!--TODO add tab description Project Options -->
<note><para>Sørg for at søgestien du skriver ind i feltet <guilabel>Sted</guilabel> allerede findes. Ellers kommer du ikke til at kunne fortsætte til næste skridt. Programguiden <emphasis>advarer</emphasis> dig om søgestier som ikke findes, ved at tilføje <quote>(ugyldig)</quote> sidst på linjen <guilabel>Endeligt sted</guilabel>. </para></note>

<screenshot id="screenshot-createnewprojectoptions">
  <mediaobject>
    <imageobject>
      <imagedata fileref="createnewprojectoptions.png" format="PNG"/>
    </imageobject>
    <caption><para>Indstil et nyt projekt for CVS </para></caption>
  </mediaobject>
</screenshot>

<formalpara>
<title>Personlig information</title>
<para>Felterne som følger er ikke så kritiske. Angiv blot dit navn (&ie; navnet på personen som er ansvarlig for programmet) i feltet <guilabel>Forfatter</guilabel>, og en gyldig e-mail-adresse i feltet <guilabel>E-mail</guilabel>, så brugere kan give dig tilbagemeldinger om programmet. </para>
</formalpara>

<note>
<orderedlist>
  <listitem><para>&appwizard; udfylder feltet med standardværdier, som tages fra e-mail-indstillingerne i KDE's kontrolcenter. Hvis standardværdierne i felterne <guilabel>Forfatter</guilabel> og <guilabel>E-mail</guilabel> under <guilabel>Opret nyt projekt</guilabel> ikke passer, bør du kontrollere e-mail-indstillingerne i KDE's kontrolcenter. </para></listitem>
  <listitem><para>Programguiden sammenstiller informationen til en startprogramskabelon hvis  det er muligt. For &kde; C++ programmer, finder du den for eksempel i begyndelsen af kildekodefilen <filename>main.cpp</filename>. </para></listitem>
  <listitem><para>Feltet <guilabel>E-mail</guilabel> er det <emphasis>valgfrie</emphasis> blandt felterne, hvilket skyldes at ikke alle udviklere har adgang til internettet. Du kan lade feltet være tomt, og fortsætte alligevel. </para></listitem>
</orderedlist>
</note>

<formalpara>
<title>Versions- og licensinformation</title>
<para>Indskriv til sidst startversion for det nye program i feltet <guilabel>Version</guilabel>, og vælg licensen du vil skal gælde for dit program i dropned-feltet <guilabel>Licens</guilabel>. </para>
</formalpara>

<para>Hvis du vælger en programtype hvor programguiden sørger for fælles kildekodetekstskabeloner (&eg; C/C++), bør du kigge på licensinformationsteksten på tredje side i dialogen <guilabel>Opret nyt projekt</guilabel> (se kapitlet <link linkend="new-projects-start-templates">Angiv skabeloner for deklarationer og kildekode</link> nedenfor). </para>
<para>Hvis du valgte <quote>Egen</quote> i dropned-feltet <guilabel>Licens</guilabel> skal du selv sørge for en licenstekst. </para>

<note><para>Både version og licensinformation vil også blive indsat i startskabelonerne i et passende format, som programtypen du vælger, tilbyder. </para></note>

<para>Når du har skrevet al denne informationen korrekt ind, så tryk på knappen <guibutton>Næste &gt;</guibutton>, for at fortsætte, som vist i de følgende kapitler. </para>
</sect3> <!-- new-projects-start-general -->

</sect2> <!-- new-projects-start -->

<sect2 id="new-projects-start-cvs">
<title>Angiv information om versionssystem</title>

<indexterm zone="new-projects-start-cvs">
  <primary>CVS</primary>
  <secondary>nyt projekt</secondary></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary>projekt</primary>
  <secondary>CVS</secondary></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary>database</primary>
  <secondary>CVS</secondary></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary>version</primary>
  <secondary>database</secondary></indexterm>
<indexterm zone="new-projects-start-cvs">
  <primary>version</primary>
  <secondary>CVS</secondary></indexterm>

<para>I det andet skridt, leder programguiden dig til siden <guilabel>Versionskontrolsystem</guilabel>, hvor du kan bestemme hvilket versionskontrolsystem du vil bruge. </para>

<note><para>Denne beskrivelse koncentreres kun om behovene for at oprette projekter. For mere information om &CVS;, se kapitlet <link linkend="cvs">Brug af &CVS;</link> nedenfor. </para></note>

<formalpara>
<title>Intet versionskontrolsystem ønskes</title>
<para>Fra begyndelsen er <quote>Intet</quote> valgt i fanebladet <guilabel>Versionskontrolsystem</guilabel> og siden er i øvrigt tom. Hvis du ikke vil bruge et versionskontrolsystem, så klik blot på knappen <guibutton>Næste </guibutton> for at fortsætte. </para>
</formalpara>

<formalpara>
<title>Brug af &CVS;</title>
<para>Ellers skal du vælge versionskontrolsystemet som du vil bruge i dropned-feltet <guilabel>Versionskontrolsystem</guilabel>. For øjeblikket er kun <quote>&cvs;</quote> tilgængeligt. Hvis du vælger det, viser programguiden siden igen, men nu indeholder den et antal felter som du skal udfylde. </para>
</formalpara>

<screenshot id="screenshot-newproject-cvs">
  <mediaobject>
    <imageobject>
      <imagedata fileref="create-new-project-cvs.png" format="PNG"/>
    </imageobject>
    <caption><para>Indstil et nyt projekt for CVS </para></caption>
  </mediaobject>
</screenshot>

<para>Et versionskontrolsystem som &CVS; (hvilket betyder <quote>Concurrent Versions System</quote>) opbevarer kopier af udvalgte projektfiler i en slags database. Hvis du bruger &CVS;, kan du blandt andet overføre (<quote>arkivere</quote>) filerne eller tage dem ned til din projektmappe (<quote>tjekke ud</quote>, eller <quote>opdatere</quote>). Det særlige ved dette er at filerne i versionsdatabasen opbevares på en struktureret måde, hvilket gør at du altid kan gå tilbage til et tidligere udviklingstrin hvis du behøver det. &CVS; tillader også flere udviklere nemt at samarbejde i et stort projekt (såsom &tdevelop;), uden at forstyrre hinandens arbejde. </para>

<indexterm zone="new-projects-start-cvs-root">
  <primary>CVS</primary>
  <secondary>rod</secondary></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary>rod</primary>
  <secondary>CVS</secondary></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary>CVS</primary>
  <secondary>lokal</secondary></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary>CVS</primary>
  <secondary>ekstern</secondary></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary>lokal CVS</primary></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary>:local:</primary></indexterm>
<indexterm zone="new-projects-start-cvs-root">
  <primary>CVS</primary>
  <secondary>:local:</secondary></indexterm>

<formalpara id="new-projects-start-cvs-root">
<title>&CVS;-rod</title>
<para>&CVS; skal <emphasis>håndtere</emphasis> versionsdatabasen som den har fra dine projektfiler. For at opnå dette har den en del speciel databaseinformation i en egen mappe, som kaldes <emphasis>&CVS;-roden</emphasis>. Det første skridt for at indstille &CVS; for det nye projekt, er altså at fortælle &tdevelop; hvor roden findes. </para>
</formalpara>

<para><emphasis>Lokal &CVS;-rod.</emphasis> Der er to grundlæggende muligheder. Enten vil du bruge en <emphasis>lokal</emphasis> &CVS;-database, eller du vil bruge en database som findes på en <emphasis>fjernserver</emphasis>. Hvis du udvikler på egen hånd, vil du måske bruge &CVS;-databasen som en slags sikkerhedskopieringssystem på din egen maskine. Oftest laves den i din hjemmemappe og gives navnet <filename>cvsroot</filename>. Det kan se ud på følgende måde: </para>
<para><userinput><filename class="directory">/home/udvikling/cvsroot</filename></userinput> (hvor <filename>udvikling</filename> simpelthen angiver brugeren <quote>udvikling</quote>, kun som et eksempel) </para>

<note><para>I virkeligheden er dette en forkortet form. Mere fuldstændigt skal den lokale &CVS;-rod adresseres med præfikset <computeroutput>:local:</computeroutput>. Den forkortede form tillades kun i tilfælde hvor filnavnet begynder med en skråstreg (<computeroutput>/</computeroutput>). Det fuldstændige navn på vor lokale &CVS;-rod i eksemplet ville se nøjagtigt ud som: <filename class="directory">:local:/home/udvikling/cvsroot</filename>. </para></note>

<para>Indtast navnet på &CVS;-rodmappen som systemet har indstillet for feltet <guilabel>CVS-rod</guilabel>. I princippet kan du vælge et hvilket som helst navn, til og med bruge flere &CVS;-databaser, men det er passende at beholde &CVS;-roden når den først er indstillet. </para>
<para><emphasis>Initiér en ny &CVS;-rod</emphasis>. Hvis der ikke er en &CVS;-root, endnu kan &tdevelop; indstille &CVS;-systemet til at oprette en for dig i den givne mappe. Markér blot afkrydsningsfeltet <guilabel>Initiér rod</guilabel> under feltet <guilabel>CVS-rod</guilabel>. </para>
<note><para>Som sagt, <emphasis>beordrer</emphasis> &tdevelop; kun &CVS;-systemet til at initiere en ny &CVS;-rod. Den gør ingenting selv med mappen. Heldigvis er &CVS; smart nok til at kontrollere om &CVS;-rodmappen allerede findes. Derfor gør det ingen skade hvis du skulle have markeret <guilabel>Initiér rod</guilabel> for en eksisterende &CVS;-rodmappe. </para></note>

<para><emphasis>Ekstern &CVS;-rod.</emphasis> Der er tilfælde hvor &CVS;-databasen skal være på en fjernserver, især når flere udviklere arbejder med samme projekt. Så skal du indtaste &CVS;-rodens URL for serveren i feltet <guilabel>&CVS;-rod</guilabel>. Hvis du for eksempel vil have adgang til &kde;'s &CVS;-server: </para>
<para><userinput><filename class="directory">:pserver:<replaceable>min_indlogning</replaceable>@cvs.kde.org:/home/kde</filename></userinput> (hvor <replaceable>min_indlogning</replaceable> angiver indlogningsnavnet som er indstillet i din &kde; &CVS;-konto) </para>

<indexterm zone="new-projects-start-cvs-remote">
  <primary>ekstern CVS</primary></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary>:pserver:</primary></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary>:ext:</primary></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary>CVS</primary>
  <secondary>:local:</secondary></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary>CVS</primary>
  <secondary>:pserver:</secondary></indexterm>
<indexterm zone="new-projects-start-cvs-remote">
  <primary>CVS</primary>
  <secondary>:ext:</secondary></indexterm>

<formalpara id="new-projects-start-cvs-remote">
<title>Servertyper for fjern-&CVS;</title>
<para>Det er i hovedsagen to fjernservertyper for &CVS; med udbredt brug: <emphasis>pserver</emphasis> som bruger en kodeordssikret ukrypteret protokol, og <emphasis>ext</emphasis>-serveren som bruger krypteret dataoverførsel via rsh eller ssh. De adskilles af &URL;-præfikset de bruger: </para>
</formalpara>
<para>
<filename>:pserver:</filename>
</para>
<para>for den ukrypterede <quote>kodeordsbeskyttede server</quote> type, og </para>
<para>
<filename>:ext:</filename>
</para>
<para>for en servertype krypteret med rsh eller ssh. For eksempel </para>
<para>
<userinput><filename class="directory">:ext:<replaceable>mitlogin</replaceable>@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</filename></userinput>
</para>
<para>får adgang til &CVS;-roden for det meget brugte &CVS;-håndteringsværktøj <application>Cervisia</application> på serveren SourceForge. </para>
<para>Hvis du vil bruge en krypteret server via rsh eller ssh for adgang til &CVS;, skal du fortælle &tdevelop; hvilken krypteringsprotokol der skal bruges. Indskriv blot <userinput>rsh</userinput> eller <userinput>ssh</userinput> i feltet <guilabel>CVS_RSH</guilabel> på siden <guilabel>Versionskontrolsystem</guilabel> i <guilabel>Opret nyt projekt</guilabel>. </para>

<note><para>Der er et problem hvis du bruger en krypteret server for &CVS; inde i &tdevelop;. Se kapitlet <link linkend="cvs">Brug af &CVS;</link> for detaljeret information. </para></note>

<indexterm zone="new-projects-start-cvs-repository">
  <primary>CVS</primary>
  <secondary>arkiv</secondary></indexterm>
<indexterm zone="new-projects-start-cvs-repository">
  <primary>arkiv</primary>
  <secondary>CVS</secondary></indexterm>

<formalpara id="new-projects-start-cvs-repository">
<title>&CVS;-arkivet</title>
<para>Hidtil har du fortalt &tdevelop; hvor &CVS;-roden er, som håndterer versionsdatabasen og hvordan du har adgang til den. Nu skal du fortælle &tdevelop; hvilket navn du ønsker at &CVS; skal bruge for at gemme dine projektfiler i databasen. Et sådant sted hvor projektfilerne opbevares i &CVS;, kaldes et <emphasis>arkiv</emphasis>. </para>
</formalpara>
<para>I princippet kan du bruge et hvilket som helst navn for projektfilernes &CVS;-arkiv, så længe det opfylder specifikationerne for at navngive en fil. Oftest bruger de fleste udviklere alligevel selve programmets navn. &CVS; bygger en mappe med navnet under &CVS;-roden, derfor er det nemmere hvis du beholder programnavnet for det. </para>
<para>Indskriv blot arkivnavnet som du vil bruge i feltet <guilabel>CVS-arkiv</guilabel> på siden <guilabel>Versionskontrolsystem</guilabel> under <guilabel>Opret nyt projekt</guilabel>. I vort eksempel er det <userinput>Mit_nye_program</userinput>. </para>

<warning><para><emphasis>Sørg for ikke at bruge et arkiv som allerede findes!</emphasis>. &CVS;-systemet advarer ikke om duplikerede filer, men smider alting ind som ikke producerer en formel konflikt. Du vil lave rod i alting! </para></warning>

<formalpara>
<title>Tilbageværende felter</title>
<para>Der er ikke meget arbejde tilbage. Programguiden har allerede indstillet de øvrige felter for dig. Mere detaljeret: </para>
</formalpara>
<para>Feltet <guilabel>Leverandør</guilabel> bruges kun af kompatibilitetsgrunde. Du kan beholde standardværdien <quote>leverandør</quote> som programguiden har skrevet her. </para>
<para>Feltet <guilabel>Meddelelse</guilabel> gør det muligt at indtaste en kommentar om indholdet i &CVS; fra begyndelsen. Brug hvilken som helst tekst du vil, eller behold blot standardværdien <guilabel>nyt projekt</guilabel> som programguiden har skrevet ind. </para>
<para><guilabel>Udgavemærke</guilabel> indeholder navnet som bruges som mærke for den oprindelige tilstand af projektet. Et sådant <emphasis>mærke</emphasis> navngiver en vis tilstand i &CVS;-arkivet, som du senere kan bruge til at komme tilbage til den tilstand for udviklingen. (Se videre i kapitlet <link linkend="cvs">Brug af &CVS;</link>.) </para>
<para>Programguiden har indskrevet standardmærket <quote>start</quote> her, som er et værdigt forslag. Behold det blot. </para>

<note>
<para>Hvis noget i al denne information om versionskontrol er forkert, mærker &tdevelop; det oftest ikke før end projektet laves. Det er &CVS;-systemet som finder fejlen når det forsøger at lave arkivet. Derfor skal du holde øje med vinduet <guilabel>Meddelelser</guilabel> i &tdevelop; når projektet laves i det sidste indstillingsskridt. Hvis der var nogen fejl med &CVS;, ser du oftest en fejlmeddelelse som denne: </para>

<screen><computeroutput>
* cd '/home/udvikling/test' &amp;&amp; cvs -d '/home/udvikling/min_cvsrod' \
  import -m 'nyt projekt' '' 'leverandør' 'start' &amp;&amp;\
  sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \
  '/home/udvikling/min_cvsrod'
* cvs [import aborted]: /home/udvikling/min_cvsrod/CVSROOT: No such file or
  directory
* *** Exited with status: 1 ***
</computeroutput></screen>

<para>Hvis dette sker, skal du enten indstille &CVS; manuelt (det skal være lykkedes  for &tdevelop; at initiere dine projektfiler på dette tidspunkt) eller fjerne projektmappen og begynde forfra igen med <guimenuitem>Nyt projekt</guimenuitem> i menuen <guimenu>Projekt</guimenu>. </para>
</note>

<para>Efter du har indtastet al information relateret til &CVS;, så klik på knappen <guibutton>Næste &gt;</guibutton> for at fortsætte. </para>

<note><para>Hvis du vil rette en fejl på foregående side i <guilabel>Opret nyt projekt</guilabel>, så tryk blot på knappen <guibutton>&lt; Tilbage</guibutton>. Programguiden husker dine indstillinger på nuværende side, så du kan nemt fortsætte når du kommer tilbage. </para></note>

</sect2> <!-- new-projects-start-cvs -->

<sect2 id="new-projects-start-templates">
<title>Angiv skabeloner for deklarationer og kildekode</title>

<para>Næste skridt tager dig til en serie sider, hvor du kan indstille almindelig information som du vil inkludere i dine kildekode- og deklarationsfiler, hvis opgaven det drejer sig om tillader det. </para>
<para>Både deklarationsskabeloner og kildekodeskabeloner sørges der for for C og C++ programmer, hver og sin egen side. For andre sprog er der måske kun kildekodeskabeloner. I visse tilfælde ser du til og med at skabelonsiden er tom. </para>
<para>Hvis siden bruges, udfylder programguiden nogle almindelige kommentarer i sidehovedet, som kan se sådan her ud for et C++ baseret program: </para>

<screen><computeroutput><literal>
/***************************************************************************
 *   Copyright (C) 2003 by Dit navn                                       *
 *   dig@dig.dk                                                           *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
</literal></computeroutput></screen>

<para>Andre skabeloner sørger for lignende information på et format ifølge definitionen af programmeringssproget du vil bruge. </para>
<para>Som du måske har bemærket, har programhåndteringen allerede udfyldt noget information som du angav på den første side <guilabel>Generelt</guilabel> i dialogen <guilabel>Opret nyt projekt</guilabel>, nærmere bestemt indholdet i felterne <guilabel>Forfatter</guilabel> og <guilabel>E-mail</guilabel>. Rigtig licensinformation er også indsat, følgende dit valg i fanebladet <guilabel>Licens</guilabel>. </para>

<sect3 id="new-projects-start-templates-edit">
<title>Hvordan skabelonerne kan redigeres</title>

<indexterm zone="new-projects-start-templates-edit">
  <primary>skabeloner</primary>
  <secondary>projekt</secondary>
  <tertiary>redigér</tertiary></indexterm>
<indexterm zone="new-projects-start-templates-edit">
  <primary>projekt</primary>
  <secondary>skabeloner</secondary>
  <tertiary>redigér</tertiary></indexterm>

<para>Skabelonerne som du indstiller i dialogen <guilabel>Opret nyt projekt</guilabel> behandles hver gang du beder &tdevelop; om at oprette en ny kildekodefil og/eller deklarationsfil. Informationen som du angiver her, inkluderes længst oppe i et dokumentationshovede, inden koden begynder. </para>
<para>Du er dog ikke begrænset til ren tekst. &tdevelop; kender til flere variabler, som lader dig inkludere rigtig information i filen. Programguiden bruger i virkeligheden blot nogle sådanne variabler for at inkludere information om <guilabel>Forfatter</guilabel>, <guilabel>E-mail</guilabel> og <guilabel>Licens</guilabel> i den oprindelige skabelonteksten. </para>

<variablelist>
<varlistentry>
<term>Indsæt filinformation fra &doxygen;</term>
<listitem>
<para>Hvis du for eksempel ønsker at dokumentationen af programgrænsefladen som &doxygen; laver, skal vise yderligere information om filens indhold i listen med filnavne, kan du tilføje følgende linjer til kildekodefilens skabelon: </para>
<screen><computeroutput>
/**
 * \file $MODULE$.cpp
 * \brief (skriv en kort beskrivelse her).
 **/
</computeroutput></screen>
<para>Så snart du laver en ny kildekodefil, erstatter &tdevelop; variablen <varname>$MODULE$</varname> med navnet på den nyoprettede fil. Hvis du for eksempel laver en ny C++ klasse som hedder <classname>EnEnkelTest</classname>, ser du følgende linjer i filen <filename>enenkeltest.cpp</filename>: </para>
<screen><computeroutput>
/**
 * \file enenkeltest.cpp
 * \brief (skriv en kort beskrivelse her).
 **/
</computeroutput></screen>
<para>Du skal stadigvæk sørge for den korte beskrivelse efter nøgleordet <quote>\brief</quote>, men en del af jobbet er allerede gjort automatisk for dig. </para>
</listitem>
</varlistentry>

<varlistentry>
<term>Tekstfilen med licensen</term>
<listitem>
<para>Som et andet eksempel kunne du inkludere en eksplicit reference til licensteksten som du vil bruge i skabelonen. Brug variablen <varname>$LICENSEFILE$</varname> til dette, og tilføj for eksempel følgende linje: </para>

<screen><computeroutput>
//   Se $LICENSEFILE$ for den fuldstændige licenstekst.
</computeroutput></screen>
<para>Programguiden erstatter <varname>$LICENSEFILE$</varname> med navnet på filen hvor den fuldstændige licenstekst findes, nemlig: </para>
<screen><computeroutput>
//   Se COPYING for den fuldstændige licenstekst.
</computeroutput></screen>
<para>for <acronym>GPL</acronym>-licensen, eller </para>
<screen><computeroutput>
//   Se LICENSE.BSD for den fuldstændige licenstekst.
</computeroutput></screen>
<para>hvis du bestemmer dig for at bruge <acronym>BSD</acronym>-licensen for programmet. </para>
<para>Der er naturligvis flere variabler som &tdevelop; kender til. Se afsnittet <link linkend="newfiles-edittemplates">Redigér skabelonerne</link> i kapitlet <link linkend="editing">Redigeringsværktøjer</link> for at finde ud af hvad der er muligt. </para>
</listitem>
</varlistentry>
</variablelist>

<note><para>Skabelonerne som du definerer her får ingen virkning førend programguiden har lavet det nye projekt. Du finder informationen længst oppe i filerne som du selv laver under udviklingsprocessen. Når de oprindelige filer laves, bruger programguiden nogle fordefinerede standardskabeloner. Du skal indstille de oprindelige filer til dine behov manuelt. </para></note>

</sect3> <!-- new-projects-start-templates-edit -->
</sect2> <!-- new-projects-start-templates -->

<sect2 id="new-projects-start-build">
<title>Byg de oprindelige projektfiler</title>

<indexterm zone="new-projects-start-build">
  <primary>projekt</primary>
  <secondary>ny</secondary>
  <tertiary>byg</tertiary></indexterm>
<indexterm zone="new-projects-start-build">
  <primary>projekt</primary>
  <secondary>oprindelig bygning</secondary></indexterm>

<para>Nu er næsten alt klart. På den sidste side i skabelonen, er knappen <guibutton>Næste &gt;</guibutton> ændret så den nu lyder <guibutton>Afslut</guibutton>. </para>
<para><emphasis>Tænk dig om inden du klikker på den!</emphasis> Du har stadigvæk mulighed for at undersøge alting ved at bruge knappen <guibutton>&lt; Tilbage</guibutton> gentagne gange. Eftersom programguiden husker al information du hidtil har indtastet, kan det være passende at tage dig tid at kigge tilbage en gang til. Hvis du bruger lokal &CVS;, så glem ikke at kontrollere navnet på <emphasis>&CVS;-arkivet</emphasis> igen (der må ikke allerede være nogen undermappe med dette navn i &CVS;-rodmappen. Hvis der er det, så forsøg med et andet arkivnavn). </para>
<para>Hvis du nogensinde ikke ønsker at det nye projekt skal bygges, så afbryd dialogen <guilabel>Opret nyt projekt</guilabel> med knappen <guibutton>Afbryd</guibutton>. Klik ellers på <guibutton>Afslut</guibutton>, og se i vinduet <guilabel>Meddelelser</guilabel> hvordan programguiden laver projektet. </para>
<para>Hvis du vil bruge et versionshåndteringssystem (&CVS;), sker det i virkeligheden i to kørsler. Programguiden bygger først projektmapperne og kalder siden &CVS;-programmet som starter vinduet <guilabel>Meddelelser</guilabel> med sit eget indhold. Hvis nogen fejl opstår i en af kørslerne, stopper processen og viser dig en tilsvarende fejlmeddelelse i vinduet. </para>

<note><para>I mange tilfælde når dit nye projekt er blevet sat op på denne måde, vil &tdevelop; automatisk indlæse kildefiler for en eller flere af de basalt vigtige moduler så du kan begynde at arbejde med det samme. (Hvilke kildemoduler vil blive vist&mdash;hvis der er nogen&mdash;det afhænger imidlertid af den skabelon der blev valgt oprindeligt i programguiden.) </para></note>

<para>Glem ikke at kontrollere hvad programguiden sørger for fra begyndelsen. Du vil måske for eksempel ændre den oprindelige information i filhovederne ifølge dine egne skabeloner. Oftest finder du dem i undermappen <filename class="directory">templates</filename> i projektmappen. Nogle enkle kopieringshandlinger er oftest utilstrækkeligt. </para>
<para>Derefter er det tilrådeligt at du <emphasis>kompilerer det oprindelige projektet</emphasis> inden du forsøger at ændre nogen kode. I de fleste tilfælde skulle denne første kompilering være mulig. På den måde kan du afgøre om projektet virkelig er blevet oprettet ifølge dine behov. Hvis det ikke er det, så fjern blot projektmappen (i den lokale &CVS;-rod også, hvis du bruger en) og begynde forfra. </para>

<warning id="defaultbuild-warning"> <!-- ### remove this when "default" works again -->

  <indexterm zone="defaultbuild-warning">
    <primary>standard-byggeindstilling</primary>
    <secondary>advarsel</secondary></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary>byggeindstillinger</primary>
    <secondary>advarsel om standard-byggeindstilling</secondary></indexterm>
  <indexterm zone="defaultbuild-warning">
    <primary>advarsel</primary>
    <secondary>standard-byggeindstilling</secondary></indexterm>

  <para>Inden du kompilerer det nye projekt første gang, kig så på <menuchoice><guimenu>Projekt</guimenu> <guimenuitem>Byggeindstilling</guimenuitem></menuchoice>. Hvis der er tre valgmuligheder som vises: <guimenuitem>default</guimenuitem>, <guimenuitem>optimized</guimenuitem> og <guimenuitem>debug</guimenuitem>, med <guimenuitem>debug</guimenuitem> markeret, så behold det endelig, eller brug <guimenuitem>optimized</guimenuitem> i stedet for. </para>
  <para>På grund af visse begrænsninger i den nuværende indstilling af autoconf og automake, skal du <emphasis>under ingen omstændigheder</emphasis> bygge med indstillingen <guimenuitem>default</guimenuitem>. Det forstyrrer visse interne mappeindstillinger, og gør at <command>configure</command> klager når du senere forsøger at bruge den med byggeindstillingerne <guimenuitem>optimized</guimenuitem> eller <guimenuitem>debug</guimenuitem>. </para>
  <para>(Dette gælder kun for disse flervalgsmuligheder. Hvis programtypen du valgte kun sørger for byggeindstillingen <guimenuitem>default</guimenuitem>, skal du naturligvis bruge den.) </para>
</warning>

</sect2> <!-- new-projects-start-build -->

</sect1> <!-- new-projects -->

<sect1 id="projects-configure">
<title>Indstilling af projekt</title>

<para>(Endnu ikke skrevet ...)</para>

</sect1>

</chapter> <!-- applicationwizard -->
