Ereignisorientierte Programmierung

Ähnliche Dokumente
Programmieren I. Kapitel 5. Kontrollfluss

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

VBA-Programmierung: Zusammenfassung

Ereignisse Auf Benutzereingaben reagieren

Auf einen Blick. 1 Apps programmieren wie geht das? Das App-Werkzeug: LiveCode Grundbausteine einer App... 43

Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR.

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

2 Teil 2: Nassi-Schneiderman

Vorlesung Objektorientierte Programmierung Klausur

Allgemeine Erläuterungen zum Ausführen eines Sprachdialoges

Objektorientierte Programmierung und Modellierung

Erste Schritte PRÄSENTIEREN MIT MEDIATOR 8.0 PRO

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Python 3.6. Erste Schritte auf dem Mac. Syshack. 22. Juni 2017 Version 2.0. Python Erste Schritte auf dem Mac Syshack, 22.

Mensch-Maschine-Kommunikation

Objektorientierte Programmierung Studiengang Medieninformatik

Javakurs für Anfänger

Java Kurzreferenz Für Fortgeschrittene

Programmieren in C++ Überladen von Methoden und Operatoren

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

JavaScript clientseitige Programmiersprache zur Dynamisierung von Internetseiten

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Inhalt. Dokument Beschreibung. Bentley Technical Support ProStructures.Net - Zusatzprogrammierung Visual Basic Express PST_Bearbeitung_Dialog

Probeklausur: Programmierung WS04/05

Einführung in die Informatik - Teil 4b - Zeichnen mit der Maus im JBuilder

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int

Man kann bei der Deklaration einen Wert der Variablen angeben oder später den Wert zuweisen. Beide Befehlsfolgen leisten dasselbe:

Mediator 9 - Lernprogramm

4. Objektorientierte Programmierung mit C++

Interaktionsdiagramme in UML

Alexander Niemann. Das Einsteigerseminar" < Objektorientierte ^ Programmierung in Java. bhv. i.-

Name Klasse Datum. Kontrollstrukturen steuern die Ausführung von Anweisungen

Algorithmus: Kochrezept

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Microsoft Access 2010 Bilder

Delegatesund Ereignisse

Einführung GAM. Beispiel 1: Quader

Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden. Name:

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

myavr Programmierung in C

Informatik Klasse 13, Foliensatz 7 Maus-Ereignisse

Modellierung und Programmierung 1

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Einführung in die Programmierung für NF. Übung 08

6 Speicherorganisation

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Das Einsteigerseminar Objektorientierte Programmierung in Java

Windows. Martina MÜLLER. Monika WEGERER. Zusammengestellt von. Überarbeitet von

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Eine Kommando-Oberfläche für.net

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Einführung in die Programmierung mit VBA

< Konzepte & Grundlagen der Programmierung />

VB.net Programmierung und Beispielprogramm für GSV

Tipps & Tricks im CRM

Arbeitsblatt 5 EAD II NetBeans

Einstieg in die Informatik mit Java

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Abfrage des aktuellen Betriebszustands und der MLFB Nummer des IT CP IT oder IT

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

JavaFX Layout and Controls

Ausdrücke in Scala. Funktionale Programmierung. Christoph Knabe FB VI

7. Übung Informatik II - Objektorientierte Programmierung

JavaFX Interaction. Events Eventhandler Lambda-Ausdrücke

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Warten auf Ereignisse

JAVA-Datentypen und deren Wertebereich

Schnelleinstieg Online-Backup

Swissmem ebooks ebook Funktionen Software Version 4.x (PC)

Funktionen nur wenn dann

Übersicht Shell-Scripten

C.3 Funktionen und Prozeduren

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

ModusOne Client. ModusOne Client

HTk: Ein GUI für Haskell

8.3 Zeitachse drucken

JESS Eine Kurzeinführung

Arbeit_Roboter. Setze einen Haken bei den Fragen, die du für richtig hältst: Bei Textantworten oder Lückentexten gib jeweils das Ergebnis an.

Java I Vorlesung Imperatives Programmieren

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Grundlagen der Fortran Sprache

Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur

Homematic Scriptprogrammierung

2 Eine einfache Programmiersprache

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Schnellübersichten. Visual Basic 2015 Grundlagen Programmierung

Access 2010 Programmierung Schleifen

In diesem ersten Kapitel erhalten Sie einen Überblick über das Programm Microsoft PowerPoint 2003.

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Transkript:

Ereignisorientierte Programmierung

2 Klassisches Vorgehen Idee der weitgehend automatisierten Problemlösung. Entwickler analysiert Erfordernisse, stellt einen idealen Algorithmus dafür auf. Programm arbeitet autonom; die Reihenfolge ist fest vorgegeben. Benutzer wird im Zweifelsfall gefragt: Entscheidungshilfe für das Programm Lieferung zusätzlicher Daten

3 Klassische Programmstruktur Programm Jedes Read erzeugt einen Zustand.

4 Ereignisorientierte Sicht Kernpunkt: benutzerzentrierter Ansatz. Benutzer übernimmt die Führung, plant die Reihenfolge der Schritte selbst. Benutzeraktionen sind für das Programm überraschende Ereignisse, auf die in passender Weise reagiert werden muss. sternförmiger Zustandsraum

5 Ereignisorientierte Programmstruktur zentrale Einlaufstelle Programm invertierte Programmhierarchie

6 Arten von Ereignissen Maus-Klicks Position, Taste, Modifiers, gedrückt oder losgelassen? Tastendrücke Taste, Zeichen, Modifiers, Wiederholfunktion, Fensterverwaltung Fenster verdeckt, aktiviert, neu zu zeichnen, System-Ereignisse noevent (= Nix los ) für Hintergrundverarbeitung in Eingabepausen

7 Phasen der Ereignisverarbeitung Lesen Rohdaten Ereignisart und -parameter Zuordnen Parameter, Operanden Ziel des Ereignisses (Focus), Delegation an Behandlungsroutine Interpretieren Bedeutung Semantik: Bestimmung der auszuführenden Aktion Ausführen Aktion Rückkopplung Reaktion! Jedes Ereignis soll zu einem sichtbaren Ergebnis führen.

8 Hauptprogramm Initialisierung Hauptschleife (main event loop) Terminierung Initialize(); exit = false; while (! exit) { event = GetEvent(); if (event.kind!= noevent) HandleEvent(event); else BackgroundTasks(); } CleanUp();

9 Interpretation von Ereignissen konventionell: 1. Unterscheidung nach Ereignisart (event.kind) HandleClick(event), HandleKey(event), 2. Unterscheidung nach Kontext (betroffene Objekte, Selektion, etc.) objektorientiert: 1. Bestimmung des betroffenen Objekts CurrentFocus().HandleEvent(event) 2. Unterscheidung nach Ereignisart 3. Delegation an das nächste Objekt, wenn keine Bedeutung für das aktuelle Objekt definiert ist.

10 Focus und Objektschachtelung Applikation Fenster Text Selektion

11 Behandlung von Ereignissen Üblicherweise atomare Aktionen, die nicht von Benutzereingaben unterbrochen werden. Ausnahme: Klick mit Ziehen der Maus, z.b.: Selektion Drag & Drop Schieberegler Lesen von Benutzereingaben außerhalb der Main Event Loop => Zustand! prevpos = event.position; while (ButtonPressed()) { pos = GetMousePosition(); if (pos prevpos) { InvertText( ); prevpos = pos; } }

12 Zustände durch globale Variablen Interpretation von Ereignissen hängt von der Vorgeschichte ab ( Zustände!) Selektion Programm Copy

13 Aktionen mit Parametern führen zwangsläufig zu Zuständen 2 prinzipielle Möglichkeiten: Präfix-Reihenfolge Aktion Parameterangabe Postfix-Reihenfolge Parameterangabe Aktion

14 Präfix-Notation Verb-Noun-Approach Ursprung: Befehlssprachen cp *.txt docs f/temp/ Frage nach Parametern (lineare Zustandsräume) find string: test forward (y/n): y

15 Postfix-Notation Noun-Verb-Approach Parameterangabe durch Selektion Aktivierung des Befehls Befehl bezieht sich implizit auf die ausgewählten Parameter Folgen: Komplexe Aktionen werden in einfache Teilaktionen zerlegt. Teilaktionen (Selektion, Button, Drag&Drop) können auf viele Arten kombiniert werden. Benutzer können ihre Meinung ändern. Zustände nur durch Vorgeschichte (Existenz der Selektion)

16 ein Befehl, ein Operand Gleicher Aufwand bei Präfix- und Postfix-Notation (In beiden Fällen müssen der Operand und der Befehl spezifiziert werden). Postfix-Notation vermeidet nur einen sperrenden Zustand.

17 ein Befehl, mehrere Operanden Präfix: B O 1 B O 2 B O 3 B O 4 B O 1 O 2 O 3 O 4 E lästig, wenn nur ein Operand: B O 1 E Postfix: O 1 O 2 O 3 O 4 B (Endebefehl) erfordert Mechanismus zur Mehrfachselektion Selektion kann vor Befehlsausführung kontrolliert und korrigiert werden (höhere Bediensicherheit)

18 mehrere Befehle, ein Operand Kettenbefehle, z.b. Schrift, Größe, Farbe, Stil, Präfix: B 1 O B 2 O B 3 O B 4 O Postfix: O B 1 B 2 B 3 B 4 Selektion muss nach der Befehlsausführung erhalten bleiben

19 Mischformen Infix-Notation: Parameter Befehl Parameter Bei asymmetrischen Befehlen (Parameter sind nicht gleichwertig) Bei vielen Zusatzparametern, die nicht selektiert werden können (Such-, Druckdialog, ) Wiederholungsbefehle: Befehl 1 Parameter Befehl 2 Befehl 2 Befehl 2 Befehl 2 benutzt die zuvor angegebenen Parameter Befehl 1 : Präfix oder Infix Befehl 2 : Postfix

20 Empfehlungen Präfix-Notation möglichst vermeiden Sichtbare Parameter selektierbar machen Einfacher Mechanismus für Mehrfachselektion Elemente in Mehrfachselektion sind gleichberechtigt (Reihenfolge der Selektion darf keine Rolle spielen) Bei Parameterdialogen zuletzt eingegebene Parameter speichern; bei nächster Aktivierung wieder anbieten Kurzformen anbieten (z.b. Print One, Find Next ) Unmögliche Befehle verbieten (ausblenden)