kopf
brlogo
fensterobenrechts
   
   
fensteruntenblau
   
  Vom Objekt zur Polymorphie

6.  Kennt-Beziehungen (Assoziationen)

 

12. Projekt Billard

 

Damit ein Haus - allgemeine ein Objekt, das sich im Zeichenfenster darstellt - weiß, auf welcher Zeichenfläche es sich darstellen soll, muss es ein Fenster kennen lernen, das für die Darstellung seine Zeichenfläche (Canvas, Leinwand) zur Verfügung stellt. Das gilt im Prinzip auch für Billardkugeln.

 

assoziation_10

     (Abb. Programm Billard2: Billardtisch mit einer roten und zwei weißen Kugeln)

 

 

    
      Ziele
 
  • Realisierung wechselseitiger Assoziationen
      

 

 

Entwicklungsschritte des Projekts

 

1.  Programm Billard1 Die Billardkugel bewegt sich „reibungslos“ auf seinem Billardtisch
2.  Programm Billard2 Die drei Billardkugeln auf einem Billardtisch reagieren aufeinander
3.  Programm Billard3 Billardtisch mit 6 Löchern und 15 Kugeln (Poolbillard)
 

 

13. Projekt "Wischfeste Objekte"

Das Problem:

Immer wenn ein andere Zeichenfenster durch ein anderes überlagert wird, geht der Inhalt des Zeichenfensters verloren: Gezeichnete Objekte sind nicht wischfest.

 

     assoziation_20

        (Abb. Wischfestes und nicht wischfestes Gebäude)

 

Die Ursache:

  • Das Betriebssystem Windows verwaltet zwar alle auf dem Bildschirm vorhandenen Fenster, jedoch nicht ihren Inhalt.
  • Überlagert ein Fenster ein anderes, so wird dieser Teil des Bildschirms einfach übermalt, und der „hinter“ diesem neu gezeichneten Bereich befindliche Inhalt ist verloren - sofern das betroffene Fenster selbst nicht für seine Aufbewahrung gesorgt hat.
  • Wird nun ein Teil des überlagerten Fensters wieder freigegeben, reagiert das Betriebssystem hierauf mit einer Nachricht an die betroffene Anwendung, die die Koordinaten des betroffenen Bildschirmbereichs mit übermittelt.
  • Diese Nachricht wird dann von der Anwendung an das betroffene Fenster sowie deren Steuerelemente weitergereicht mit dem Auftrag, sich selbst zu rekonstruieren.

 

 

    
      Ziele
 
  • Das Delphi-Ereignis OnPaint
  • Interne Reaktion (Methode Paint) und externe Reaktion auf dieses Ereignis (Ereignis-Methode FormPaint)
  • Realisierung wechselseitiger Bezüge von Units und deren Klassen
  • Die Klasse TList als Verwaltungsklasse unbestimmt vieler Objekte (alternativ zum Array)
  • Die polymorphe Struktur aller wischfest in einem Zeichenfenster darstellbaren Objekte
      

 

 

Entwicklungsschritte des Projekts

 

1.  Programm Wischfest1 Der Hintergrund (Landschaft) zeichnet sich neu, wenn das Fenster aktualisiert werden muss.
2.  Programm Wischfest2 Ein wischfestes Haus, welches das Zeichenfenster kennt und sich bei Bedarf neu zeichnet
3.  Programm Wischfest3 Verwalten wischfester Häuser in der Delphi-Klasse TList
4.  Programm Wischfest4 Die Klasse TZFObjekt (ZeichenfensterObjekt) als Basisklasse aller in einem Zeichenfenster darstellbaren Objekte

 

 

Unterrichtsmaterial

 

Skript:  Assoziation1.pdf, Assoziation.2.pdf

Info-Dateien:  (keine)

Download:  (Delphi 7)  Assoziationen.zip

 

 

Hinweise zum Unterricht

 

Windows 7

Die hier vorgestellten Unterrichtsreihen wurden mit Delphi 7 unter dem Betriebssystem Windows XP entwickelt. Das aktuelle Betriebssystem Windows 7 scheint seine Fensterverwaltung dahingehend geändert zu haben, dass es seinen Fensterhintergrund selbstständig verwalten und bei Bedarf aktualisieren kann. Teile der Unterrichtsreihe "Wischfeste Objekte" verhalten sich dann nicht so wie hier beschrieben.

 

 

Ende der Einführung

 

 
 
Monday, 20. November 2017 / 01:29:17