Aspekte objektorientierter Programmierung. mit Delphi

Größe: px
Ab Seite anzeigen:

Download "Aspekte objektorientierter Programmierung. mit Delphi"

Transkript

1 IFB-Veranstaltungen : / A und weitere Von Pascal nach Delphi Aspekte objektorientierter Programmierung mit Delphi Ulrich Mayr, Trier

2 Inhaltsverzeichnis OOP-Konzepte von Delphi verstehen und anwenden 1. Projekte mit vielen Komponenten gleichen Typs / Projekt Nim-Spiel ( Version 1 ) Mehrere Komponenten in einem Feld zusammenfassen Prozeduren zur Ereignisbehandlung variabel formulieren Ereignisse einer Komponente verstehen Ergänzende Betrachtungen Übungsphase : Projekt Lottozahlen1 2. Projekte mit vielen Komponenten gleichen Typs / Projekt Nimspiel (Version 2 ) Erzeugen von Komponenten zur Laufzeit Verwenden von Konstruktoren Ergänzende Betrachtungen Übungsphase : Projekt Lottozahlen2 3. Einige Delphi Grundbegriffe Klassen, Instanzen, Vererbung, VCL Instanzen sind Zeigervariable Zuweisungskompatibilität von Instanzen Eigenschaften (Properties) Ereignisse 4. Entwicklung neuer Komponenten für die VCL Die Komponente TLabel1 ( Definition / Registrierung) Die Sichtbarkeitsstufen private, protected, public, published Verwendung von TLabel1 5. Anhang : Botschaften U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 2

3 1. Das Projekt Nim-Spiel (Version 1) Wir wollen eine einfache Version eines Nim-Spiels realisieren. Der Nutzer spielt gegen den Computer. Spielregeln : Es werden zufällig 10 bis 14 Hölzchen bereitgestellt. Abwechselnd zieht der Nutzer und der Computer ein oder zwei Hölzchen. Wer das letzte Hölzchen nehmen muss hat verloren. Übung : Laden Sie das Programm Nimm1.exe und spielen Sie einige Runden um mit dem Ablauf vertraut zu werden. Mit Hilfe der visuellen Programmierung lässt sich schnell ein Formular erstellen auf dem 14 schmale Rechtecke als Hölzchen und drei Knöpfe zu finden sind. unit Nim; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ExtCtrls; const N = 14; type TForm1 = class(tform) Label_Anzahl: TLabel; Label_Status: TLabel; Shape1 : TShape;... Shape14: TShape; Button_Nehmen : TButton; Button_Neu : TButton; Button_Rechnerzug : TButton; public var Form1: TForm1; U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 3

4 Das Projekt soll nun schrittweise ergänzt werden, sodass folgender Aufbau entsteht : unit Nim; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ExtCtrls; const N = 14; type TForm1 = class(tform) Label_Anzahl: TLabel; Label_Status: TLabel; Shape1 : TShape;... Shape14: TShape; Button_Nehmen : TButton; Button_Neu : TButton; Button_Rechnerzug : TButton; var procedure FormCreate(Sender: TObject); procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Button_NehmenClick(Sender: TObject); procedure Button_NeuClick(Sender: TObject); procedure Button_RechnerzugClick(Sender: TObject); public Holz : array[1..n] of TShape; function Anzahl(Farbe:TColor):integer; { Anzahl der sichtbaren Hölzer mit bestimmter Farbe } Form1: TForm1; Für die Verwaltung der 14 Rechtecke wäre es komfortabel, diese in einem Feld zu haben etwa Holz : array[1..n] of TShape. Das lässt sich auf folgendem Weg erreichen. Man deklariert im Formular ein solches Feld. Damit ist aber noch nicht festgelegt, dass mit dem Feld Holz die Formen U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 4

5 Shape1 bis Shape14 gemeint sind. Deshalb müssen entsprechende Zuweisungen formuliert werden. Dies erfolgt am besten beim Erzeugen des Formulars also in der Methode Formcreate. procedure TForm1.FormCreate(Sender: TObject); var s : string; i : integer; { Es geht auch weniger elegant } for i:= 1 to N do s:= 'Shape'+IntToStr(i); Holz[i] := TShape(findcomponent(s)); Dabei wird für Shape1 bis Shape14 zuerst der Name des Shapes in s gespeichert. Danach sucht die Funktion findcomponent die Komponente mit dem Namen s und diese wird der Variablen Holz[1].. Holz[14] zugeordnet. Der Funktionswert hat allerdings den Typ TObject. Deshalb muss noch eine Typumwandlung in den Typ TShape stattfinden. Holz[i] := TShape(findcomponent(s)); Interpretation : Suche die Komponente mit dem Namen s. Diese ist vom Typ TShape. Weise sie der Variablen Holz[i] zu. Mit dieser Maßnahme lassen sich die Hölzchen leicht verwalten. Zum Beispiel kann eine Funktion Anzahl formuliert werden, die zählt wieviele Hölzer einer vorgegebenen Farbe sichtbar sind. function TForm1.Anzahl(Farbe:TColor):integer; var i : integer; result:= 0; for i:= 1 to N do with Holz[i] do if visible and brush.color=farbe then result:= result + 1; U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 5

6 Das Verhalten der Hölzchen beim Anklicken muss noch festgelegt werden. Lästig wäre es für jedes der 14 Hölzchen eine eigene Ereignisbehandlungsprozedur für das Ereignis OnMouseDown zuzuweisen wie etwa für Shape1 im folgenden Beispiel. procedure TForm1.Shape1MouseDown(Sender: TObject; --- ); if Button_Nehmen.enabled then if Shape1.brush.color = clred then Shape1.brush.color:= clwhite else if Anzahl(clred)< 2 then Shape1.brush.color:= clred; Label_Anzahl.caption := IntToStr(Anzahl(clwhite)); Eine Vereinfachung lässt sich erreichen, indem man diese Prozedur so allgemein schreibt, dass sie für alle Hölzchen gültig ist und dann diese Prozedur jedem Hölzchen für die Behandlung des Mouse-Down-Ereignis im Objektinspektor zuweist. procedure TForm1.Shape1MouseDown(Sender: TObject; --- ); var Shape : TShape; if Button_Nehmen.enabled then Shape:= TShape(Sender); if Shape.brush.color = clred then Shape.brush.color:= clwhite else if Anzahl(clred)< 2 then Shape.brush.color:= clred; Label_Anzahl.caption := IntToStr(Anzahl(clwhite)); U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 6

7 Mit dem Parameter Sender vom Typ TObject bekommt die Prozedur die Komponente genannt, auf die geklickt wurde, also das angeklickte Hölzchen. Wenn wir dieses nun rot oder weiß färben wollen, können wir nicht einfach auf Sender.brush.color zugreifen, da Sender als eine Instanz vom Typ TObject diese Eigenschaft nicht besitzt. Wir müssen dem System erst mitteilen, dass Sender sogar den Nachfolgertyp TShape hat, bevor wir solche Eigenschaften ansprechen, die nicht in TObject zu finden sind. Statt Sender wird TShape(Sender) benutzt, was soviel bedeutet wie die Instanz Sender, die eigentlich vom Nachfolgertyp TShape ist. Man spricht von Typumwandlung. An dieser Stelle kann auf die Zuweisungskompatiblität von Instanzen verschiedener Typen eingegangen werden, die von TObject abgeleitet sind. Übung : Projekt Lottozahlen1 Es soll eine Lottoziehung simuliert werden. Laden Sie die Anwendung Lotto1.exe und machen Sie sich mit dem Vorgehen vertraut. Entwickeln Sie diese Anwendung. Sie können das halbfertige Projekt Lotto1.dpr vervollständigen oder das Projekt von Anfang an erzeugen. Die Felder zum Ankreuzen haben den Typ TCheckBox. Beim Anklicken erhalten sie ein Häkchen, das beim erneuten Anklicken wieder verschwindet. In der Eigenschaft checked ( boolean) wird festgehalten ob das Feld ausgewählt ist. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 7

8 2. Das Projekt Nim-Spiel (Version 2) Erzeugung von Komponenten zur Laufzeit In der ersten Version des Nimspiels haben wir gesehen, wie man 14 Komponenten Shape1 bis Shape14 in ein Feld Holz[1] bis Holz[14] bringt und eine einzige Ereignisbehandlungsprozedur für alle 14 Komponenten formulieren kann. Ein Schönheitsfehler dabei ist das doppelte Auftreten von Variablen für die 14 Komponenten. Wir werden die 14 Hölzchen in einer 2. Version nicht durch Entwurf mit Hilfe des Objektinspektors erzeugen, sondern zur Laufzeit beim Start des Programms. In der Deklaration von TForm1 entfallen dann die Variablen Shape1 bis Shape14. Wenn wir das Feld Holz im Typ TForm1 deklarieren mit : ' Holz : array[1..14] of TShape ' sind damit nur 14 Zeigervariable festgelegt die den Wert nil haben. Bevor man auf das Feld Holz zugreifen kann, müssen die Instanzen erzeugt und die nötigen Eigenschaften wie Größe und Position gesetzt werden. Beim Visuellen Programmieren wird die Erzeugung der Instanzen automatisch durchgeführt, die Einstellung der Eigenschaften beim Entwurf über den Objektinspektor. Die Vereinbarungen für TForm1 haben dann folgende Gestalt : type TForm1 = class(tform) Label_Anzahl: TLabel; Label_Status: TLabel; Shape1 :TShape; { kann nach Erstellen der Prozedur Shape1MouseDown gelöscht werden } Button_Nehmen: TButton; Button_Neu: TButton; U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 8

9 Button_Rechnerzug: TButton; procedure FormCreate(Sender: TObject); procedure Button_NehmenClick(Sender: TObject); procedure Button_NeuClick(Sender: TObject); procedure Button_RechnerzugClick(Sender:TObject); procedure Shape1MouseDown(Sender: TObject; --- ); public Holz : array[1..n] of TShape; function Anzahl(Farbe:TColor):integer; Die Prozedur Shape1MouseDown bleibt erhalten. Bei ihrer Erstellung müssten wir eigentlich ohne die Hilfe des Objektinspektors auskommen und die richtige Parameterliste für die Behandlung des Ereignisses OnMouseDown von Hand eintragen. Mit einem Trick kann der Inspektor uns doch behilflich sein. Wir ziehen eine Figur Shape1 auf das Formular und schreiben für sie die Ereignisbehandlungsprozedur Shape1MouseDown wie bei Version 1. Anschließend löschen wir Shape1 wieder. Die Prozedur Shape1MouseDown bleibt aber erhalten. Diese Prozedur wird nun allen Hölzchen Holz[1] bis Holz[14] als Behandlungsroutine für das Ereignis OnMouseDown zugewiesen. Zuerst müssen die Instanzen Holz[1] bis Holz[14] erzeugt werden. Das geschieht am besten wenn das Formular erschaffen wird in der Prozedur FormCreate. procedure TForm1.FormCreate(Sender: TObject); var i : integer; for i:= 1 to N do Holz[i] := TShape.create(self); with Holz[i] do Parent := self; Top := 104+(i-1)*25; Height := 15; Left := 30; Width := 120; U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 9

10 OnMouseDown:= Shape1MouseDown; randomize; Jede Figur Holz[i] wird zuerst mit dem Aufruf des Konstruktors Create der Klasse TShape erzeugt. Der Parameter self gibt hier an, dass das Formular Besitzer der Figur Holz[i] ist. In dieser Anweisung steckt das Reservieren von Speicherplatz ( Prozeduraufruf new ) und das anschließende Initialisieren einiger Eigenschaften. Nach dem Erzeugen müssen die Eigenschaften von Holz[i] angepasst werden. Das sind vor allem Position im Formular und Ausdehnung. Dann wird dem Ereignis OnMouseDown die bereits erstellte Prozedur Shape1MouseDown zugeordnet. Somit bekommen alle Hölzer das gewünschte Verhalten. Shape1 Holz[1] Holz[14] OnMouseDown OnMouseDown OnMouseDown procedure TForm1.Shape1MouseDown (Sender: TObject; - ); var Shape : TShape; if Button_Nehmen.enabled then Shape:= TShape(Sender); if Shape.brush.color = clred then Shape.brush.color:= clwhite else if Anzahl(clred)< 2 then Shape.brush.color:= clred; Label_Anzahl.caption := IntToStr(Anzahl(clwhite)); U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 10

11 Anmerkungen : 1) Wird eine Komponente innerhalb des Entwurfsmodus gelöscht, so verbleiben Methoden, die für die Ereignisbehandlung dieser Komponenten geschrieben wurden, im Quelltext. Begründung : Die Methoden können auch von anderen Komponenten benutzt werden. Soll die Methode gelöscht werden, so löscht man den Anweisungsteil und den Deklarationsteil der Methode. Bei der nächsten Übersetzung erkennt das System, dass die Methode überflüssig ist und löscht sie und alle Zeuger, die von Komponenten auf die Methode zeigen. 2) Die Verbindung von einer Komponente zu einer Ereignisbehandlungsprozedur ist nur lose über einen Zeiger geregelt. Wir hätten statt für Shape1 auch eine Methode TForm1.Form1MouseDown(sender:TOject; --- ) für das Formular schreiben können mit demselben Inhalt wie TForm1.Shape1MouseDown und diese Methode allen Shapes Holz[1] bis Holz[14] als Ereignis OnMouseDown zuweisen. Allerdings hätten wir dann Form1.OnMouseDown löschen müssen. Da diese Methode nicht für das Klicken auf das Formular geeignet ist. 3) Bei einer Zuweisung wie Holz[i].OnMOuseDown := Shape1MouseDown; muss die rechte Seite eine Methode einer Klasse sein deren Parameterliste festgelegt ist. Bei OnMouseDown ist eine Parameterliste (Sender: TObject; --- ) erforderlich. Eine Prozedur mit dieser Parameterliste, die nicht zu einer Klassendefinition gehört ist ungeeignet. Begründung : Methoden sind verschieden von gewöhnlichen Prozeduren. Zwar ist die Deklaration einer Methode und die einer gewöhnlichen Prozedur gleich. Sie unterscheiden sich aber beim Aufruf. Beim Aufruf einer Methode z.b. Memo1.clear wird als Parameter die Variable Memo1 mit übergeben. Übung : Projekt Lottozahlen2 Ändern Sie die Anwendung Lottozahlen1 so ab, dass die Ankreuzfelder dynamisch zur Laufzeit erzeugt werden. Speichern Sie die Projekt- und die Unit des Formulars in einem neuen Ordner. So verlieren Sie nicht Version1. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 11

12 3. Erläuterung einiger Konzepte von Delphi ( Object Pascal) Klassen, Objekte (Instanzen), Vererbung, VCL Delphi stellt eine Fülle von Komponenten zur Gestaltung der grafischen Benutzeroberfläche von Anwendungen bereit. Die zugehörigen Datentypen ( Klassen ) sind in der Visual Component Library festgelegt. Die VCL ist streng objektorientiert aufgebaut. Variable solcher Datentypen werden Objekte oder Klasseninstanzen genannt. Instanzen einer Klasse enthalten Attribute ( wie Records ) und Methoden zur Bearbeitung der Attribute. Beispiel : VAR Shape1 : TShape; { Shape1 ist eine Instanz der Klasse TShape } Die Definition der Klasse TShape im Quellcode ( unit ExtCtrls ) : TShapeType = (strectangle, stsquare, stroundrect, stroundsquare, stellipse, stcircle); TShape = class(tgraphiccontrol) private FPen : TPen; Vorgänger von TShape FBrush : TBrush; FShape : TShapeType; procedure SetBrush(Value: TBrush); procedure SetPen(Value: TPen); procedure SetShape(Value: TShapeType); protected procedure Paint; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published procedure StyleChanged(Sender: TObject); property Align; property Anchors; property Brush: TBrush read FBrush write SetBrush; property DragCursor; property DragKind; property DragMode; property Enabled; property Constraints; property ParentShowHint; property Pen: TPen read FPen write SetPen; Erweiterungen, die zu der Funktionalität von TGraphicControl hinzukommen property Shape: TShapeType read FShape write SetShape default strectangle; property ShowHint; property Visible; property OnContextPopup; property OnStartDrag; U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 12

13 Vererbung Die Klasse TShape ist abgeleitet von der Klasse TGraphicControl. Eine Instanz von TShape erbt die gesamte Funktionalität, die zur Klasse TGraphicControl gehört. Darüber hinaus kommt weitere Funktionalität ( Methoden, Eigenschaften,...) hinzu. Wird eine Methode (beispielsweise paint), die bereits existiert hat, nochmals definiert (Überschrieben), so gilt für eine Instanz der Nachfolgerklasse nur die neue Definition. Durch Vererbung entstehen Klassen, die immer komplexer werden. Der Urahn aller Klassen ist TObject. Die Funktionalität von TObject ist daher in allen anderen Klassen enthalten. TShape Der Programmentwickler kann die VCL durch Ableiten neuer Klassen erweitern. So gibt es für die verschiedensten Zwecke maßgerecht veränderte Komponenten. Wir behandeln später ein solches Beispiel, indem wir die Klasse TLabel zu TLabel1 erweitern, Darüberhinaus kann der algorithmische Kern einer Anwendung mit Hilfe der VCL objektorientiert gestaltet werden ( objektorientierte Modellierung ). Man formuliert die eigenen Variablen als Instanzen von Klassen, die man von TObject direkt ableitet. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 13

14 Instanzen sind Zeigervariable Holz[1] Shape1 Shape : visible : Height : StRectangle true Anmerkungen : 1. Bei Zuweisungen wie Holz[1] := Shape1 wird lediglich der Zeiger aus Shape1 in die Zeigervariable Holz[i] gebracht. Eine Duplizierung aller Daten der Instanz Shape1 findet nicht statt. Eine Veränderung in den Eigenschaften von Holz[i] gilt auch für Shape1. 2. Die Schreibweise beim Zugriff auf Eigenschaften einer Instanz ist gegenüber dem klassischen Pascal geändert. Die Derefenzierung entfällt. Shape1.visible := true statt Shape1^.visible:= true 3. Instanzen müssen erzeugt werden bevor man auf eine Eigenschaft zugreifen kann. Beim visuellen Entwerfen eines Formulars geschieht das automatisch. Instanzen, die nicht über den Objektinspektor, sondern allein über den Quellcode in der Anwendung auftreten, müssen erzeugt werden. Dazu dienen besondere Methoden, die Konstruktoren. Der Konstruktor Create ist bereits in TObject enthalten und wird in den Nachfolgerklassen überschrieben. Daher wechseln die Parameterlisten je nach Klasse. Holz[I] := TShape.Create(Form1); U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 14

15 Zuweisungskompatibilität bei Instanzen A := B ist erlaubt, wenn die Klasse von B ein Nachfolger der Klasse von A ist. Beispiel : var Objekt : TObject; Komponente : TComponent; Shape : TShape; Erlaubt ist Objekt := Komponente; Objekt := Shape; Komponente:= Shape; Nicht erlaubt ist z.b. TShape Shape := Komponente; Komponente:= Objekt; Anmerkungen : 1) Diese Regelung ist möglich, weil jeder Quellcode, der für eine Instanz der Vorgängerklasse geschrieben wurde auch für eine Instanz der Nachfolgerklasse sinnvoll ist, da die gesammte Funktionalität vererbt wird. 2) Da TObject keinen Vorgänger hat und alle Klassen von TObject abstammen, kann einer Instanz A der Klasse TObject jede Instanz B einer beliebigen Klasse zugeordnet werden. Bei der Zuweisung bleiben alle Eigenschaften des erweiterten Typs erhalten. Angesprochen können diese verborgenen Eigenschaften dadurch, dass man eine Typumwandlung durchführt. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 15

16 Typumwandlung Hinter einer Instanz kann sich durch Wertzuweisung auch eine Instanz einer Nachfolgerklasse verbergen (s. o.). In Ereignisbehandlungsprozeduren können sogar Instanzen von unterschiedlichem Typ als Sender auftreten. Dann kann in der Prozedur der Typ von Sender abgefragt und je nach Typ unterschiedlich reagiert werden. Z.B. : if sender is TShape then TShape(Sender).brush.color:= clred ; Der Typ der Instanz Sender wird abgefragt. Ist Sender eine Instanz der Klasse TShape, so kann auf die Farbe zugegriffen werden. TShape(sender) bedeutet anschaulich übersetzt : Die Instanz Sender, hinter der sich sogar eine Instanz des Nachfolgertyps TShape verbirgt. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 16

17 Eigenschaften ( Properties ) Eigenschaften sind besondere Attribute einer Klasse - auf die durch einen speziellen Schreib-, Lesemechanismus zugegriffen werden kann - denen man im Objektinspektor Werte zuweisen kann ( bei registrierten Komponenten ) Beispiel : var Shape1 : TShape; Die Zuweisung Shape1.Shape := StCircle; bewirkt, dass das Attribut Shape von Shape1 auf StCircle gesetzt wird. Zusätzlich wird die Figur Shape1 am Bildschirm als Kreis gezeichnet. Das Projekt Eigenschaft.dpr verdeutlicht dies. procedure TForm1.Button1Click(Sender: TObject); if Shape1.Shape=StCircle then Shape1.Shape:=STRectangle else Shape1.Shape:= succ(shape1.shape); U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 17

18 Die Definition der Klasse TShape im Quellcode ( unit ExtCtrls ) : TShapeType = (strectangle, stsquare, stroundrect, stroundsquare, stellipse, stcircle); TShape = class(tgraphiccontrol) private FPen : TPen; FBrush : TBrush; FShape : TShapeType; procedure SetBrush(Value: TBrush); procedure SetPen(Value: TPen); procedure SetShape(Value: TShapeType); protected procedure Paint; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published procedure StyleChanged(Sender: TObject); property Align; property Anchors; property Brush: TBrush read FBrush write SetBrush; property Pen: TPen read FPen write SetPen; property Shape: TShapeType read FShape write SetShape default strectangle; property ShowHint; property Visible; property OnContextPopup; property OnStartDrag; In der Zeile FShape : TShapeType; { TShapeType = (strectangle, ---, stellipse, stcircle); } ist das Attribut FShape deklariert, in dem die Form der Figur festgehalten wird. FShape ist im Private-Abschnitt vereinbart. Das bedeutet, dass FShape bei der Verwendung der Unit ExtCtrls nicht direkt angesprochen werden kann. In der Zeile property Shape: TShapeType read FShape write SetShape default strectangle; wird nun vereinbart, wie der Nutzer auf die Form der Figur, die Eigenschaft Shape zugreifen kann. Beim lesenden Zugriff auf Shape soll der Inhalt des Attributs FShape genommen werden. Beim schreibenden Zugriff auf Shape soll die Methode SetShape benutzt werden. Als Anfangswert (default) für FShape soll strectangle genommen werden. Die Methode SetShape ist im Implementationsteil der Unit ExtCtrls folgendermaßen deklariert. : U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 18

19 procedure TShape.SetShape(Value: TShapeType); if FShape <> Value then FShape ändern FShape := Value; Invalidate; Veranlasst, dass die Figur neu gezeichnet wird Sichtbarkeitsattribute bei der Vereinbarung von Klassen Bei der Definition eines Klassentyps in einer unit1 können die Attribute und Methoden der Klasse in 4 Sichtbarkeitsstufen eingeteilt werden. Diese Sichtbarkeitsattribute haben erst dann eine Bedeutung, wenn man den Klassentyp in eine andere Unit ( z.b.unit2 ) importiert und dort verwenden will. private - die hier vereinbarten Attribute und Methoden dürfen in unit2 nicht verwendet werden. Sie sind in unit2 unbekannt. protected - die hier vereinbarten Attribute und Methoden dürfen in unit2 nur beim Ableiten einer Nachfolgerklasse verwendet werden. ( Der Entwickler neuer Komponenten kann sie verwenden, der Anwender von unit1 nicht ) public - die hier vereinbarten Attribute und Methoden dürfen in Unit2 ohne Einschränkung verwendet werden. Dieselbe Verfügbarkeit erhält man, wenn keine Sichtbarkeitsstufe genannt ist. published - Wird bei der Definition neuer Komponenten verwendet, die in die Komponentenpalette aufgenommen werden sollen. Die Bedeutung ist wie bei public. Aber zusätzlich werden die hier genannten Eigenschaften, falls sie nicht zu komplex sind, im Objektinspektor angezeigt. Sie können auch im Objektinspektor zur Entwurfszeit gesetzt werden. Bemerkungen : Bei allen Projekten, in denen nicht daran gedacht ist, die Unit1 des Hauptformulars in einer anderen Unit zu verwenden, spielen die Sichtbarkeitsstufen bei den Klassendefinitionen in Unit1 keine Rolle. Man kann sie unter private oder public eintragen. Wichtig werden die Sicherheitsattribute wenn man neue Komponenten entwickeln will bzw. objektorintiertes Modellieren bei der Erstellung eigener Anwendungen verwenden will. Eigenschaften der Stufe protected sind für den Anwender nicht sichtbar. Der Entwickler kann diese aber in einem Nachfolger als public bereitstellen. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 19

20 Ereignisse ( Events ) Beispiel : Ereignisse sind besondere Eigenschaften einer Klasse Es handelt sich dabei um Zeiger auf Ereignisbehandlungsmethoden. In TControl ist das Ereignis OnMouseDown als protected deklariert und kann in allen Nachfolgern veröffentlicht werden ( published ). Ein Auszug aus dem Delphi-Quelltext : type TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,Y: Integer) of object; TControl = class(tcomponent)... private FOnMouseDown : TMouseEvent;... protected property OnMouseDown : TMouseEvent read FOnMouseDown write FOnMouseDown;... In den Nachfolgern von TControl ist OnMouseDown veröffentlicht, d.h. in die Stufe published übernommen worden. Die Eigenschaft kann daher im Objektinspektor gesetzt werden. Das bedeutet, dass in FOnMouseDown ein Zeiger (Adresse) auf eine Methode gespeichert wird, deren Parameterliste im Typ TMouseEvent festgelegt ist : (Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer) Der Hinweis 'of object' besagt, dass die zugewiesene Prozedur Methode eines Objekts sein muss. Die Zuweisung einer isolierten Prozedur mit derselben Parameterliste ist nicht erlaubt, da sich Aufrufe von Klassenmethoden und Prozeduren unterscheiden. Beim Aufruf einer Methode wird zusätzlich zu den Parametern der Zeiger self auf die aktuelle Klasseninstanz mit übergeben. Die Zuweisung für ein veröffentlichtes Ereignis wie z.b. OnMouseDown ist bequem über den Objektinspektor zu bewerkstelligen. Wählt man das Ereignis OnMouseDown an, so erstellt der Editor bereits eine Lehrprozedur (in TForm1) mit der passenden Parameterliste und speichert einen Zeiger auf diese Methode in FOnMouseDown ab. Der Anwender muss nur noch den passenden Qellcode eintragen. Sind bereits Methoden vom Typ TMouseEvent vorhanden, so bietet der Objektinspektor, diese zur Auswahl für FOnMouseDown an. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 20

21 Drückt der Nutzer des Programms die linke Maustaste wenn der Cursor auf der Komponente steht, für die das OnMouseDown festgelegt wurde, so wird schließlich die Methode ausgeführt, auf die FOnMouseDown zeigt. Will man das Verhalten beim Ereignis OnMouseDown zur Laufzeit ändern, so kann man OnMouseDown eine andere Methode vom Typ TMouseEvent zuordnen. Diese Methode muss natürlich bereits (auf Vorrat) vereinbart und implementiert sein. Ebenso muss beim Erzeugen einer Komponente zur Laufzeit vorgegangen werden. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 21

22 4. Entwicklung neuer Komponenten für die VCL Beispiel : Eine Überschrift (TLabel) soll so mit einem Speicherplatz Zahl kombiniert werden, dass bei Änderung der Zahl, diese auch sofort angezeigt wird. Die neue Komponente TLabel1 wird durch Ableitung aus TLabel gewonnen. Delphi bietet im Menue: Datei -> neu -> Komponente das Gerüst einer Unit in der die Eigenschaften der neuen Komponente festgelegt werden. unit Label1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TLabel1 = class(tlabel) private FZahl : integer; procedure setzahl(x:integer); published Property Zahl:integer read FZahl write setzahl; procedure Register; implementation procedure TLabel1.setZahl(x:integer); FZahl := x; Caption := IntToStr(x); procedure Register; TLabel1 wird in die Palette 'Beispiele' als Komponente aufgenommen RegisterComponents('Beispiele', [TLabel1]); end. TLabel1 besitzt die Eigenschaft Zahl mit FZahl als Speicherplatz und der Methode setzahl zum Ändern der Eigenschaft. Durch das Registrieren wird TLabel1 in die Komponentenpalette übernommen und kann in Anwendungen benutzt werden. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 22

23 Verwendung der Komponente TLabel1 in einem Programm Beim Drücken von - Button_Vor wird die Zahl von Label_Zahl im 1 erhöht - Button_Null wird Zahl von Label_Zahl auf 0 gesetzt. unit Zaehlen; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Label1; type TForm1 = class(tform) Button_Vor : TButton; Button_Null : TButton; Label_Zahl : TLabel1; procedure Button_VorClick(Sender: TObject); procedure Button_NullClick(Sender: TObject); var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button_VorClick(Sender: TObject); with Label_Zahl do Label_Zahl.setZahl ( FZahl + 1); zahl:= zahl+1; if Zahl > 20 then Zahl:=0; procedure TForm1.Button_NullClick(Sender: TObject); Label_Zahl.zahl:=0; end. Label_Zahl.setZahl (0); Anmerkung : In Button_VorClick und Button_NullClick dürfen Label_Zahl.FZahl und Label_Zahl.setZahl selbst nicht benutzt werden. Da sie in der Vereinbarung für TLabel1 ( unit Label1 ) im private-abschnitt deklariert wurden. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 23

24 5. Anhang : Botschaften ( Messages ) Der Begriff Ereignis im vorherigen Kapitel wird in mehrfacher Bedeutung gebraucht. Einmal ist damit eine besondere Eigenschaft gemeint, die einen Zeiger auf eine Methode beinhaltet. Außerdem wird als Ereignis ein Vorfall (z.b. Eingaben des Benutzers durch Tastatur, Maus) bezeichnet, den das Betriebssystem Windows wahrnimmt und daraufhin die betreffende Anwendung informiert, damit diese adäquat reagieren kann. Zur Information erhält die betreffende Anwendung ( Instanz Application vom Typ TApplication ) eine Botschaft (Message) in ihre Botschaftsschlange (Messagequeue) gelegt. Die Botschaft ist ein Datensatz, in dem alle nötigen Informationen über das Ereignis im Sinne von Geschehnis zusammengefasst sind. Der Instanz Application obliegt es nun, an erster Stelle für die Entnahme der eingetroffenen Botschaft und ihre Beantwortung, durch Auslösen einer entsprechenden Maßnahme (Botschaftsbehandlungsmethode) zu sorgen. Der Mechanismus zur Reaktion auf Ereignisse ist kompliziert. Zum einen sind dabei viele Instanzen beteiligt von Windows über Application, bis hin zu den einzelnen Komponenten. Außerdem nimmt Delphi dem Anwender wie auch dem Programmierer die Arbeit weitgehend ab, indem es die Mechanismen in den Instanzen Application und den Komponenten verbirgt. Wenn aber in einigen Fällen ein Eingreifen in den Botschaftsverteilungs- und -beantwortungsmechanismus nötig ist, fällt eine zutreffende Diagnose und die Behebung von Fehlern um so schwerer. Im Folgenden soll der Weg der Botschaftsbehandlung skizziert werden. 1. Wir betrachten zuerst wie die Instanz Application in einer Schleife (Messageloop) die Botschaften bearbeitet. Application.Run; { Aufruf der Messageloop in der Projektdatei } Die folgenden Fragmente aus dem Quellcode des Delphisystems folgen dem Weg den Vearbeitung der Botschaften. U. Mayr : Aspekte objektorientierter Programmierung mit Delphi S. 24

Programmierung in Delphi

Programmierung in Delphi Berufsbildende Schule Wirtschaft Trier Programmierung in Delphi (Einführung in die IDE) Unterrichtsmaterialien von Christoph Oberweis Stand: 13.11.2011 1 Einführung in die Delphi-Programmierung Delphi-Entwicklungssystem

Mehr

Delphi eine Einführung

Delphi eine Einführung Delphi eine Einführung 1. Die Entwicklungsumgebung Delphi ist ein sogenanntes RAD Werkzeug. RAD = Rapid Application Development = schnelle Anwendungsentwicklung Merkmale: - es gibt vorgefertigte Komponenten

Mehr

Komponente NumEdit für Delphi 5.0

Komponente NumEdit für Delphi 5.0 Komponente NumEdit für Delphi 5.0 NumEdit Handbuch Seite 1 von 9 INHALTSVERZEICHNIS Komponente NumEdit... 4 Private Funktion... 5 Protected Funktion... 5 Public Funktion... 6 Published Funktion... 6 Kompnenten

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Von Padmalcom (20.03.2009) www.jofre.de Nach dem Tutorial 1 von Leonardo M. Ramé 1 Ja, es geht wirklich! Im Internet sind tausende Forenbeinträge

Mehr

Programmierung mit Delphi

Programmierung mit Delphi Programmierung mit Delphi Programmierung Kommunikation Mensch Maschine Komponente Attribute Formular Größe, Farbe, Schaltflächen,... Label Beschriftung (Caption),... Edit... Button... Quellcode Anweisungen

Mehr

Delphi Grundkurs Seite 31

Delphi Grundkurs Seite 31 Delphi Grundkurs Seite 31 Beispiel 9 Notenanalyse Problem: Programm P09 Schulnoten in Editfeld eingeben: bei wird Text in Zahl x umgewandelt; Bei Eingabefehler (x < 1 oder x > 5 oder x nicht numerisch)

Mehr

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; unit sudoku; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TCvD_Sudoku = class(tform) Panel1: TPanel; Bevel1: TBevel; Bevel2:

Mehr

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache Institut für Informatik Christian-Albrechts-Universität zu Kiel Borland Delphi Einführung in die Programmiersprache Geschichte Objective Pascal objektorienterte Programmiersprache Rapid Development schweizer

Mehr

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung Informatik Kurs 12 André Hoffmann Delphi Einführung in die Windows- Programmierung Grundlagen Entwicklung von Windows-Programmen Relativ unkompliziert durch typische, vorgefertigte Elemente Programmiertechnische

Mehr

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER Inhaltsverzeichnis jetzt lerne ich Vorwort 15 1 Was ist Delphi? 17 1.1 Die Wurzeln von Delphi 17

Mehr

LWB VIII. Programmieren mit Delphi Zur Laufzeit verwaltete Objekte. Zur Laufzeit verwaltete Objekte. Am Beispiel des bekannten Memory-Spieles

LWB VIII. Programmieren mit Delphi Zur Laufzeit verwaltete Objekte. Zur Laufzeit verwaltete Objekte. Am Beispiel des bekannten Memory-Spieles Am Beispiel des bekannten Memory-Spieles Warum Spiele? fragen Sie. Ich antworte: um die Kunst der Erfindung zu vervollkommnen. (Leibniz) Mit seinen einfachen und unzweideutigen Regeln ist ein Spiel immer

Mehr

2 Programmentwicklung mit Delphi

2 Programmentwicklung mit Delphi 2.1 Arbeiten mit Delphi 26 2 Programmentwicklung mit Delphi Die Programmentwicklung mit Delphi wird in drei Schritten eingeführt: Zuerst wird die prinzipielle Arbeitsweise geschildert, danach wird das

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

6. Grafikprogrammierung

6. Grafikprogrammierung Delphi Grundkurs Seite 49 6. Grafikprogrammierung Die Grafikoperationen beziehen sich immer auf die Zeichenoberfläche (Leinwand, Canvas) eines bestimmten Objekts. (0,0) des Formulars Image - Komponentenpalette

Mehr

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag Thomas Binzinger Jetzt lerne ich Delphi Markt+Technik Verlag Inhaltsverzeichnis Vorwort 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 3 3.1 3.2 3.3 3.4 3.5 3.6 4 4.1 4.2 4.3 4.4 4.5 4.6 5 5.1 5.2 5.3 Was ist Delphi?

Mehr

Simulation von digitalen Schaltungen

Simulation von digitalen Schaltungen Eckart Modrow Simulation von digitalen Schaltungen S. 1 Simulation von digitalen Schaltungen Inhalt: 1. Bezug zum Unterricht 2. Funktionsumfang des Simulators HASI 3. Klassenhierarchien 4. Die Erzeugung

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor

Inhaltsverzeichnis. 4.1 Programme compilieren und starten 4.2 Arbeiten mit dem Editor 4.3 Der Objekt-Inspektor Inhaltsverzeichnis Vorwort 1 Was ist Delphi? 1.1 Die Wurzeln von Delphi 1.2 Der Konkurrent - Visual Basic 1.3 Die komponentenbasierte Entwicklung 1.4 Object-Pascal 2 Programmieren mit Delphi 2.1 Das ))visuelle((

Mehr

Komponente PortIO für Delphi 5.0

Komponente PortIO für Delphi 5.0 Komponente PortIO für Delphi 5.0 PortIO Handbuch Seite 1 von 12 INHALTSVERZEICHNIS Komponente PortIO... 4 Private Funktion... 5 Protected Funktion... 6 Public Funktion... 7 Published Funktion... 8 Kompnenten

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Container-Klassen in Delphi

Container-Klassen in Delphi Verwalten von Objekten mit Hilfe von Container-Klassen am Beispiel eines Memory Spieles Container-Klassen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1

Mehr

Ein Softwareprojekt mit Delphi

Ein Softwareprojekt mit Delphi IFB-Veranstaltung : OOP mit Delphi II U.Mayr : Turing-Simulator Ein Softwareprojekt mit Delphi Turing-Simulator, ein Softwareprojekt mit Delphi S. 2 Inhaltsverzeichnis 1. Ein Softwareprojekt : Die Simulation

Mehr

EINFACH. Programmier-Grundkurs. Rosa Mistelbauer

EINFACH. Programmier-Grundkurs. Rosa Mistelbauer EINFACH Programmier-Grundkurs Rosa Mistelbauer Inhaltsverzeichnis Delphi Grundkurs Grundlagen 01 Entwicklungsumgebung von DELPHI 02 Beispiel 01 Begrüßung 04 Beispiel 02 Halbieren einer ganzen Zahl 07 Beispiel

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Fachbericht DPR. Name: René Wagener. Klasse: CI3O1. Fachlehrer: Herr Balog

Fachbericht DPR. Name: René Wagener. Klasse: CI3O1. Fachlehrer: Herr Balog Fachbericht DPR Name: René Wagener Klasse: CI3O1 Fachlehrer: Herr Balog Inhalt Der Anfang... 3 Was ist Delphi?... 3 Das erste Programm... 3 Delphi VCL-Formularanwendung... 4 Variablen... 5 Beispiel für

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Access 2010. für Windows. Ricardo Hernández García 1. Ausgabe, 1. Aktualisierung, Dezember 2011. Automatisierung, Programmierung ACC2010P

Access 2010. für Windows. Ricardo Hernández García 1. Ausgabe, 1. Aktualisierung, Dezember 2011. Automatisierung, Programmierung ACC2010P Ricardo Hernández García 1. Ausgabe, 1. Aktualisierung, Dezember 2011 Access 2010 für Windows Automatisierung, Programmierung ACC2010P 4 Access 2010 für Windows - Automatisierung, Programmierung 4 Mit

Mehr

Komponente PortUSB für Delphi 5.0

Komponente PortUSB für Delphi 5.0 Komponente PortUSB für Delphi 5.0 Funktion nur mit der P8055-1 Karte von der Firma Velleman. PortUSB Handbuch Seite 1 von 1 INHALTSVERZEICHNIS Komponente PortUSB für Delphi 5.0... 1 Komponente PortUSB...

Mehr

Informatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto

Informatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto programmieren in Delphi am Beispiel der konkreten Klasse Auto Auto -Baujahr -Typ -Besitzer -Farbe -Kilometerstand -Fahren() -Bremsen() Objekt1: Auto Typ: Golf Baujahr: 1998 Besitzer: Peter Farbe: rot Kilometerstand:

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 13. Aufgabe (13 Punkte) Schreiben Sie eine neue Klasse Zahlenanalyse, mit der Integer-Objekte genauer betrachtet werden können. Bei den zu entwickelnden Methoden kann es immer sinnvoll sein, sich den Ablauf

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER

jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER jetzt lerne ich Der einfache Einstieg in Object Pascal Für alle Versionen bis einschließlich Delphi 2006 THOMAS BINZINGER KAPITEL 3 Grundsätzliches zu Object-Pascal jetzt lerne ich Für jede Programmiersprache

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern

Mehr

Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com)

Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com) Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl, www.joposol.com) Kapselung Was ist das? Auszug aus Wikipedia Kapselung ist auch ein wichtiges

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Schriftliche Reifeprüfung aus INFORMATIK: Klasse 8D Haupttermin 2002/03

Schriftliche Reifeprüfung aus INFORMATIK: Klasse 8D Haupttermin 2002/03 Schriftliche Reifeprüfung aus INFMATIK: Klasse 8D Haupttermin 2002/03 Name: 1. Programmieraufgabe: DELPHI a) Schreibe ein Delphi-Projekt CHARxxxx.DPR, das folgende Zeichenketten erzeugt: S 1 = A, S 2 =

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Überschrift/Caption. Eigenschaftenfenster

Überschrift/Caption. Eigenschaftenfenster UsserrForrm errssttel llen Dass Codeffensstterr 22000044 NNi iikkoo BBeecckkeerr Öffnen Sie EXCEL und wechseln Sie mit der Tastenkombination Alt + F11 in den Visual Basic-Editor. Alternativ können Sie

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Warten auf Ereignisse

Warten auf Ereignisse Abb. 1: Diese Botschaften wurden von dem Programm WINSIGHT aufgezeichnet. Warten auf Ereignisse Wenn wir in einem Windows-Programm eine Schaltfläche anklicken, wenn wir die Maus bewegen oder eine Taste

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Name: «Vorname» «Name» Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Informatik 12 2 VP je 2 VP 6 VP 0 Notieren Sie alle Antworten in einer Word-Datei Klausur1_«Name».doc

Mehr

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

1.) Client-Server-Kommunikation

1.) Client-Server-Kommunikation 1.)... 1 2.) Der Server (Server I)... 1 3.) Der Client... 3 4.) Erweiterung mehrere Clients an einem Server (Server II)... 5 5.) Erweiterung Clientübersicht und Nachricht vom Server an nur einen Client

Mehr

Frank Eller. Delphi 5. yy ADDISON-WESLEY. An imprint of Pearson Education

Frank Eller. Delphi 5. yy ADDISON-WESLEY. An imprint of Pearson Education Frank Eller Delphi 5 yy ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Irbheltswtrz-t'chm's Teil I-Start

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Outlook 2010 Stellvertretung

Outlook 2010 Stellvertretung OU.008, Version 1.0 14.01.2013 Kurzanleitung Outlook 2010 Stellvertretung Sind Sie häufig unterwegs oder abwesend, dann müssen wichtige Mitteilungen und Besprechungsanfragen in Outlook nicht unbeantwortet

Mehr

Ein Word-Dokument anlegen

Ein Word-Dokument anlegen 34 Word 2013 Schritt für Schritt erklärt Ein Word-Dokument anlegen evor Sie einen Text in Word erzeugen können, müssen Sie zunächst einmal ein neues Dokument anlegen. Die nwendung stellt zu diesem Zweck

Mehr

Neben dem Symbol Entwurfsmodus ist das Symbol Befehlschaltfläche zu sehen.

Neben dem Symbol Entwurfsmodus ist das Symbol Befehlschaltfläche zu sehen. Visual Basic / EXCEL Unterrichtsreihe von Herrn Selbach / Makro Programmierung 1. Die Steuerelemente Toolbox Durch Ansicht Symbolleisten Steuerelemente-Toolbox kann man Befehlschaltflächen (CommandButton),

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

Abb. 1. Abb. 2. Schaltflächen Speichern und Bericht öffnen. Abb. 3. www.accessuebungen.de

Abb. 1. Abb. 2. Schaltflächen Speichern und Bericht öffnen. Abb. 3. www.accessuebungen.de Befehlsschaltfläche, Makro 2010 Niko Becker Mit Hilfe von Steuerelementen können Sie Formulare nicht nur ansprechend gestalten, sondern auch eine Art Benutzerführung einrichten, indem Sie beispielsweise

Mehr

Komponente QPortUSB für Delphi 2006

Komponente QPortUSB für Delphi 2006 Komponente QPortUSB für Delphi 2006 QPortUSB Handbuch Seite 1 von 20 INHALTSVERZEICHNIS Komponente...1 QPortUSB...1 für Delphi 2006...1 Allgemeines Nutzung und Gewährleistung...5 Installation...6 Start

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Jürgen Bayer. MDI-Anwendungen in C#

Jürgen Bayer. MDI-Anwendungen in C# Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte

Mehr

5.2 Variablenkonzept und elementare Datentypen

5.2 Variablenkonzept und elementare Datentypen bertram.hafner@t-online.de Informatik 11 Seite 10 5.2 Variablenkonzept und elementare Datentypen Der aktuelle Zustand des Karol-Systems ist festgelegt durch: - Länge, Breite, Höhe der Welt - Position,

Mehr

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch

Mehr

Von Turbo Pascal zu Object Pascal

Von Turbo Pascal zu Object Pascal unter Delphi Landesfachberater für Informatik in Thüringen otto.thiele@gmx.net 4. Fachtagung Informatikunterricht der Zukunft Arbeitskreis F1 März 2006 Gliederung 1. 2. 3. 4. 5. 6. 7. Komponenten 1 Komponentenorientiertes

Mehr

Im Falle der Neueingabe müssen Sie in dem nachfolgendem Formular die Datenquelle auswählen und die Art der Prüfung festlegen.

Im Falle der Neueingabe müssen Sie in dem nachfolgendem Formular die Datenquelle auswählen und die Art der Prüfung festlegen. Ereignismanager Ereignismanager Ereignismanager - Grundsätzliches Allgemeines Mit Hilfe des Ereignismanagers können Sie Feldeingaben (bei Neueingaben oder Änderungen) überprüfen lassen. Sie können für

Mehr

Memory 33. 1.2 Memory

Memory 33. 1.2 Memory Memory 33 1.2 Memory Der Umgang mit selbst definierten Objektklassen lässt sich am einfachsten an einem Beispiel verstehen, bei dem auftretende Fehler am Bildschirm direkt zu sehen sind, z. B. dadurch,

Mehr

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013 Access 2013 Susanne Weber 1. Ausgabe, 1. Aktualisierung, Juni 2013 Grundlagen für Anwender ACC2013 2 Access 2013 - Grundlagen für Anwender 2 Mit Datenbanken arbeiten In diesem Kapitel erfahren Sie was

Mehr

Fertigungssimulationen mit Plant Simulation und SimTalk

Fertigungssimulationen mit Plant Simulation und SimTalk Fertigungssimulationen mit Plant Simulation und SimTalk Anwendung und Programmierung mit Beispielen und Lösungen von Steffen Bangsow 1. Auflage Hanser München 2008 Verlag C.H. Beck im Internet: www.beck.de

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Anleitung für TYPO3... 1. Bevor Sie beginnen... 2. Newsletter anlegen... 2. Inhalt platzieren und bearbeiten... 3. Neuen Inhalt anlegen...

Anleitung für TYPO3... 1. Bevor Sie beginnen... 2. Newsletter anlegen... 2. Inhalt platzieren und bearbeiten... 3. Neuen Inhalt anlegen... Seite 1 von 11 Anleitung für TYPO3 Inhalt Anleitung für TYPO3... 1 Bevor Sie beginnen... 2 Newsletter anlegen... 2 Inhalt platzieren und bearbeiten... 3 Neuen Inhalt anlegen... 3 Bestehenden Inhalt bearbeiten...

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Access [basics] Aktionsabfragen per VBA ausführen. Beispieldatenbank. Aktionsabfragen. Die Execute-Methode. Datenzugriff per VBA

Access [basics] Aktionsabfragen per VBA ausführen. Beispieldatenbank. Aktionsabfragen. Die Execute-Methode. Datenzugriff per VBA Aktionsabfragen lassen sich bequem mit der Entwurfsansicht für Abfragen zusammenstellen. Sie können damit Daten an Tabellen anfügen, bestehende Daten ändern oder löschen und sogar gleich die passende Tabelle

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

4 Codierung nach Viginere (Lösung)

4 Codierung nach Viginere (Lösung) Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Get Started with. Version 0.7, 24.03.2014 1 / 12

Get Started with. Version 0.7, 24.03.2014 1 / 12 Get Started with Version 0.7, 24.03.2014 1 / 12 Symbole / Elemente Da BPM Touch die Modellierungssprache BPMN Easy 1.2 verwendet, benötigen Sie nicht alle Elemente von BPMN 2.0 um Ihre Prozesse zu gestalten.

Mehr

Delphi-Grundlagen Hn 26.4.2010

Delphi-Grundlagen Hn 26.4.2010 Delphi Grundlagen Ein Delphiprogramm besteht aus 3 Teilen: - dem Formular (*.dfm) - dem Quelltext oder der Unit (*.pas) und - der Projektdatei (*.dpr), die Quelltext und Formular zusammenfügt. Änderungen

Mehr

Einführung in die Programmierung mit Delphi

Einführung in die Programmierung mit Delphi Einführung in die Programmierung mit Delphi 23.04.2009 Helmut Paulus Max-Planck-Gymnasium Trier Leitidee Probleme beim Einstieg in die Programmierung mit Delphi Auch einfachste Programme sind zunächst

Mehr

Einführung in Delphi. Komponenten regeln die Dateneingabe und Datenausgabe.

Einführung in Delphi. Komponenten regeln die Dateneingabe und Datenausgabe. Einführung in Delphi Komponenten regeln die Dateneingabe und Datenausgabe. Datenverarbeitung Computer sind Geräte zur Datenverarbeitung. Grundprinzip: EVA Eingabe Verarbeitung Ausgabe Beispiel: Minirechner

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Grundkurs Programmieren mit Delphi

Grundkurs Programmieren mit Delphi Wolf-Gert Matthäus Grundkurs Programmieren mit Delphi Systematisch programmieren mit Delphi - Inklusive Pascal-Programmierung und OOP vieweg 1 2 Benutzeroberflächen 1 1.1 Startbilder 1 1.1.1 Delphi 8 1

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

Windows-Programmierung mit C++ Ein Crash-Kurs

Windows-Programmierung mit C++ Ein Crash-Kurs Windows-Programmierung mit C++ Ein Crash-Kurs Einleitung Literaturempfehlungen: Charles Petzold Windows-Programmierung (Microsoft Press-Verlag) Richard Kaiser C++ mit dem Borland C++ Builder (Springer-Verlag)

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

orgexterndoc31 Inhaltsverzeichnis Einleitung... 1 Installation... 3 Grundinstallation... 3 Installation pro Arbeitsplatz... 6 Lizenzierung... 7 Benutzung Einzeldokument... 9 1. Möglichkeit:... 9 2. Möglichkeit...

Mehr

Projekt Informatik: Programmieren einer selbstgewählten Anwendungssoftware. Jenny Förster Susann Lorenz

Projekt Informatik: Programmieren einer selbstgewählten Anwendungssoftware. Jenny Förster Susann Lorenz Projekt Informatik: Programmieren einer selbstgewählten Anwendungssoftware Jenny Förster Susann Lorenz Inhaltsverzeichnis 1. Vorstellung des Projektzieles 2. Einleitung Das Menü XXO Roulette Impressum

Mehr

iphone-kontakte zu Exchange übertragen

iphone-kontakte zu Exchange übertragen iphone-kontakte zu Exchange übertragen Übertragen von iphone-kontakten in ein Exchange Postfach Zunächst muss das iphone an den Rechner, an dem es üblicherweise synchronisiert wird, angeschlossen werden.

Mehr

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

RÖK Typo3 Dokumentation

RÖK Typo3 Dokumentation 2012 RÖK Typo3 Dokumentation Redakteur Sparten Eine Hilfe für den Einstieg in Typo3. Innpuls Werbeagentur GmbH 01.01.2012 2 RÖK Typo3 Dokumentation Inhalt 1) Was ist Typo3... 3 2) Typo3 aufrufen und Anmelden...

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

10 Makros. 10.1 Makros aufzeichnen

10 Makros. 10.1 Makros aufzeichnen 10 Makros Ein Makro besteht aus einer Reihe von Befehlen, die gespeichert und dann immer wieder aufgerufen, d.h. durchgeführt werden können. Das dient zur Automatisierung häufig auftretender Aufgaben.

Mehr