Start med Delphi

Tags:    delphi
Skrevet af Bruger #2 @ 15.06.2001
Det første skridt

I denne artikel vil vi se på:

  • De grundlæggende ting i Delphi
  • Brug af flere formularer
  • Brug af nogle af de mest anvendte komponenter
  • God kode struktur
  • if-else-then sætninger
  • Løkker
  • Du vil komme til at lave din første applikation, samt et lille tekstbehandlingsprogram.
Mit første Delphi program

Når du har startet Delphi op, skal du gå op i menuen filer | new og vælge application. Derved indlæser Delphi en template, som du så kan bygge dit program op om. Det første program som du skal lave, er ikke så avanceret, så det er nemt at overskue. På Form1 skal du placerer en Button fra komponent paletten Standard. Knappens tekst bliver bestemt af den egenskab i Object Inspector'en, der hedder Caption. Du skal trykke på den knap som du har placeret på Form1, og ændre Caption til Afslut. Når du har ændret knappens tekst, skal du til at fortælle Delphi hvad der skal ske når man trykker på knappen. Dette gøres via kodevinduet, som du får adgang til ved at dobbeltklikke på knappen. I kodevinduet skal der stå:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end; 
(Du skal ikke ændre eller fjerne noget af den kode, som står der i forvejen, da den er nødvendig for at programmet kan køre)

Dit første program er nu lavet, og du kan nu teste det. For at starte programmet op, skal du, på dit keyboard, trykke på tasten F9, og programmet vil derefter starte. Når programmet er startet, skal du trykke på den knap som du placerede på formen, og se hvad der sker. Når programmet er afsluttet korrekt, kan du gemme dit program, så du en anden gang kan se på det, hvis du skulle få lyst.

For at holde styr på alle de programmer som du vil komme til at lave, er det en god ide at lave en mappe til dem, hvor hvert program du laver, har en undermappe så de ikke bliver blandet sammen.

Program nummer to

Vi skal nu til det næste program, som bliver en smule mere avanceret. I dette program skal du bruge to af de mest brugte komponenter i Delphi, nemlig to Buttons og en Label.

Du starter med at trykke på filer | new og vælge application, ligesom du gjorde i det forrige eksempel for at lave et nyt program. Du giver din Form, Form1, en ny Caption som skal være Mit andet program. Du vil derefter kunne se at i toppen af din form står der Mit andet program, og ikke Form1. Derefter skal vi til at placerer de tre komponenter på formen. Alle komponenter ligger på Standard-paletten. Du placerer komponenterne på den måde, at labelen er øverst og så knapperne lige neden under. Den første knaps Caption skal være OK, og den anden knaps Caption skal være Afslut. Knappen med teksten OK, skal du nu til at skrive en kode bag, så den får en funktion. Dobbelt klik på den og sørg for den kommer til at se sådan ud:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Label1.Caption = 'Her er en label' then
    Label1.Caption := 'Nu er teksten blevet ændret'
  else
    Label1.Caption := 'Her er en label';
end; 
For knap nummer to, med navnet Button2, skal der stå:
procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end; 
Du har nu lavet dit andet program i Delphi, som nu er klar til at blive afprøvet. Tryk på F9, for at starte programmet. Når programmet kører, kan du trykke på knappen for at se hvad den kode du skrev gør. Tryk 2-3 gange på knappen. Når du har testet programmet, skal du huske at gemme det, så du altid kan se på det igen. Du gemmer det på samme måde som dit forrige program.

Flere formularer

Når man laver et program, er det meget normalt at man har flere forms i programmet. Vi vil nu lave et lille program, som vi senere bygger videre på i denne artikel. Du skal nu starte med at vælge filer | new og vælge application, som du plejer. Når du har din Form1 fremme, skal du placerer flg. komponenter på den:
  • 1 stk. Memo fra komponentpaletten Standard.
  • 1 stk. MainMenu fra komponentpaletten Standard.
Vi skal nu med disse lave et lille tekstbehandlingsprogram, som bruger flere formularer.

Du skal nu sætte et par properties på de to komponenter. For Memo1 skal du ændre følgende:

  • Align skal være alClient, for at dække hele formen.
  • Lines, her skal du dobbeltklikke på det lille ikon med de tre prikker på, og slette alt teksten i den fremkomne form, tryk derefter OK.
Komponenter MainMenu1, er den komponent som giver dig den menu i toppen af formen, som de fleste Windows programmer har.

Du skal dobbeltklikke på selve komponenten, for at ændre på denne. Der skal det første menupunkts Caption være &Filer (&-tegnet, giver en lille streg under bogstavet den står foran, så det virker som en genvej). Det næste punkt skal have en Caption på &Om....

Vi skal nu til at lave undermenuer til punktet "Filer". Filer skal have følgende undermenuer:
  • "&Åbn..."
  • "&Gem som..."
  • "-"
  • "&Afslut"
Så det kommer til at se sådan her ud:



I dette afsnit vil vi ikke beskæftige os med de to funktioner "Åbn..." og "Gem som...", de er dog medtaget da vi i næste afsnit vil bygge dette eksempel færdigt. Du kan allerede nu fortælle Delphi, hvad der skal ske når man trykker på "Afslut". Dette gøres ved at dobbeltklikke på punktet, og sætte følgende kode ind:
procedure TForm1.Afslut1Click(Sender: TObject);
begin
  Close;
end; 
Du skal nu have en ny form med i dit program. Det skal være en såkaldt AboutBox, som bruges til at fortælle hvem der har lavet programmet, copyrights mv. Den sætter du ind ved at gå op i File | New og vælge en AboutBox fra fanebladet Forms. Der skulle nu gerne komme en lille boks frem på skærmen, som ser sådan her du:



Du skal nu til at ændre de forskellige tekster på den, og dette gøres ved at klikke på f.eks. Product Name, og ændre Caption til det man nu vil kalde sit program, f.eks. Min tekst editor. Ligeledes kan du ændre de tre andre Labels, eller helt fjerne dem. Hvis du vil ændre billedet, skal du blot dobbeltklikke på det og vælge Load, og derigennem finde det billede som du vil sætte ind. Du kan også slette det, hvis du ikke vil have noget billede med. Selve formens tekst, About, ændre du ved at klikke på selve formen, og ændre den property som hedder Caption.

Nu skal du så fra Form1, til at fortælle dit program, at når du trykker på det menupunkt i programmet, der hedder Om..., skal den vise din AboutBox. Dette gøres ved at dobbeltklikke på menu punktet Om..., og skrive:
procedure TForm1.Om1Click(Sender: TObject);
begin
  AboutBox.ShowModal;
end; 
Du har nu lavet det midlertidige program færdigt, så det er en god ide at gemme det nu. Gem det på samme måde som du gemte de andre programmer. Efter du har gemt det, kan du afprøve det, ved at trykke på F9 tasten. Delphi vil nu vise dig en Informations boks som spørger dig om du fil tilføje en unit i dit program, det skal du svare ja til. Den unit den vil tilføje, er din AboutBox. Når programmet er startet, kan du prøve om menupunktet Om virker. Punktet Afslut, under Filer, skulle også gerne virke.

Færdiggøring af tekstbehandlingsprogrammet

Hvis programmet fra før virker, er du nu klar til at gøre det klart til at kunne åbne og gemme tekst filer. For at gøre det, er det en god ide at kopierer de filer som du gemte før over i en ny mappe, så du ikke får overskrevet de gamle filer. Kopier dem f.eks. over i en mappe som du kalder tekst program 1.

Når du har gjort det, skal du lukke dit nuværende projekt ned. Det gøres ved at gå op i File | Close All i menuen i Delphi. derefter skal du åbne projekt filen til dit forrige projekt, men det skal være den som du kopierede over i en ny mappe. Du åbner den ved at vælge File | Open... i Delphi menu. Derefter finder du den mappe som du gemte de nye filer i, og åbner den som hedder Project1 (kan hedde noget andet, hvis du ikke har gemt den som det Delphi selv foreslår).

Den viser dig så et program som er magen til det fra før, som du nu skal bygge færdigt. For at kunne åbne og gemme filer, skal du bruge to nye komponenter. Det drejer sig om OpenDialog og SaveDialog fra komponentpalettens faneblad Dialogs. Du skal placerer en af hver af de to komponenter et vilkårligt sted på din Memo1. Du skal nu til at justerer de to komponenter, så de passer til dit program. Vi starter med OpenDialog komponenter.

Du skal klikke en gang på OpenDialog komponenten, og vælge den property, der hedder Filter, og trykke på det lille ikon ude til højre. Der skal du så skrive hvilke type filer som man kan åbne. Vi vælger en filtype, og så også muligheden for at åbne andre filer end .txt-filer. Du skal tilføje to linier, så det kommer til at se sådan her ud:



Derefter skal du trykke OK.

Du skal nu lave det samme med SaveDialog komponenten, og det sker på samme måde.

Nu skal du så have dit program til at benytte de to komponenter. Vi starter med at lave den funktion som åbner en fil. Klik på det menupunkt i dit program som hedder Åbn, og skriv:

procedure TForm1.ben1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Memo1.Lines.LoadFromFile(Opendialog1.FileName);
  end;
end; 
Du har nu lavet den funktion som åbner en fil og viser den i din Memo1. Nu skal du klikke på det menupunkt som du kaldte Gem som..., og skrive flg. kode:

procedure TForm1.Gemsom1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    Memo1.Lines.SaveToFile(SaveDialog1.FileName);
  end;
end; 
Nu er programmet 100% funktionsdygtigt. Du kan åbne og gemme tekst filer.

Det er nu tid til at gemme dit program, du skal denne gang gemme det på en ny måde, da du i forvejen har noget at programmet gemt i nogle filer. Denne gang skal du vælge File | Gem, som så vil gemme dine ændringer i de filer som du kopierede over i den nye mappe. Programmet testes ved at trykke på F9 tasten. Du kan nu prøve de to nye funktioner af.

Struktur, forgreninger & løkker

Struktur

For at et program er nemt at overskue, så er det meget vigtigt at man laver en kode struktur. Koden:

procedure TForm1.Gemsom1Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    Memo1.Lines.SaveToFile(SaveDialog1.FileName);
  end;
end;

Er langt nemmere at overskue end:
procedure TForm1.Gemsom1Click(Sender: TObject);
begin if SaveDialog1.Execute then
begin
Memo1.Lines.SaveToFile(SaveDialog1.FileName);end;
end;
Det er naturligvis fordi det første eksempel er struktureret. Strukturen er ganske simpel, man rykker simpelthen to mellemrum ind, når man begynder på en sætning efter begin, if, then, else, end osv... Det gør det hele meget nemmere at læse, når men evt. skal lave en opdatering af programmet.

Kommentarer er også en god ide at have med. En kommentar kan skrives på flere forskellige måder, f.eks.
{ Her er en kommentar. Den vil man typisk bruge  hvis man skal skrive noget
som fylder flere linier, da den ikke slutter før man sætter }

(* Denne type kan bruges på samme måde som den forrige type. *)

// Denne kommentar kan man evt. bruge hvis man lige skal kommentere en linie kode. 
Kompileren vil betragte alt efter // på den aktuelle linie som en kommentar.
Det står naturligvis frit for hvilke type man vil bruge. Kommentarer og tomme linier (White space), springer kompileren over, så det er ikke en undskyldning for ikke at skrive kommentarer, det endelige program vil ikke blive større fordi du har mange kommentar eller meget Whitespace.

Forgreninger

En if-then-else sætning har vi allerede brugt. Den brugte vi i vores program nummer to, som kunne skifte teksten for en Label. Selve sætningen er temmelig logisk bygget op, den fungerer på den måde af:
if sætning er sand then
  Gør noget
else
  Gør noget andet
Man kan naturligvis lave flere betingelser i en sætning, det kan f.eks. se sådan her ud:
if Sætning sand then
  Gør noget
else
  if Sætning sand then
    Gør noget andet
else
  if Sætning sand then
    Gør noget tredje
Her er en liste over nogle af Operatorer du kan bruge i en if-then-else sætning.
  • = Lig med
  • <> Forskellig fra
  • < Mindre end
  • > Større end
  • <= Mindre end eller lig med
  • >= Større end eller lig med
Jeg vil her vise et par eksempler på brug af de forskellige operatorer.
if i > 50 then
  Dec(i)
else
  ShowMessage('Tallet er mindre end 50');

if X > Y then
  begin
    Z := X;
    A := B;
  end
else
 ShowMessage('Y er den største'); 


Løkker

En løkke, kan udføre den samme sætning flere gange, hvilket ofte er nødvendigt. Jeg vil her vise et simpelt eksempel på en løkke, som ligger alle hel tal sammen, fra 10 til 100 (begge tal er inkluderet).
          
procedure TForm1.Button1Click(Sender: TObject);
var
  X: integer;
  Sum: integer;
begin
  Sum := 0;
  for X := 10 to 100 do
  begin
    Sum := Sum + X;
  end;
  Edit1.text := IntToStr(Sum);
end;
var er forkortelse for variabel. Som ordet antyder, er det en værdi som kan ændre sig. Her opretter vi to variabler, X og Sum. Da begge værdier skal være tal, laver vi dem til typen integer, som er talværdier. Skulle det være tekst skulle det være en string.

Efter de to variabler, sætter vi variablen Sum til 0, da den kan have en anden værdi (Du kan evt. prøve at fjerne linien, og se hvad der sker) Løkken starter ved for, som fortæller Delphi, at X skal være det samme som alle hel tal fra 10 til 100 lagt sammen. Efter det, tager Delphi variablen Sum (som er 0), og ligger variablen X til. Det skriver den så ud i et Edit felt, som vi har placeret på en form.

Selve koden skal aktiveres ved at man trykker på en Button. Du kan selv prøve om du kan stille dette program op med Edit felt, knap og koden.


Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (26)

User
Bruger #1090 @ 09.01.03 00:46
Et must for begyndere
User
Bruger #2959 @ 23.02.03 00:31
Ok artikel, men du fortæller ikke hvad det betyder.. og du har et par fejl som tog lang tid for mig!
User
Bruger #3655 @ 03.04.03 21:52
Jeg har ikke opdaget fejl, men var glad for de praktiske eksempler for en nybegynder.
User
Bruger #2815 @ 30.06.03 16:29
Rigtig lækker for en bgynder! Hvis man har lidt forstand på programmering så er det ikke noget problem at gennem gå den her "tut" :)
User
Bruger #1932 @ 24.07.03 20:49
MEGA nice artiklen :D
nu er jeg hvert fald helt sikker på at jeg skal bruge noget mere tid på at lære dette sprog...
User
Bruger #1162 @ 26.07.03 22:40
Total lækker artikkel håber at der kommer en udvielse til (flere funktioner) der var lige en lille fejl når du gemmer skal man lige skrive *.txt i defaultExt så gemmer dem som *.txt ellers gemmer den ikke som noget. men jeg kunne rigtig godt lide din artikkel fik mig til at få mere lyst til delphi TAK.
User
Bruger #4272 @ 02.08.03 01:19
Rigtig god artikel. Lige en ajourføring til dem som bruger Delphi Personal 7: For at indsætte AboutBox'en (info om programmet) skal du vælge File | New | Other og vælge fanebladet Forms og derefter About box.
User
Bruger #2855 @ 08.09.03 16:00
En God artikel den har sparket5 mig igang så flere af den slags
User
Bruger #2345 @ 06.10.03 14:54
Go artikkel for begyndere!
User
Bruger #4816 @ 02.12.03 14:59
God artikel! Jeg har desværre fået det problem at når jeg prøver at køre programmet uden at have kompileret det, får jeg af vide at jeg mangler BORDBK40.dll - det er en dll-fil til debuggeren. Den ligger i Borland Shared/Debugger, hvor skal jeg ligge den for at delphi kan finde den?
User
Bruger #4762 @ 10.12.03 22:20
Kanon artikel, "thumbs up" :)
User
Bruger #5148 @ 26.01.04 23:01
Fed Artikel for nybegyndere som mig..
Der var nogen småfejl, som tog mig lidt tid at finde ud af.. Men ellers var den kanon :-D

User
Bruger #5658 @ 25.04.04 13:48
Nice artikel :)
User
Bruger #5846 @ 24.05.04 16:34
Findes der en gratis version af Delphi?
Eller et gratis alternativ?
User
Bruger #5956 @ 12.07.04 20:57
Hvor kan man downloade delphi ?
User
Bruger #3353 @ 25.07.04 01:18
prøv www.borland.com der kan man downloade en trial version men ellers er det ikke gratis!
User
Bruger #6868 @ 22.06.05 12:12
Min laver fejl når jeg har lavet min aboutbox...
Den siger:
[Error] unit1.pas(41): Undeacleared Identifier: 'AboutBox'

[Fatal error] project2.dpr(6): could not compile used unit 'unit1.pas'

hvad er der galt? :(
User
Bruger #7855 @ 08.07.05 14:11
God artikel.. meget behjælpelig til at komme igang..!
User
Bruger #8101 @ 11.09.05 17:37
Egentligt en meget god artikkel, men jeg synes den ligner denne mistænkelig meget... ;)

http://www.pythia.dk/
Og så artikler -> Det første stridt

Måske der er en her der lige ville tjene nogle hurtige point?
User
Bruger #5519 @ 23.01.06 13:52
Indtil videre - Bedste nybegynder guide på udvikleren.dk !!

Top Nice !
User
Bruger #10341 @ 10.08.06 21:34
er det bare mig eller kan man ikke se billederne der er sat ind nogle steder... faktis ret iriterende
User
Bruger #10722 @ 20.10.06 19:05
En fin begynder undervisning, MEN man kan ikke se alle billderne..
User
Bruger #11386 @ 04.04.07 00:42
Lækkert

Jeg manglede dog lidt forklaring på de ting du bruger

Altså en mere detaljeret forklaring

Men jeg lærte en del om Delphi allerede her, og jeg ser frem til at lære mere :)

Dog lidt trist at artiklen er lidt outdated og billederne ikke findes mere, men det gjorde ikke så meget i dette tilfælde!
User
Bruger #14773 @ 08.03.09 18:03
hvordan laver man den Aboutbox,?
User
Bruger #10410 @ 03.08.09 19:38
Helt klart FANTASTISK tutorial ^^ ...bare ærgeligt man ikke kan se billederne...
User
Bruger #14532 @ 18.12.09 17:33
Rigtig god artikel! ..
Håber du laver flere..
evt. en "password kontrol" altså hvor man skriver noget som skal være identisk med noget du har valgt i din kode.. på den måde kan du uddybe if-then-else lidt mere.. :) ..

Ville være nice
Du skal være logget ind for at skrive en kommentar.
t