Introduktion til Delphi.

Rettet 2. april 2000

Programmeringsøvelser:

1. Simpel formular og menustruktur

 

Der skal udformes et skærmbillede efter ovenstående forbillede. Under menupunktet Filer skal der være et punkt med navnet Afslut, som sammen med Exit knappen skal kunne bruges til at stoppe programmet med.

 

2. Udbygning med database

Der skal oprettes en database til opbevaring af et adresse- og telefonkartotek. Opret kartoteket som en Paradox 7 for Windows tabel med følgende attributter:

Feltnavn

Type

Size

Key

Navn

A

30

*

Adresse

A

30

 

Postnr

I

 

 

Bynavn

A

20

 

Telefonnr

A

15

 

 

Der skal foretages nogle ændringer i skærmbilledet. Der skal tilføjes en række komponenter fra Data Acces og Data Controls grupperne. Der tilføjes TTable og TDataSource komponenter. Alle editeringsfelter udskiftes med komponenter af typen TDBEdit, og der tilføjes en TDBNavigator komponent.

Der skal foretages nogle ændringer i de forskellige komponenters properties. Princippet er, at tabel komponenten sættes til at pege på en bestemt database (sti til det directory, hvor databasen er blevet gemt) og en bestemt tabel. Derefter sættes datasource komponenten til at pege på tabel komponenten. Endelig kan de øvrige komponenter som f.eks. DBEdit1 sættes til at pege på en bestemt datasource og et bestemt felt heri.

 

3. Udvidelse af programmet med flere telefonnumre for hver person

Der opbygges en database, som kan bruges til opbevaring af de data, som kan indtastes via opgave 3. Databasen opbygges af to tabeller:

Person tabel:

Feltnavn

Type

Size

Key

Navn

A

30

*

Adresse

A

30

 

Postnr

I

 

 

Distrikt

A

20

 

 

Telefon tabel:

Feltnavn

Type

Size

Key

Navn

A

30

*

Telefonnr

A

20

Sted

A

20 

 

Type

A

20

 

 

 

 

Skærmbilledet ændres på forskellige punkter, og der tilføjes nye komponenter til styring. TDBNavigator kan ikke samtidig styre opdatering af to tabeller, så derfor opdeles skærmbilledt i to paneler, som styres af hver sin TDBNavigator.

 

4. Udvidelse af opgave 2 med panel til navigation i databasen.

Der udformes et skærmbillede efter nedenstående forbillede:

 

 

De forskellige operationer på databasen skal styres med knapperne i panelet til højre. Knapperne skal blændes af i de situationer, hvor det vil være irrelevant at trykke på dem. F.eks. er knapperne OK og Fortryd blændet af fra starten; men når der trykkes på Opret, Ret eller Slet bliver OK og Fortryd aktiveret, hvorimod de øvrige knapper nu blændes af.. Til at give overblik over dette mønster vil det være hensigtsmæssigt at udarbejde et tilstandsdiagram.

 

5. Udvidelse af opgave 3 med panel til navigation i databasen.

I opgave 3 består den normaliserede database af to tabeller, Person og Telefon. Formålet med denne opdeling i to tabeller var at give mulighed for registrering af flere telefonnumre for samme person. Dette program vil vi nu bygge videre på, sådan at navigeringen i databasen sker ved hjælp af et panel bestående af knapper efter samme forbillede som i opgave 4.

 

 

Panelet med knapper skal altså på et givet tidspunkt være knyttet enten til opdateringen af Person tabellen eller opdateringen af Telefon tabellen. Hvilken tabel panelet aktuelt er tilknyttet vælges ved at trykke på en af de to radioknapper.

 

6. Udvidelse af opgave 5 med søgemuligheder.

Løsningen fra opgave 5 ønskes udvidet med nogle søgemuligheder. Der skal være mulighed for at kunne søge på en del af et navn, med henblik på hurtigt at kunne hoppe derhen i databasen, hvor navnet skulle stå. Skærmbillederne opbygges efter nedenstående forbilleder:

 

 

 

Når der i hoved skærmbilledet trykkes på knappen Søg fremkommer skærmbilledet til søgning i person tabellen. Man indtaster det ønskede navn eller begyndelsen af navnet og trykker på den tilhørende knap for at starte den ene eller den anden søgning. I tabellen nedenunder kan man følge med i, hvilken database oplysning, der er den i øjeblikket udpegede. Når søgningen er gennemført returneres til hoved skærmbilledet. Hvis man ønsker hoved skærmbilledet opdateret med de fundne oplysninger, trykkes på OK som afslutning på skærmbilledet, ellers trykkes på fortryd.

7. Udvidelse af opgave 6 med søgning efter navn på grundlag af telefonnr.

Løsningen fra opgave 6 ønskes udvidet med flere søgemuligheder. Således skal det være sådan, at når man trykker på knappen "Søg" med fokus på telefonnumre, skal der fremkomme et skærmbillede, hvor man kan indtaste et telefonnr. Der søges i databasen efter det pågældende telefonnr, og de fundne navne udskrives.

 

 

Det er nødvendigt at tilføje et sekundært indeks bestående af felterne telefonnr og navn til telefon tabellen i databasen.