Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ereignisgesteuerte Programmierung Klaus Becker 2002.

Ähnliche Präsentationen


Präsentation zum Thema: "Ereignisgesteuerte Programmierung Klaus Becker 2002."—  Präsentation transkript:

1 Ereignisgesteuerte Programmierung Klaus Becker 2002

2 KB Ereignisgesteuerte Programmierung 2 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 ?"

3 KB Ereignisgesteuerte Programmierung 3 Simulationsprogramm

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

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

6 KB Ereignisgesteuerte Programmierung 6 Teil 1 Programmgestaltung mit GUI-Objekten

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

9 KB Ereignisgesteuerte Programmierung 9 Delphi-Entwicklungsumgebung Komponentenpalette Objektinspektor Formular

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

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

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

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

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

15 KB Ereignisgesteuerte Programmierung 15 Implementierung BWeiter EAnzahl LUeberschrift EJahr BInit LJahr LAnzahl Aufgabe: 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.

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

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

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

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

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

21 KB Ereignisgesteuerte Programmierung 21 Datenaustausch mit den GUI-Objekten EJahr.Text := IntToStr(Jahr); EAnzahl.Text := FloatToStr(Anzahl); const p = 1.3; var Jahr : integer; Anzahl : real; Variablen / Konstanten: EJahr: TEdit Text =... EAnzahl: TEdit Text =... GUI-Objekte: Jahr := StrToInt(EJahr.Text); Anzahl := StrToFloat(EAnzahl.Text); VariablenGUI-Objekte VariablenGUI-Objekte

22 KB Ereignisgesteuerte Programmierung 22 Ereignisbehandlungsmethoden procedure TForm1.BInitClick(Sender: TObject); begin initPopulation; // Aktualisier. der Daten EJahr.Text := IntToStr(Jahr); // Aktualisierung der EAnzahl.Text := FloatToStr(Anzahl); // Objektattributwerte end; procedure TForm1.BWeiterClick(Sender: TObject); begin naechstePopulation; // Aktualisier. der Daten EJahr.Text := IntToStr(Jahr); // Aktualisierung der EAnzahl.Text := FloatToStr(Anzahl); // Objektattributwerte end; Ereignis: Mausklick auf init-Button Ereignis: Mausklick auf >-Button

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

24 KB Ereignisgesteuerte Programmierung 24 Projektdateien – eine Übersicht program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Project1.dpr Project1.exeCompiliertes Programm Unit1.pasQuelltext für Unit1 Unit1.dcucompilierte Unit1 Project1.cfgKonfigurationsdatei Project1.resWindows-Ressourcendatei (Button, Label,...) Project1.dofDelphi-Projekt-Optionen Unit1.dfmBilddatei für Form1

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

26 KB Ereignisgesteuerte Programmierung 26 Übungen – Aufgabe 2 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?

27 KB Ereignisgesteuerte Programmierung 27 Übungen – Aufgabe 3 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 B n+1 = B n *B n *(11 – B n ) Ändern Sie das Simulationsprogramm entsprechend ab. Überlegen Sie sich hierzu zunächst, welche Programmteile sie verändern müssen. - Benutzungsoberfläche ? - Datenmodell ? - Verarbeitungsoperationen ? - Ereignisbehandlungsmethoden?

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

29 KB Ereignisgesteuerte Programmierung 29 Teil 2 Ereignisverarbeitung

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

31 KB Ereignisgesteuerte Programmierung 31 Modellierung der Benutzungsschnittstelle

32 KB Ereignisgesteuerte Programmierung 32 Modellierung der Ereignisbehandlung Ereignisse: BAddition.OnClick BSubtraktion.OnClick BMultiplikation.OnClick BDivision.OnClick BErgebnis.OnClick Form1.OnCreate Aktionen: Erzeuge +-Aufgabe; Berechne Ergebnis; Zeige Aufgabe Erzeuge -Aufgabe; Berechne Ergebnis; Zeige Aufgabe Erzeuge *-Aufgabe; Berechne Ergebnis; Zeige Aufgabe Erzeuge :-Aufgabe; Berechne Ergebnis; Zeige Aufgabe Zeige Ergebnis Initialisiere Zufallsgenerator

33 KB Ereignisgesteuerte Programmierung 33 Modellierung der Daten und Operationen var Rechenzeichen: char; Zahl1, Zahl2, Ergebnis: integer; Daten: Verarbeitungsoperationen: procedure PlusAufgabeErzeugen;... procedure MinusAufgabeErzeugen;... procedure MalAufgabeErzeugen;... procedure DurchAufgabeErzeugen;... procedure ErgebnisBerechnen;...

34 KB Ereignisgesteuerte Programmierung 34 Auszug aus der Implementierung... procedure PlusAufgabeErzeugen; begin Zahl1 := random(11); Zahl2 := random(11); Rechenzeichen := '+'; end; procedure MinusAufgabeErzeugen; begin Zahl1 := random(11); Zahl2 := random(11); Rechenzeichen := '-'; end; procedure MalAufgabeErzeugen; begin... Beachte: Die Implementierung ist redundant.

35 KB Ereignisgesteuerte Programmierung 35 Modellierung der Daten und Operationen var Rechenzeichen: char; Zahl1, Zahl2, Ergebnis: integer; Daten: Verarbeitungsoperationen: procedure AufgabeErzeugen;... procedure ErgebnisBerechnen;...

36 KB Ereignisgesteuerte Programmierung 36 Modellierung der Ereignisbehandlung Ereignis: BAddition.OnClick BSubtraktion.OnClick BMultiplikation.OnClick BDivision.OnClick BErgebnis.OnClick Form1.OnCreate Behandlungsmethode: TForm1.RechenzeichenClick(Sender: TObject) TForm1.BErgebnisClick(Sender: TObject) TForm1.FormCreate(Sender: TObject)

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

38 KB Ereignisgesteuerte Programmierung 38 Implementierungshinweise Ereignis: BAddition.OnClick BSubtraktion.OnClick BMultiplikation.OnClick BDivision.OnClick Behandlungsmethode: TForm1.RechenzeichenClick(Sender: TObject) procedure TForm1.BRechenzeichenClick(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 AufgabeErzeugen; ErgebnisBerechnen; // Aktualisierung der Anzeige LZahl1.Caption := IntToStr(Zahl1);... end;

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

40 KB Ereignisgesteuerte Programmierung 40 Übungen – Aufgabe 5 Der Rechentrainer soll wie folgt abgeändert werden: 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 Ereignisbehandlungs- methode. Das geeignete Ereignis finden Sie mit dem Objektinspektor. (zur Kontrolle: Rechentrainer3)

41 KB Ereignisgesteuerte Programmierung 41 Teil 3 Modellierung ereignisgesteuerter Abläufe

42 KB Ereignisgesteuerte Programmierung 42 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) ?"

43 KB 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.]

44 KB Ereignisgesteuerte Programmierung 44 Modellierung der Benutzungsoberfläche

45 KB Ereignisgesteuerte Programmierung 45 Ablaufmodellierung Ereignis: Form1.OnCreate BTuer1.OnClick... BNeu.OnClick Aktionen: Spiel vorbereiten Anzeigen Ziegentür öffnen Anzeigen Spiel auswerten Anzeigen Spiel vorbereiten Anzeigen Zustand: bereit gewählt fertig Neuer Zustand: bereit gewählt fertig bereit

46 KB Ereignisgesteuerte Programmierung 46 Ablaufmodellierung BTuer1.OnClick / Ziegentür öffnen bereitgewähltfertig BNeu.OnClick / Spiel vorbereiten BTuer2.OnClick / Ziegentür öffnen BTuer3.OnClick/ Ziegentür öffnen Form1.OnCreate / Spiel vorbereiten BTuer1.OnClick / Spiel auswerten BTuer2.OnClick / Spiel auswerten BTuer3.OnClick / Spiel auswerten BNeu.OnClick / Spiel vorbereiten BTuer1.OnClick BTuer2.OnClick BTuer3.OnClick Darstellung mit einem Zustandsübergangsdiagramm Zustandsbasierte Ablaufmodellierung

47 KB Ereignisgesteuerte Programmierung 47 Modellierungstechnik: Automat Zustand1 Ereignis [Bedingung] / Aktion Grundschema eines Zustandsübergangs bei einem (Harel-) Automat Zustand2

48 KB Ereignisgesteuerte Programmierung 48 Datenmodellierung type tZustand = (bereit, gewaehlt, fertig); var offen1: boolean offen2: boolean offen3: boolean Gewinntuer: integer; gewaehlteTuer: integer; Gewinn: string; Spielzustand: tZustand Version 1 Ziegenproblem1

49 KB Ereignisgesteuerte Programmierung 49 Datenmodellierung type tZustand = (bereit, gewaehlt, fertig); tTuer = RECORD offen: boolean; Gewinn: string; END; var Tuer1: tTuer Tuer2: tTuer Tuer3: tTuer Gewinntuer: integer; gewaehlteTuer: integer; SpielGewinn: string; Spielzustand: tZustand Version 2 Ziegenproblem2

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

51 KB Ereignisgesteuerte Programmierung 51 Modellierung der Verarbeitungsoperationen SpielVorbereiten - alle Türen werden geschlossen - die Gewinntür wird (per Zufallsgenerator) ermittelt - der Spielzustand wird gesetzt ZiegentuerOeffnen - die vom Master gewählte Ziegentür wird bestimmt und geöffnet - der Spielzustand wird aktualisiert SpielAuswerten - alle Türen werden geöffnet - der Gewinn wird ermittelt - der Spielzustand wird aktualisiert informelle Verhaltensbeschreibungen

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

53 KB Ereignisgesteuerte Programmierung 53 Übungen – Aufgabe 6 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

54 KB Ereignisgesteuerte Programmierung 54 Übungen – Aufgabe 7 17 und 4 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.

55 KB Ereignisgesteuerte Programmierung 55 Aufgabe 6 - Lösungsvorschlag Password1

56 KB Ereignisgesteuerte Programmierung 56 Aufgabe 6 - Lösungsvorschlag EEingabe.OnChange / [Eingabe Password] / Ausgabe: falsch 012 Form1.OnCreate / DatenInitialisieren 4 3 EEingabe.OnChange / [Eingabe Password] / Ausgabe: falsch EEingabe.OnChange / EEingabe.OnChange / [Eingabe = Password] / Ausgabe: ok EEingabe.OnChange /

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

58 KB Ereignisgesteuerte Programmierung 58 Aufgabe 6 - Lösungsvorschlag // Ereignisbehandlungsmethoden procedure TForm1.FormCreate(Sender: TObject); begin // Aktualisierung des Datenmodells DatenInitialisieren; end; procedure TForm1.EEingabeChange(Sender: TObject); begin // Aktualisierung des Datenmodells if Zustand < 3 then begin Eingabe := StrToInt(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; Password1

59 KB Ereignisgesteuerte Programmierung 59 Teil 4 Entwicklung von Delphi-Programmen

60 KB Ereignisgesteuerte Programmierung 60 Programmentwicklung 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

61 KB Ereignisgesteuerte Programmierung 61 Strukturierung: Model-View-Control var Rechenzeichen: char; Zahl1, Zahl2, Ergebnis: integer; procedure AufgabeErzeugen;... procedure ErgebnisBerechnen;... Model View Control

62 KB Ereignisgesteuerte Programmierung 62 Programmgestaltung unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) // View- und Control-Objekte LUeberschrift: TLabel;... private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1;

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

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

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


Herunterladen ppt "Ereignisgesteuerte Programmierung Klaus Becker 2002."

Ähnliche Präsentationen


Google-Anzeigen