Lesnr1

advertisement
Informatica DELPHI lesnr.1
Informatica
DELPHI
lesnr. 1
INLEIDING
In de hoofdstukken 6 en 7 hebben jullie kennis gemaakt met
JavaLogo. Dit is een programmeertaal met Logo-commando’s,
die verpakt zijn in een Java-omgeving. Met deze taal kunnen
op ‘vrij eenvoudige wijze’ allerlei 2D- en 3D-tekenapplets
gemaakt worden.
In hoofdstuk 8 wordt gekeken naar een paar andere
programmeertalen, nl. BASIC en PASCAL. Deze talen zijn min
of meer verouderd.
We onderscheiden 4 verschillende generaties
programmeertalen:
1. Eerste generatietaal (Machinetaal).
De computer wordt rechtstreeks geprogrammeerd door het invoeren van lange
series nullen en enen.
Dat ziet er zo uit:
000000 100000 00111 00100 00101 00000
2. Tweede generatietaal (Assembleertaal).
De binaire instructies van de machinetaal zijn vervangen door ‘begrijpelijke
code’s’. Dat ziet er zo uit: ADD R7 , R4 , R5
3. Derde generatietaal (PASCAL, FORTRAN, COBOL, BASIC).
Verschillende binaire instructies worden gecombineerd tot één programmaopdracht.
Dat ziet er zo uit: som := getal1 + getal2;
4. Vierde generatietaal (SQL, JAVA, Delphi (= opvolger PASCAL), C++).
Met één enkele opdracht kan de programmeur door de computer verschillende
taken laten uitvoeren
Programmeertalen van de eerste en tweede generatie zijn machinegerichte talen.
Programmeertalen van de derde en vierde generatie zijn machine-onafhankelijke
talen.
Programmeertalen van de derde generatie noemen we ook wel proceduregerichte
talen.
Programmeertalen van de vierde generatie noemen we ook wel probleemgerichte of
object-georiënteerde talen.
Of je nu programmeert in een tweede, derde of vierde generatietaal, jouw
programma moet ‘vertaald’ worden naar voor de computer ‘begrijpelijke’ machinetaal.
Een programma geschreven in een tweede generatietaal wordt vertaald naar
machinetaal m.b.v. een assembler.
Een programma geschreven in een derde of vierde generatietaal wordt vertaald naar
machinetaal m.b.v.een compiler.
Gedurende 8 lessen gaan wij stoeien met de vierde generatietaal DELPHI.
De compiler en de IDE (= Integrated Development Environment) zijn beide als
Freeware via Internet te downloaden:
-1-
Informatica DELPHI lesnr.1
Huidige versie:
Delphi6.0 Personal Edition
via
http://www.borland.com
Op de site van Borland kun je een Software Registration Account aanmaken.
Vervolgens krijg je via email een Serial Number en een Authorization Key.
Nadat je de Delphi Personal Edition hebt gedownload (140 Mb), kun je met deze 2
nummers het pakket activeren.
DELPHI
Het openingsscherm van DELPHI 6.0 ziet er zo uit:
1. Standaard objecten
2. Objecten overzicht
4. Source-code
3. Object eigenschappen
-2-
5. Ontwerpveld voor de GUI
Informatica DELPHI lesnr.1
DELPHI 6 is een ‘visuele programmeeromgeving’. De Graphic User Interface (GUI)
kan ontworpen worden door op een werkblad te tekenen. DELPHI 6 produceert
vervolgens volledig automatisch de noodzakelijke source-code.
1. Standaard objecten
Hier staan de standaardknoppen, labels, tekstvelden enz., die allemaal gebruikt
kunnen worden bij het ontwerpen van de GUI.
2. Objecten overzicht
Hier staat het overzicht van alle objecten, die bij het ontwerpen van de GUI zijn
gebruikt.
3. Object eigenschappen
Hier kunnen alle eigenschappen (naam, kleur, afmetingen enz.) van het
geselecteerde object worden ingesteld. (Eigenschappen heten ook wel properties.)
4. Source-code
Hier staat alle source-code van het programma. Veel code wordt automatisch door
DELPHI 6 aangemaakt. Een gedeelte van de code (wat moeten knoppen doen,
welke variabelen worden gebruikt) moet je zelf intikken.
5. Ontwerpveld voor de GUI
Hier kun je de GUI ontwerpen. Knoppen, tekstvelden, enz. kunnen gewoon op dit
veld getekend worden.
VOORBEELD
(Staat op de werkdiskette in Lesnr1OptelMachine)
Productomschrijving:
Bouw een DELPHI-applicatie, waarmee 2 getallen kunnen worden opgeteld.
Gebruikersinterface:
Ontwerp een GUI, die bestaat uit 3 labels, 3 tekstvelden en 1 knop.
De achtergrondkleur van de GUI is geel.
De afmetingen van de GUI zijn 200 x 300 pixels.
Interface
Gebruikte objecten
-3-
Informatica DELPHI lesnr.1
Implementatie:
Labels, tekstvelden (die ‘Edits’ heten), buttons enz. kun
je gewoon op het Ontwerpveld voor de GUI tekenen.
Nadat je een object hebt getekend, geef je het object
een logische naam.
Het label
Getal 1:
in het voorbeeld heeft de
naam ‘Getal1Label’ gekregen.
In het vakje ‘Name’ vul je de naam van het object in.
In het vakje ‘Caption’ komt de inhoud van het label (Dat
is de tekst, die getoond wordt in de GUI.)
Je kunt een heleboel attributen/eigenschappen van het
object instellen.
Eigenschappen van het object
We plaatsen de 3 labels, de 3 tekstvelden en de knop op
het Ontwerpveld.
DELPHI maakt nu volledig automatisch alle noodzakelijk
source-code aan.
Nu komt het denkwerk.
Wanneer op de knop wordt gedrukt, dan moeten de getallen in de bovenste 2
tekstvelden worden gelezen.
Vervolgens moeten deze 2 getallen worden opgeteld.
Tenslotte moet de uitkomst van deze optelling worden getoond in het onderste
tekstveld.
We noemen deze source-code de ‘event-handler’ van de knop.
-4-
Informatica DELPHI lesnr.1
1. unit
2. uses
3. type
4. var
5. procedure
1. unit
De naam van deze unit (= een gedeelte van een project) is ‘Optellen’.
2. uses
Hier staan alle standaard bibliotheken, waar DELPHI gebruik van kan maken. Deze
standaardbibliotheken bevatten grote stukken source-code, die al helemaal klaar is.
We hebben voor ons optelmachientje lang niet alle standaardbibliotheken nodig. Je
-5-
Informatica DELPHI lesnr.1
kunt standaardbibliotheken verwijderen (gewoon proberen). Wanneer je overbodige
standaardbibliotheken verwijderd, dan neemt de applicatie minder geheugenruimte in
beslag. (En wordt dus een stuk sneller!)
3. type
Hier staat aangegeven (wordt gedeclareerd) van welk type de verschillende objecten
zijn.
Getal1Label is van het type TLabel.
Ook deze source-code is automatisch aangemaakt.
4. var
In dit gedeelte worden alle variabelen gedeclareerd, die gebruikt gaan worden in het
programma. (Je kunt ook gebruik maken van de secties ‘private declarations’ en
‘public declarations’, maar dat valt (voorlopig) buiten het bestek van deze lessen.)
De variabelen x1, x2 en x3 zijn van het type ‘double’ (= gebroken getal).
De variabelen s1, s2 en s3 zijn van het type ‘string’ (= tekst).
Deze variabelen moeten we wel zelf invullen.
5. procedure
Tenslotte de event-handler van de knop. (DELPHI noemt dat een procedure.)
De source-code van de event-handler komt te staan tussen ‘begin’ en ‘end;’.
s1 := Getal1Edit.Text;
s2 := Getal2Edit.Text;
De tekst, die staat in Getal1Edit, wordt opgeslagen in de variabele s1.
De tekst, die staat in Getal2Edit, wordt opgeslagen in de variabele s2.
x1 := StrToFloat(s1);
x2 := StrToFloat(s2);
DELPHI beschouwt onze invoer als tekst. We moeten er eerst getallen van maken.
Dat gaat met de opdracht ‘StrToFloat’. (Maak van een string een getal met een
komma. DELPHI noemt zo’n opdracht een function.)
De uitkomst van deze omzetting wordt opgeslagen in de getalvariabelen x1 en x2.
x3 := x1 + x2;
De inhoud van de variabelen x1 en x2 wordt bij elkaar opgeteld. De uitkomst van
deze optelling wordt opgeslagen in de variabele x3.
s3 := Float ToStr(x3);
In de variabel x3 hebben we een getal opgeslagen. Dit getal moet eerst worden
omgezet naar tekst, en opgeslagen in de variabele s3.
-6-
Informatica DELPHI lesnr.1
UitkomstEdit.Text := s3;
In het Uitkomst-tekstveld wordt de inhoud van de variabele s3 getoond.
DELPHI BESTANDEN
Terwijl je bezig bent met DELPHI, worden er een heleboel verschillende bestanden
aangemaakt op je diskette.
Begin dus altijd met het aanmaken van een directory, waar je alle bestanden
van je project in kunt opbergen.
Wanneer je DELPHI start, dan geef je het project een naam:
File | Save Project As
DELPHI vraagt eerst om de naam van de Unit:
Optellen.pas
Vervolgens wordt gevraagd om de naam van het project: OptelMachine.dpr
(Let op: De naam van de Unit en de naam van het Project moeten verschillend zijn.)
Op je werkdiskette worden nu 6 bestanden aangemaakt. Sommige bestanden
bevatten de source-code, andere bestanden bevatten informatie over het project.
Nadat je de Optelmachine hebt gemaakt, moet je de source-code door de compiler
heen halen:
Project | Compile Optelmachine
Op je werkdiskette wordt nu de toepassing OptelMachine gemaakt. Dit is de
applicatie, die je hebt gemaakt. (En kunt verkopen aan eventuele klanten.)
(Let op: De Applicatie krijgt dezelfde naam als het project.)
SYNTAX
opdracht;
Alle DELPHI-opdrachten worden
afgesloten met een puntkomma.
Opmerkingen in je programma worden
voorafgegaan door 2 schuine
streepjes.
‘Assignment operator’, spreek uit als
‘wordt’. X krijgt de waarde 2.
Declaratie als gebroken getal.
Declaratie als tekstvariabele.
Declaratie als geheel getal.
Object . Eigenschap
String wordt omgezet naar gebroken
getal.
String wordt omgezet naar geheel
getal.
Gebroken getal wordt omgezet naar
string.
Geheel getal wordt omgezet naar
string.
// opmerkingen van de programmeur
X := 2
X : double
S : string
N : int
Getal1Edit . Text
X := StrToFloat(S)
N := StrToInt(S)
S := FloatToStr(X)
S := IntToStr(N)
-7-
Informatica DELPHI lesnr.1
OPDRACHTEN
Opdracht 1
Open het voorbeeldproject OptelMachine, dat op je diskette staat.
Bekijk de source-code.
Breng een fout aan. (Verwijder bijvoorbeeld een ;)
Compileer het project en bestudeer de foutmelding, die de compiler geeft.
Herstel de fout.
Compileer opnieuw.
Test de applicatie, die je hebt gemaakt.
Opdracht 2
Productomschrijving:
Bouw een DELPHI-applicatie met de naam Rekenmachine, waarmee 2 getallen
kunnen worden opgeteld, afgetrokken, vermenigvuldigd en gedeeld.
Ook moeten alle tekstvelden kunnen worden leeggemaakt. (Resetten.)
Gebruikersinterface:
Ontwerp een GUI, die bestaat uit 3 labels, 3 tekstvelden en 5 knoppen.
De achtergrondkleur van de GUI is geel.
De afmetingen van de GUI zijn 425 x 235 pixels.
(Hinten:
Wanneer je de eigenschap ‘ReadOnly’ van het object UitkomstEdit instelt op ‘True’,
dan is het veld niet toegankelijk.
Wanneer je de eigenschap ‘MaxLength’van de objecten Getal1Edit en de Getal2Edit
instelt op bijv. 10, dan kan er een getal van maximaal 10 characters worden
ingevoerd.)
-8-
Download