Lsungen

1. Das erste Projekt

Fragen

1. Ein Programm in Delphi hrt nicht einfach auf, wenn die letzte Programmzeile ausgefhrt wurde. Das Formfenster bleibt weiter bestehen. Erst mit einem Klick auf Schlieen oder den Tasten [Alt][F4] ist das Programm abgeschlossen.

2. In Delphi umfasst die Erstellung und Bearbeitung eines Programms gleich mehrere Dateien. Deshalb bezeichnet man alles zusammen als Projekt.

3. Im Formular bzw. Formfenster verteilst und ordnest du deine Komponenten aus der Komponentenpalette (bis jetzt hast du nur die Schaltflche benutzt). Im Editorfenster kmmerst du dich um die Methoden, damit das Programm laufen kann. Ohne den Programm- bzw. Quelltext fhrt nmlich eine Aktion wie z.B. das Klicken auf eine Schaltflche zu keinem erkennbaren Ergebnis.

Keine Aufgaben



2. Buttons und Labels

Fragen

1. Hauptkomponente ist das Formfenster, kurz Form genannt. Daneben sind aus diesem Kapitel erst mal zwei weitere Komponenten bekannt: Die Schalt- und die Anzeigeflche (Button und Label).

2. Ereignisse sind z.B. Mausklicks oder Tastendrcke. Mit Ereignissen lassen sich Methoden verknpfen, die aktiviert werden, wenn ein Ereignis eintritt: So wird z.B. beim Ereignis OnClick die Methode ButtonClick aktiviert. Viele Methoden sind mit einem Objekt wie z.B. Formfenstern, Buttons, Labels oder anderen Komponenten verbunden.

3. Der Eigenschaft Caption muss ein neuer Wert zugewiesen werden, z.B.

Button1.Caption := 'Lass mich!';

Label1.Caption  := 'Das ist mir egal!';

Aufgabe

1. Einen Versuch findest du im Projekt mit dem Namen PROJECT2A.DPR.



3. Zahlen, Zeichen und Operatoren

Keine Fragen



Aufgaben

1. Das Projekt HOROSKOP.DPR bietet dir ein Gerstprogramm mit zwlf beschrifteten Buttons, zu denen die ButtonClick-Methoden bereits existieren. Nur die passenden Vorhersagetexte musst du selber finden.

2. Dazu schau mal in den Programmtext zum Projekt MATHE2.DPR. (Statt nur Label wurde hier auch mal Panel benutzt - diese Komponente lernst du spter noch kennen.)



4. Bedingungen

Fragen

1. Mit dem Operator ":=" (Doppelpunkt und Gleichheitszeichen) werden Ausdrcke oder Werte zugewiesen, mit dem Operator "=" (nur Gleichheitszeichen) werden Ausdrcke oder Werte verglichen.

2. Fr Zensur wird ein zuflliger Wert zwischen 1 und 6 erzeugt.

Aufgaben

1. Vorschlge dazu findest du in MATHE1C.DPR bzw. in MATHE2A.DPR.

2. Schau dir dazu mal das Projekt MATHE3.DPR an.



5. Ein Ratespiel mit Zahlen

Frage

1. Der Haken ist, dass auch "zu gro" ausgegeben wird, wenn die Zahl richtig ist: Das Gegenteil (else) von < ist nmlich >=.

Aufgaben

1. Dieses Raten-Projekt trgt den Namen ZRATEN3A.DPR.

2. Dazu gibt es ein Angebot in ZRATEN4.DPR. (Wenn in anderen Bereichen als zwischen 0 und 10000 geraten werden soll, kannst du die Anfangswerte von Oben und Unten entsprechend ndern.)



6. Kontrollstrukturen

Fragen

1. Das Programm steckt in einer Endlos-Schleife fest: Weil das Kapital sich nie vermehren kann, wird daraus nie eine Million. Heraus kommt man da aus Delphi nur ber START und PROGRAMM ZURCKSETZEN bzw. mit den Tasten [Strg][F2].

2. ber die Eigenschaft ItemIndex wird bei einem Listenfeld (ListBox) ermittelt, welcher Eintrag ausgewhlt worden ist.

Aufgaben

1. Eine Lsung steht in MILLION2.DPR.

2. Schau dir dazu das Projekt HOROSKOP2.DPR an. (Allerdings gibt's auch hier nur ein Gerst.)

3. Probier mal das Projekt DRUECK1.DPR aus.



7. Combo, Radio oder Check?

Frage

1. Wenn Optionsfelder oder Kontrollfelder in einem Formfenster zu einer Gruppe zusammengefasst sind, kann man bei Optionsfeldern (RadioGroup/RadioButtons) immer nur eine Komponente einschalten. Bei Kontrollfeldern (ChecKBoxes) dagegen lassen sich beliebig viele Komponenten einer Gruppe aktivieren.

Aufgaben

1. Dazu findest Du ein Gerstprogramm im Projekt HOROSKOP3.DPR.

2. Die Lsung knnte so wie in KLEMP4A.DPR aussehen.



8. Aktion Seelenklempner

Fragen

1. Beide Felder dienen der Anzeige von Text. Weil die Anzeigetafel (Panel) dabei von einem sichtbaren Rand umgeben ist, der sich einstellen lsst, kann sie auch hnlich wie ein Gruppenfeld Komponenten umrahmen und zusammenfassen.

2. Diejenige Komponente, die im Formfenster gerade aktiviert ist,  besitzt den Fokus. Beim Programmstart erhlt die Komponente den Fokus, die der Eigenschaft ActivControl der Klasse TForm zugeordnet ist.

3. Eine Textdatei kann z.B. ber ein Objekt vom Typ TStringList mit LoadFromFile geffnet und mit SaveToFile gespeichert werden.

4. Als erstes wird eine Instanz vereinbart, z.B. ber var EineListe: TStringList. Damit das Objekt dann auch funktionstchtig ist, wird mit EineListe := TstringList.Create der ntige Platz im Arbeitsspeicher reserviert.

Aufgaben

1. Dazu musst du dir mal die Projektdatei PROZENT1.DPR anschauen.

2. Eine Lsung ist in der Methode TForm1.Button2Click des Projekts KLEMP7A.DPR zu finden.



9. Mens und Dialoge

Fragen

1. Zuerst legt man ein Symbol fr die Komponente MainMenu auf dem Formfenster ab. Mit Doppelklick kommt man in den Meneditor. Dort lsst sich jeder einzelne Eintrag eingeben. Im Objektinspektor lassen sich zustzlich die Eigenschaften anpassen. Nach Doppelklick auf einen Meneintrag kann man die damit verknpfte Methode bearbeiten.

2. Am Rckgabewert der Methode Execute: Bei allen drei Objekten ist dieser Wert true, wenn der Dialog mit OK beendet wird. Ansonsten gibt Execute false zurck.

3. Objekte vom Typ TStringList sammeln Zeichenketten zeilenweise, sind also sozusagen Behlter fr Strings. Objekte vom Typ TRichEdit knnen einen normalen oder formatiertenText (z.B. mit Schriftart und Absatzformaten) aufnehmen, anzeigen und ausdrucken lassen. (Textformate haben die Kennung TXT und RTF.)

Keine Aufgaben

(Aber in Projekts KLEMP11.DPR findest du auer einem "Normalmen" ein Kontext- bzw. Popup-Men als zustzliche Erweiterung.)



10. Grafik mit Canvas

Fragen

1. Bei MoveTo wird sozusagen eine unsichtbare Linie gezeichnet und bei LineTo eine Linie in der aktuellen Zeichenfarbe (Pen.Color).

2. Allgemein ist mit Color die Hintergrundfarbe einer Komponenten gemeint. Auerdem ist es bei Pen die Zeichenfarbe, bei Brush die Malfarbe und bei Font die Schriftfarbe.

Aufgaben

1. Die passende Anweisung findest du im Projekt GRAFIK6A.DPR.

2. Eine (einfache) Lsung enthlt das Projekt GRAFIK8.DPR.



11. Eine eigene Klasse

Frage

1. Bei einer Klassenvereinbarung (mit type) wird sozusagen das Gerst vereinbart: Eigenschaften und Methoden sind vorhanden. Aber erst nach einer Objektvereinbarung (mit var) knnen die Eigenschaften mit Werten gefllt und die Methoden zum Leben erweckt werden. Wichtig ist, dass das Objekts vor dem "Gebrauch" ber den Konstruktor initialisiert wird.

Aufgabe

1. Dazu solltest du mal die Projektdatei QUADRAT.DPR ffnen.



12. Kapselung und Vererbung

Fragen

1. Daten und Code bzw. alle Eigenschaften und Methoden eines Objekts werden zu einer Einheit zusammengefasst. Ein Zugriff von auen ist nur ber das Objekt direkt mglich - wenn berhaupt.

2. Wird eine Klasse so vereinbart type Name = class (Vorfahr), dann verfgt sie automatisch ber alle Eigenschaften und Methoden des Vorfahren. Mit einer geeigneten Basisklasse lsst sich so eine komplette Klassenfamilie aufbauen, bei dem die letzte Klasse in der Hierarchie alles erbt, was all ihre Vorfahren an Fhigkeiten zu bieten haben. (Voraussetzung ist immer, dass es bei der Vererbung keine Einschrnkung gibt -siehe dazu bernchstes Kapitel.)

Aufgaben

1. Eine Mglichkeit findest du im Projekt MATHE4A.DPR.

2. Die try-except-Strukturen stehen in MATHE4B.DPR.



13. Eigene Komponenten

Fragen

1. ber KOMPONENTE und NEUE KOMPONENTE ffnest du ein gleichnamiges Dialogfeld, wo du u.a. den Namen der Klasse und des Vorfahren eintrgst. Delphi erzeugt eine neue Unit mit den ntigen Basisvereinbarungen der neuen Klasse. In der Unitdatei kannst du weitere Vereinbarungen einfgen. Anschlieend muss die Komponente ber KOMPONENTE und KOMPONENTE INSTALLIEREN in einer Packagedatei installiert werden.

2. Darunter versteht man ein Paket z.B. von Komponenten. Die Packagedatei DCLUSR.DPL z.B. sammelt alle deine als Anwender selbst vereinbarten Komponenten (und packt auf Wunsch ihre Symbole in die Komponentenleiste).

Keine Aufgaben



14. Jetzt wird geOOPt

Fragen

1. Mit der Methode Hide kannst du viele Komponenten vom Formular (scheinbar) verschwinden lassen. Und mit Show tauchen sie dann wieder auf. Schau dazu mal in das kleine Projekt SHOWHIDE.DPR.

Aufgaben

1. Eine Lsungsmglichkeit findest du im Projekt MSHOW.DPR. 

2. Wie man mit einer Animation-Komponente umgehen kann, steht im Projekt OOP3A.DPR. (Ntig sind dazu passende AVI-Dateien - z.B. im BILDER-Ordner.)

3. Hier hilft ein Blick in die Projektdatei OOP4.DPR.



15. Fr alle Flle MDI?

Frage

1. Weder noch, denn Delphi arbeitet mit mehreren Fenstern, die zum Teil voneinander unabhngig sind. Man knnte aber sagen: Die Entwicklungsumgebung von Delphi besteht aus einem System von MDI- und SDI-Anwendungen.

Keine Aufgaben



16. Komponentensammlung

Fragen

1. Die Paint-Methode von TCustomControl ist nur eine leere Hlle: procedure TCustomControl.Paint; begin end; Trotzdem wird sie bereits von Methoden der Klasse TCustomControl aufgerufen. Wird sie in einer neuen Komponente wie z.B. TOButton berschrieben und mit entsprechenden Anweisungen gefllt, dann kann sie auch von den Methoden der Mutter (an Stelle der alten Paint-Methode) verwendet werden.

2. Die Click-Methode wird erst aufgerufen, wenn die linke Maustaste losgelassen wurde, was nicht in unserem Sinne ist. Denn dann wird der OButton zwar eingedrckt, bleibt aber unwiderruflich in diesem Zustand.

Aufgaben

1. Dazu solltest du mal die Projektdatei OOP5A.DPR ffnen.

2. Eine Mglichkeit findest du im Projekt OOP5B.DPR (OBUTTON2.PAS).

3. Schau mal in die Projektdatei OOP6.DPR (OOBUTTON.PAS). Ich habe der neuen Klasse den (sinnigen?) Namen TOOButton gegeben - fr "OnOffButton".



17. Polymorphie

Fragen

1. Mit angehngtem virtual wird eine Methode virtuell vereinbart. Nur so kann sie spter in den Nachkommen der Klasse mit dem Zusatz override berschrieben werden. Soll die Methode des Vorfahren benutzt werden, so wird vor den Methodennamen ein inherited gestellt.

2. Bei der frhen Bindung werden alle Aufrufe von Methoden beim Kompilieren eindeutig festgelegt. Bei der spten Bindung bleibt die Aufrufstelle offen. Und erst whrend der Laufzeit des Programms wird entschieden, welche Methode aufgerufen wird (Polymorphie).

Keine Aufgaben



18. Buntes Allerlei

Fragen

1. Bei Eingangsparametern wird deren Wert kopiert und innerhalb der Methode verarbeitet. Auerhalb ndert sich nichts, weil ja mit einer Kopie gearbeitet wurde. Bei Durchgangsparametern wird gar keine Kopie erzeugt, sondern ber die Adresse direkt der Wert verarbeitet und damit auch auerhalb der Methode verndert.

2. Der except-Zweig enthlt Anweisungen, die nur beim Auftreten von Exceptions ausgefhrt werden (mit on-do bestimmte Exceptions). Der finally-Zweig dagegen wird in jedem Fall ausgefhrt, auch wenn die Versuche unter try fehlschlagen.

Aufgaben

1. Diese nderung steht schon in OBUTTON3.PAS drin.

2. Dazu schau dir mal das Projekt FSTEIN7B.DPR an.



19. Einblick in die Spielprogrammierung

Keine Fragen

Aufgaben
1. Die nderung findest du im Projekt GPLAY2A.
2. Im Projekt GPLAY3A folgt der Kfer der Maus.










