Ereignisgesteuerte Programmierung Klaus Becker 2002 Ereignisgesteuerte Programmierung 2

Ereignisgesteuerte Programmierung Klaus Becker 2002

Ereignisgesteuerte Programmierung 2 KB Das Ziegenproblem Der Moderator einer Spielshow zeigt dem Kandidaten 3 Türen. "Hinter einer der 3 Türen steht der Hauptgewinn, ein Auto. Hinter den beiden anderen Türen sind Ziegen. Welche Tür wählen Sie ? " Nachdem sich der Kandidat entschieden hat (z. B. für Tür 1), öffnet der Moderator eine der beiden anderen mit einer Ziege (z. B. Tür 3). "Bleiben Sie nun bei Ihrer Wahl oder möchten Sie auf Tür 2 umwählen ? "

Ereignisgesteuerte Programmierung 3 KB Simulationsprogramm http: //www. jgiesen. de/Quiz/Ziegenproblem/Ziegen. html

Ereignisgesteuerte Programmierung 4 Dialog- und Ein-/Ausgabegestaltung Button / Schaltfläche Label / Anzeigefläche Ereignisgesteuerte graphische Interaktionselemente KB

Ereignisgesteuerte Programmierung 5 KB Zielsetzung Entwicklung ereignisgesteuerter Programme mit dem Werkzeug Delphi

Ereignisgesteuerte Programmierung 6 KB Teil 1 Programmgestaltung mit GUI-Objekten

Ereignisgesteuerte Programmierung 7 KB Ein erstes einfaches Beispiel Zielsetzung: Die Entwicklung der Weltbevölkerung schreitet rasch voran: Im Jahr 1999 wurde die 6 Milliardengrenze überschritten; zur Zeit wächst die Weltbevölkerung jährlich um ca. 1, 3 %. Kann das so weitergehen? Mit Hilfe eines interaktiven Simulationsprogramms soll der Benutzer die Konsequenzen eines solchen Wachstums austesten können.

8 Entwurf der Benutzungsschnittstelle Ereignisgesteuerte Programmierung Benutzungsoberfläche: KB Label Edit Button Ereignisbehandlung: Benutzeraktion Ereignis Programmreaktionen: Mausklick auf init-Button Die Anfangspopulation (1999: 6. 0 Mrd. ) wird festgelegt (und angezeigt). Mausklick auf >-Button Die nächste Population (jeweils nach einem Jahr) wird berechnet (und angezeigt).

Ereignisgesteuerte Programmierung 9 Delphi-Entwicklungsumgebung Komponentenpalette Objektinspektor Formular KB

Ereignisgesteuerte Programmierung 10 KB Erzeugung von GUI-Objekten Aktivierung der Komponente

Ereignisgesteuerte Programmierung 11 KB Festlegung von Objekteigenschaften Veränderung der zugeordneten Werte

Eine erste Objektvorstellung Ereignisgesteuerte Programmierung 12 Objektname Klasse EJahr: TEdit EAnzahl: TEdit BInit: TButton Text = ´´ Caption = ´Init´ Left = 208 Left = 240 Top = 80 Top = 120 Top = 176 . . Jedes Objekt ist über seinen Namen identifizierbar. Objekte mit gleichem Aufbau (Attributen) werden zu Klassen zusammengefasst. KB

Ereignisgesteuerte Programmierung 13 KB Eine erste Objektvorstellung Objekt EJahr: TEdit Attribut Text = ´´ Left = 208 Top = 80 Attributwert . . . Der Aufbau eines Objekts wird über Attribute (Eigenschaften) bestimmt. Die Attributwerte legen den aktuellen Objektzustand fest.

Benutzungsoberfläche 14 Ereignisgesteuerte Programmierung Modellierung: LUeberschrift LJahr EJahr LAnzahl EAnzahl BInit BWeiter GUI-Objekte: LUeberschrift: TLabel. . . EJahr: TEdit. . . LJahr: TLabel. . . EAnzahl: TEdit . . . BWeiter: TButton. . . LAnzahl: TLabel KB BInit: TButton Form 1: TForm. . .

Implementierung 15 Ereignisgesteuerte Programmierung Aufgabe: KB Erstellen Sie mit Hilfe des Delphi-Objektinspektors die unten abgebildete Benutzungsoberfläche. Geben Sie den benutzten GUI-Objekten die unten festgelegten Namen. Schauen Sie sich anschließend auch den von Delphi erzeugten Quelltext an. LUeberschrift LJahr EJahr LAnzahl EAnzahl BInit BWeiter

Delphi-Quelltext 16 Ereignisgesteuerte Programmierung unit Unit 1; interface uses Windows, Messages, Sys. Utils, Classes, Graphics, Controls, Forms, Dialogs, Std. Ctrls; type TForm 1 = class(TForm) LUeberschrift: TLabel; BInit: TButton; BWeiter: TButton; LJahr: TLabel; LAnzahl: TLabel; EJahr: TEdit; EAnzahl: TEdit; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form 1: TForm 1; implementation KB {$R *. DFM} end.

17 Daten und Operationen Ereignisgesteuerte Programmierung Modellierung: KB Informationen: Variablen / Konstanten: Im Jahr 1999 wurde die 6 Milliardengrenze überschritten; zur Zeit wächst die Weltbevölkerung jährlich um ca. 1, 3 %. const p = 1. 3; var Jahr : integer; Anzahl : real;

Operationen 18 Ereignisgesteuerte Programmierung Benutzeraktion: KB Mausklick auf init-Button Programmreaktion: Die Anfangspopulation (1999: 6. 0 Mrd. ) wird festgelegt. procedure init. Population; begin Jahr : = 1999; Anzahl : = 6. 0; end; Benutzeraktion: Mausklick auf >-Button Programmreaktion: Die nächste Population wird berechnet. procedure naechste. Population; begin Jahr : = Jahr + 1; Anzahl : = Anzahl + p/100*Anzahl; end;

Implementierung 19 Ereignisgesteuerte Programmierung Aufgabe: Ergänzen Sie in der Implementierung das Datenmodell wie folgt. . implementation {$R *. DFM} // Datenmodell const p = 1. 3; // jährliche prozentuale Wachstumsrate var Jahr : integer; Anzahl : real; // Operationen zur Aktualisierung des Datenmodells procedure init. Population ; begin. . . end; procedure naechste. Population ; begin. . . end; end. KB

Ereignisbehandlung Ereignisgesteuerte Programmierung 20 KB Modellierung: Benutzeraktion Ereignis Programmreaktionen: Mausklick auf init-Button Die Anfangspopulation (1999: 6. 0 Mrd. ) wird festgelegt (und angezeigt). Mausklick auf >-Button Die nächste Population (jeweils nach einem Jahr) wird berechnet (und angezeigt).

21 Datenaustausch mit den GUI-Objekten Ereignisgesteuerte Programmierung Variablen / Konstanten: KB const p = 1. 3; var Jahr : integer; Anzahl : real; Variablen Jahr Anzahl GUI-Objekte: EJahr: TEdit Text =. . . EAnzahl: TEdit Text =. . . GUI-Objekte : = Str. To. Int(EJahr. Text); : = Str. To. Float(EAnzahl. Text); Variablen EJahr. Text : = Int. To. Str(Jahr); EAnzahl. Text : = Float. To. Str(Anzahl); GUI-Objekte

22 Ereignisbehandlungsmethoden Ereignisgesteuerte Programmierung Ereignis: Mausklick auf init-Button KB procedure TForm 1. BInit. Click(Sender: begin init. Population; EJahr. Text : = Int. To. Str(Jahr); EAnzahl. Text : = Float. To. Str(Anzahl); end; TObject); // Aktualisier. der Daten // Aktualisierung der // Objektattributwerte Ereignis: Mausklick auf >-Button procedure TForm 1. BWeiter. Click(Sender: TObject); begin naechste. Population; // Aktualisier. der Daten EJahr. Text : = Int. To. Str(Jahr); // Aktualisierung der EAnzahl. Text : = Float. To. Str(Anzahl); // Objektattributwerte end;

Delphi-Quelltext 23 Ereignisgesteuerte Programmierung Aufgabe: Ergänzen Sie in der Implementierung die fehlenden Ereignisbehandlungsmethoden. . implementation {$R *. DFM} // Datenmodell. . . // Operationen zur Aktualisierung des Datenmodells. . . // Ereignisbehandlungsmethoden procedure TForm 1. BInit. Click(Sender: TObject); begin. . . end; procedure TForm 1. BWeiter. Click(Sender: TObject); begin. . . end; end. KB Bevölkerungsentwicklung 1

Projektdateien – eine Übersicht 24 Ereignisgesteuerte Programmierung Project 1. dpr KB program Project 1; uses Forms, Unit 1 in 'Unit 1. pas' {Form 1}; {$R *. RES} begin Application. Initialize; Application. Create. Form(TForm 1, Form 1); Application. Run; end. Project 1. exe Compiliertes Programm Project 1. res Windows-Ressourcendatei (Button, Label, . . . ) Project 1. dof Delphi-Projekt-Optionen Project 1. cfg Konfigurationsdatei Unit 1. pas Quelltext für Unit 1. dcu compilierte Unit 1. dfm Bilddatei für Form 1

Übungen – Aufgabe 1 Ereignisgesteuerte Programmierung 25 KB Ergänzen Sie weitere Buttons, deren Verhalten wie folgt spezifiziert ist: Benutzeraktion: Programmreaktion: Mausklick auf <-Button Die vorherige Population (jeweils vor einem Jahr) wird berechnet (und angezeigt), sofern das Jahr nicht vor 1999 ist. Mausklick auf >>-Button Die Population 10 Jahre später wird berechnet (und angezeigt). Mausklick auf >>-Button Die Population 10 Jahre vorher wird berechnet (und angezeigt). Man kann aber höchstens bis 1999 zurückspringen.

Übungen – Aufgabe 2 Ereignisgesteuerte Programmierung 26 KB Der Benutzer / die Benutzerin soll selbst die Anfangswerte der Population festlegen können. Insbesondere soll er / sie auch die jährliche prozentuale Wachstumsrate eingeben können. Ändern Sie das Simulationsprogramm entsprechend ab. Überlegen Sie sich hierzu zunächst, welche Programmteile sie verändern / ergänzen müssen. - Benutzungsoberfläche ? Datenmodell ? Verarbeitungsoperationen ? Ereignisbehandlungsmethoden?

Übungen – Aufgabe 3 Ereignisgesteuerte Programmierung 27 KB Das benutzte Wachstumsmodell beschreibt die Bevölkerungsentwicklung nur in einem begrenzten Zeitraum realistisch. Über längere Zeiträume lässt sich das Bevölkerungswachstum besser durch die angegebene Folge beschreiben: B 0 = 6. 0 Bn+1 = Bn + 0. 0027*Bn*(11 – Bn) Ändern Sie das Simulationsprogramm entsprechend ab. Überlegen Sie sich hierzu zunächst, welche Programmteile sie verändern müssen. - Benutzungsoberfläche ? Datenmodell ? Verarbeitungsoperationen ? Ereignisbehandlungsmethoden?

Ereignisgesteuerte Programmierung 28 Übungen – Aufgabe 4 Es soll ein Programm erstellt werden, das dem Benutzer Aufgaben zu den vier Grundrechenarten aus dem Zahlenbereich 0. . 10 stellt. Legen Sie zunächst die Ereignisbehandlung fest. Entwerfen Sie anschließend das Datenmodell mit den zugehörigen Verarbeitungsoperationen. KB

Ereignisgesteuerte Programmierung 29 KB Teil 2 Ereignisverarbeitung

Ereignisgesteuerte Programmierung 30 KB Der Rechentrainer Ziel: Es soll ein Programm erstellt werden, das dem Benutzer Aufgaben zu den vier Grundrechenarten aus dem Zahlenbereich 0. . 10 stellt. (vgl. auch G. Noll: informatikag. bildung-rp. de/html/delphi_teil_1. html)

Ereignisgesteuerte Programmierung 31 KB Modellierung der Benutzungsschnittstelle

Ereignisgesteuerte Programmierung 32 KB Modellierung der Ereignisbehandlung Ereignisse: Aktionen: BAddition. On. Click Erzeuge +-Aufgabe; Berechne Ergebnis; Zeige Aufgabe BSubtraktion. On. Click Erzeuge -Aufgabe; Berechne Ergebnis; Zeige Aufgabe BMultiplikation. On. Click Erzeuge *-Aufgabe; Berechne Ergebnis; Zeige Aufgabe BDivision. On. Click Erzeuge : -Aufgabe; Berechne Ergebnis; Zeige Aufgabe BErgebnis. On. Click Zeige Ergebnis Form 1. On. Create Initialisiere Zufallsgenerator

Ereignisgesteuerte Programmierung 33 KB Modellierung der Daten und Operationen Daten: var Rechenzeichen: char; Zahl 1, Zahl 2, Ergebnis: integer; Verarbeitungsoperationen: procedure Plus. Aufgabe. Erzeugen; . . . procedure Minus. Aufgabe. Erzeugen; . . . procedure Mal. Aufgabe. Erzeugen; . . . procedure Durch. Aufgabe. Erzeugen; . . . procedure Ergebnis. Berechnen; . . .

Ereignisgesteuerte Programmierung 34 KB Auszug aus der Implementierung. . . procedure Plus. Aufgabe. Erzeugen; begin Zahl 1 : = random(11); Zahl 2 : = random(11); Rechenzeichen : = '+'; end; procedure Minus. Aufgabe. Erzeugen; begin Zahl 1 : = random(11); Zahl 2 : = random(11); Rechenzeichen : = '-'; end; procedure Mal. Aufgabe. Erzeugen; begin. . . Beachte: Die Implementierung ist redundant.

Ereignisgesteuerte Programmierung 35 KB Modellierung der Daten und Operationen Daten: var Rechenzeichen: char; Zahl 1, Zahl 2, Ergebnis: integer; Verarbeitungsoperationen: procedure Aufgabe. Erzeugen; . . . procedure Ergebnis. Berechnen; . . .

Ereignisgesteuerte Programmierung 36 KB Modellierung der Ereignisbehandlung Ereignis: Behandlungsmethode: BAddition. On. Click BSubtraktion. On. Click BMultiplikation. On. Click BDivision. On. Click TForm 1. Rechenzeichen. Click(Sender: TObject) BErgebnis. On. Click TForm 1. BErgebnis. Click(Sender: TObject) Form 1. On. Create TForm 1. Form. Create(Sender: TObject)

Ereignisgesteuerte Programmierung 37 KB Verarbeitung von Ereignissen Auslösende Aktion: Mausklick auf +-Button Ereignis: BAddition. On. Click Ausgelöste Aktion: Rechenzeichen. Click(BAddition) Sender Delphi wartet auf Ereignisse und reagiert mit der Ausführung der zugeordneten Methoden

Implementierungshinweise Ereignisgesteuerte Programmierung 38 KB Ereignis: Behandlungsmethode: BAddition. On. Click BSubtraktion. On. Click BMultiplikation. On. Click BDivision. On. Click TForm 1. Rechenzeichen. Click(Sender: TObject) procedure TForm 1. BRechenzeichen. Click(Sender: TObject); begin // Aktualisierung der Modelldaten if Sender = BAddition then Rechenzeichen : = '+'; if Sender = BSubtraktion then Rechenzeichen : = '-'; if Sender = BMultiplikation then Rechenzeichen : = '*'; if Sender = BDivision then Rechenzeichen : = ': '; // Aufruf der Verarbeitungsoperationen Aufgabe. Erzeugen; Ergebnis. Berechnen; // Aktualisierung der Anzeige LZahl 1. Caption : = Int. To. Str(Zahl 1); . . . end;

Implementierung 39 Ereignisgesteuerte Programmierung Aufgabe: KB Ändern Sie das Programm Rechentrainer 1 gemäß der verbesserten Modellierung ab. (zur Kontrolle: Rechentrainer 2)

40 Übungen – Aufgabe 5 Ereignisgesteuerte Programmierung Der Rechentrainer soll wie folgt abgeändert werden: KB Der Benutzer soll einen Lösungsvorschlag in ein Editfeld eingeben können. Nach Abschluss der Eingabe bewertet das System den Lösungsvorschlag (richtig oder falsch). Ändern Sie zunächst die Benutzungsoberfläche geeignet ab. Ergänzen Sie gegebenenfalls das Datenmodell. Entwerfen und implementieren Sie eine geeignete Ereignisbehandlungsmethode. Das geeignete Ereignis finden Sie mit dem Objektinspektor. (zur Kontrolle: Rechentrainer 3)

Ereignisgesteuerte Programmierung 41 KB Teil 3 Modellierung ereignisgesteuerter Abläufe

Ereignisgesteuerte Programmierung 42 KB Das Ziegenproblem Der Moderator einer Spielshow zeigt dem Kandidaten 3 Türen. "Hinter einer der 3 Türen steht der Hauptgewinn, ein Auto. Hinter den beiden anderen Türen sind Ziegen. Welche Tür wählen Sie ? " Nachdem sich der Kandidat entschieden hat (z. B. für Tür 1), öffnet der Moderator eine der beiden anderen mit einer Ziege (z. B. Tür 3). "Bleiben Sie nun bei Ihrer Wahl oder möchten Sie auf umwählen (hier Tür 2) ? "

Ereignisgesteuerte Programmierung 43 Systembeschreibung Das zu entwickelnde System simuliert die Gewinnermittlung der Spielshow. Der Benutzer des Systems übernimmt die Rolle des Kandidaten, das System selbst simuliert den Moderator. Anforderungen an das System: - Das System bereitet eine Spielsituation (wie im Bild) vor. - Der Benutzer kann mit dem System über Schaltflächen etc. interagieren. - Der Benutzer wird über seine vorzunehmenden Aktionen und die jeweiligen Resultate informiert. - Das Spiel kann wiederholt ausgeführt werden. [- Es wird eine kleine Statistik über die Spielergebnisse angefertigt. ] KB

Ereignisgesteuerte Programmierung 44 KB Modellierung der Benutzungsoberfläche

Ablaufmodellierung 45 Ereignisgesteuerte Programmierung Zustand: KB Ereignis: Aktionen: Neuer Zustand: Form 1. On. Create Spiel vorbereiten Anzeigen bereit BTuer 1. On. Click. . . Ziegentür öffnen Anzeigen gewählt BTuer 1. On. Click. . . Spiel auswerten Anzeigen fertig BNeu. On. Click Spiel vorbereiten Anzeigen bereit

Ablaufmodellierung Ereignisgesteuerte Programmierung 46 KB BNeu. On. Click / Spiel vorbereiten Form 1. On. Create / Spiel vorbereiten bereit BTuer 3. On. Click/ Ziegentür öffnen BTuer 3. On. Click / Spiel auswerten BTuer 2. On. Click / Ziegentür öffnen BTuer 2. On. Click / Spiel auswerten BTuer 1. On. Click / Ziegentür öffnen BTuer 1. On. Click / Spiel auswerten BNeu. On. Click / Spiel vorbereiten gewählt BNeu. On. Click / Spiel vorbereiten Zustandsbasierte Ablaufmodellierung Darstellung mit einem Zustandsübergangsdiagramm fertig BTuer 3. On. Click BTuer 2. On. Click BTuer 1. On. Click
![Ereignisgesteuerte Programmierung 47 KB Modellierungstechnik: Automat Zustand 1 Ereignis [Bedingung] / Aktion Zustand 2 Ereignisgesteuerte Programmierung 47 KB Modellierungstechnik: Automat Zustand 1 Ereignis [Bedingung] / Aktion Zustand 2](http://slidetodoc.com/presentation_image_h/c6163a35b2f8d0dacead9dee3e62097e/image-47.jpg)
Ereignisgesteuerte Programmierung 47 KB Modellierungstechnik: Automat Zustand 1 Ereignis [Bedingung] / Aktion Zustand 2 Grundschema eines Zustandsübergangs bei einem (Harel-) Automat

48 Datenmodellierung Ereignisgesteuerte Programmierung Version 1 KB type t. Zustand = (bereit, gewaehlt, fertig); var offen 1: boolean offen 2: boolean offen 3: boolean Gewinntuer: integer; gewaehlte. Tuer: integer; Gewinn: string; Spielzustand: t. Zustand Ziegenproblem 1

49 Datenmodellierung Ereignisgesteuerte Programmierung Version 2 type t. Zustand = (bereit, gewaehlt, fertig); t. Tuer = RECORD offen: boolean; Gewinn: string; END; var Tuer 1: t. Tuer 2: t. Tuer 3: t. Tuer Gewinntuer: integer; gewaehlte. Tuer: integer; Spiel. Gewinn: string; Spielzustand: t. Zustand Ziegenproblem 2 KB

50 Datenmodellierung Ereignisgesteuerte Programmierung Version 3 KB type t. Zustand = (bereit, gewaehlt, fertig); t. Tuer = RECORD offen: boolean; Gewinn: string; END; var Tuer: array [1. . 3] of t. Tuer Gewinntuer: integer; gewaehlte. Tuer: integer; Spiel. Gewinn: string; Spielzustand: t. Zustand

Ereignisgesteuerte Programmierung 51 KB Modellierung der Verarbeitungsoperationen Spiel. Vorbereiten - alle Türen werden geschlossen - die Gewinntür wird (per Zufallsgenerator) ermittelt - der Spielzustand wird gesetzt Ziegentuer. Oeffnen - die vom Master gewählte „Ziegentür“ wird bestimmt und geöffnet - der Spielzustand wird aktualisiert Spiel. Auswerten - alle Türen werden geöffnet - der Gewinn wird ermittelt - der Spielzustand wird aktualisiert informelle Verhaltensbeschreibungen

52 Implementierung Ereignisgesteuerte Programmierung Versuchen Sie jetzt, das Programm selbst zu implementieren. KB Sie können aber auch eine fertige Implementierung analysieren und um eine statistische Auswertung (wie beim Internet-Simulationsprogramm) ergänzen.

53 Übungen – Aufgabe 6 Ereignisgesteuerte Programmierung Password-Überprüfung Das zu entwickelnde System ermittelt per Zufallsgenerator eine Zahl zwischen 0 und 9 (Password). Der Benutzer hat maximal 3 Versuche, das Password richtig einzugeben. Nach drei Fehlversuchen nimmt das System keine weiteren Eingaben mehr an und informiert den Benutzer hierüber. Entwickeln Sie ein solches Passwordüberprüfungssystem. Schritt 1: Systembeschreibung (teilweise oben durchgeführt) Schritt 2: Modellierung des Systems (Benutzungsoberfläche; Ablaufmodell. mit Automat; Datenmodell incl. Verarbeitungsoperationen) Schritt 3: Realisierung bzw. Implementierung des Systems Schritt 4: Test des Systems KB

Übungen – Aufgabe 7 54 Ereignisgesteuerte Programmierung 17 und 4 KB Ziel ist es, das Spiel „ 17 und 4“ zu simulieren. Das Spiel soll wie folgt funktionieren: In jedem Spielzug wird eine Karte mit einer Zahl aus dem Bereich [1; . . . ; 11] bestimmt und auf einen Kartenstapel gelegt. Der Spieler kann nach jedem Spielzug entscheiden, ob er aufhört oder weiter spielt. Ist die Summe der Zahlen der Karten des Stapels größer als 21, so hat der Spieler verloren. Hört der Spieler bei einer Stapelsumme kleiner oder gleich 21 auf, so wird die nächste Karte gezogen. Ist die neue Stapelsumme immer noch kleiner oder gleich 21, so hat der Spieler verloren, andernfalls gewonnen.

Aufgabe 6 - Lösungsvorschlag Ereignisgesteuerte Programmierung 55 KB Password 1

Ereignisgesteuerte Programmierung 56 KB Aufgabe 6 - Lösungsvorschlag Form 1. On. Create / Daten. Initialisieren 0 EEingabe. On. Change / [Eingabe Password] / Ausgabe: falsch 1 2 3 EEingabe. On. Change / [Eingabe = Password] / Ausgabe: ok 4 EEingabe. On. Change /

Ereignisgesteuerte Programmierung 57 KB Aufgabe 6 - Lösungsvorschlag // Datenmodell type t. Zustand = 0. . 4; var Password : integer; Eingabe : integer; Zustand : t. Zustand; // Datenverarbeitungsoperationen procedure Daten. Initialisieren ; begin randomize; Password : = random(10); Zustand : = 0; end; Password 1

58 Aufgabe 6 - Lösungsvorschlag Ereignisgesteuerte Programmierung // Ereignisbehandlungsmethoden KB procedure TForm 1. Form. Create(Sender: TObject); begin // Aktualisierung des Datenmodells Daten. Initialisieren; end; procedure TForm 1. EEingabe. Change(Sender: TObject); begin // Aktualisierung des Datenmodells if Zustand < 3 then begin Eingabe : = Str. To. Int(EEingabe. Text); if Eingabe = Password then Zustand : = 4 else Zustand : = Zustand + 1; end; // Aktualisierung der Anzeige if Zustand = 4 then PRueckmeldung. Caption : = 'Ok!' else PRueckmeldung. Caption : = 'Falsch!'; end; Password 1

Ereignisgesteuerte Programmierung 59 KB Teil 4 Entwicklung von Delphi-Programmen

Programmentwicklung 60 Ereignisgesteuerte Programmierung Problemanalyse Entwurf / Modellierung - Modellierung der Benutzungsoberfläche – erfolgt oft direkt in der Entwicklungsumgebung: Auswahl der Objekte zur Systemkontrolle und Datenanzeige - Modellierung der Ereignisbehandlung (Tabelle / Automat) - Modellierung der Daten und Verarbeitungsoperationen (ergeben sich i. a. aus der Ereignisbehandlung) Realisierung - Implementierung des Datenmodells und der Verarbeitungsoperationen - Implementierung der Ereignisbehandlungsmethoden Nutzung - Testen der Programmfunktionalitäten KB

Ereignisgesteuerte Programmierung 61 Strukturierung: Model-View-Control var Rechenzeichen: char; Zahl 1, Zahl 2, Ergebnis: integer; procedure Aufgabe. Erzeugen; . . . Model procedure Ergebnis. Berechnen; . . . Control View KB

Programmgestaltung 62 Ereignisgesteuerte Programmierung unit Unit 1; KB interface uses Windows, Messages, Sys. Utils, Classes, Graphics, Controls, Forms, Dialogs, Std. Ctrls; type TForm 1 = class(TForm) // View- und Control-Objekte LUeberschrift: TLabel; . . . private { Private-Deklarationen } public { Public-Deklarationen } end; var Form 1: TForm 1;

Programmgestaltung 63 Ereignisgesteuerte Programmierung implementation KB {$R *. DFM} // Datenmodell (Model) const. . . type. . . var. . . // Operationen zur Aktualisierung des Datenmodells procedure. . . ; begin. . . end; function. . . ; begin. . . end; // Ereignisbehandlungsmethoden ( Control) procedure TForm 1. ? ? ? On. Click(Sender: TObject); begin // Aktualisierung des Modells ( Model). . . // Aktualisierung der Anzeige ( View). . . end; end.

Literaturhinweise Ereignisgesteuerte Programmierung 64 KB Einführung in die Programmierung mit Delphi. - Doberenz / Kowalski: Borland Delphi 6, Hanser-Verlag 2002. - Schumann: Delphi für Kids (incl. Delphi 3 CD), mitp-Verlag 2000. . Schulbücher zur Programmierung / Informatik mit Delphi - Modrow: Informatik mit Delphi (2 Bd. ), Dümmler-Stam 1998 -2000. - Bähnisch: Praktische Informatik mit Delphi (2 Bd. ), Cornelsen 2001. - Damann-Wemßen: Objektorientierte Programmierung mit Delphi, Band 1, Klett 2001. .

Literaturhinweise Ereignisgesteuerte Programmierung 65 KB Materialien im Internet - IFB-Fortbildung: informatikag. bildung-rp. de/html/delphi_teil_1. html - Lessing-Gymnasium Plauen: www. plauener. de/delphi - OSZ Berlin: oszhdl. be. schule. de/index. htm - Heidler: www. friedrich. fr. schule-bw. de/ delphi. . .
- Slides: 65