Browse Source

Kommentare fertig hinzugefügt

Kolja Strohm 8 years ago
parent
commit
b09b5468d7
10 changed files with 1768 additions and 853 deletions
  1. 391 193
      AuswahlBox.h
  2. 303 84
      Diagramm.h
  3. 6 9
      Fenster.cpp
  4. 566 333
      Fenster.h
  5. 0 8
      Fortschritt.cpp
  6. 84 40
      Fortschritt.h
  7. 168 70
      Knopf.h
  8. 4 4
      Liste.cpp
  9. 245 111
      Liste.h
  10. 1 1
      Zeichnung.h

+ 391 - 193
AuswahlBox.h

@@ -6,17 +6,17 @@
 
 namespace Framework
 {
-	class TextFeld; // TextFeld.h
-	class VScrollBar; // Scroll.h
-	class LRahmen; // Rahmen.h
-	class Knopf; // Knopf.h
-	class AlphaFeld; // AlphaFeld.h
-	class Text; // Tet.h
-	class Schrift; // Schrift.h
+    class TextFeld; // TextFeld.h
+    class VScrollBar; // Scroll.h
+    class LRahmen; // Rahmen.h
+    class Knopf; // Knopf.h
+    class AlphaFeld; // AlphaFeld.h
+    class Text; // Tet.h
+    class Schrift; // Schrift.h
 
     // Eine Zeichnung des 2D GUI Frameworks. Repräsentiert eine Box, aus der der Nutzer durch ausklappen verschiedene Werte auswählen kann
-	class AuswahlBox : public ZeichnungHintergrund
-	{
+    class AuswahlBox : public ZeichnungHintergrund
+    {
     public:
         class Style : public ZeichnungHintergrund::Style
         {
@@ -43,282 +43,480 @@ namespace Framework
 
             const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | FeldRahmen | AuswahlBuffer | AuswahlRahmen | MaxHöhe | VScroll | MausRahmen | MausBuffer; // Normaler Style: Sichtbar, Erlaubt, Rahmen, FeldRahmen, AuswahlBuffer, AuswahlRahmen, MaxHöhe, VScroll, MausRahmen, MausBuffer
         };
-	private:
-		Schrift *schrift;
-		Array< __int64 > *msStyle;
-		RCArray< TextFeld > *members;
-		Knopf *ausfahren;
-		LRahmen *auswRahmen;
-		int auswBgF;
-		Bild *auswBgB;
-		AlphaFeld *auswAf;
-		RCArray< LRahmen > *msAuswRahmen;
-		Array< int > *msAuswBgF;
-		RCArray< Bild > *msAuswBgB;
-		RCArray< AlphaFeld > *msAuswAf;
-		LRahmen *mausRahmen;
-		int mausBgF;
-		Bild *mausBgB;
-		AlphaFeld *mausAf;
-		RCArray< LRahmen > *msMausRahmen;
-		Array< int > *msMausBgF;
-		RCArray< Bild > *msMausBgB;
-		RCArray< AlphaFeld > *msMausAf;
-		int anzahl;
-		int auswahl;
-		bool ausgeklappt;
-		int ausklappHöhe;
-		int ausklapMaxHöhe;
-		int eintragHöhe;
-		double tickval;
-		int mausEintrag;
-		bool scrollAnzeigen;
-		void *eAkP;
-		void( *eAk )( void *p, AuswahlBox *, int, int );
-		int ref;
+    private:
+        Schrift *schrift;
+        Array< __int64 > *msStyle;
+        RCArray< TextFeld > *members;
+        Knopf *ausfahren;
+        LRahmen *auswRahmen;
+        int auswBgF;
+        Bild *auswBgB;
+        AlphaFeld *auswAf;
+        RCArray< LRahmen > *msAuswRahmen;
+        Array< int > *msAuswBgF;
+        RCArray< Bild > *msAuswBgB;
+        RCArray< AlphaFeld > *msAuswAf;
+        LRahmen *mausRahmen;
+        int mausBgF;
+        Bild *mausBgB;
+        AlphaFeld *mausAf;
+        RCArray< LRahmen > *msMausRahmen;
+        Array< int > *msMausBgF;
+        RCArray< Bild > *msMausBgB;
+        RCArray< AlphaFeld > *msMausAf;
+        int anzahl;
+        int auswahl;
+        bool ausgeklappt;
+        int ausklappHöhe;
+        int ausklapMaxHöhe;
+        int eintragHöhe;
+        double tickval;
+        int mausEintrag;
+        bool scrollAnzeigen;
+        void *eAkP;
+        void( *eAk )( void *p, AuswahlBox *, int, int );
+        int ref;
 
-	public:
-		// Konstruktor 
-		__declspec( dllexport ) AuswahlBox();
-		// Destruktor 
-		__declspec( dllexport ) ~AuswahlBox();
-		// Setzt den Parameter der Rückruffunktion, die aufgerufen wird, wenn der Benutzer ein neues element auswählt
+    public:
+        // Konstruktor 
+        __declspec( dllexport ) AuswahlBox();
+        // Destruktor 
+        __declspec( dllexport ) ~AuswahlBox();
+        // Setzt den Parameter der Rückruffunktion, die aufgerufen wird, wenn der Benutzer ein neues element auswählt
         //  p: Der Parameter
-		__declspec( dllexport ) void setEventParam( void *p );
+        __declspec( dllexport ) void setEventParam( void *p );
         // Setzt die Rückruffunktion, die Aufgerufen wird, wenn der Benutzer ein neues Element auswählt
         //  eAk: Die Rückruffunktion
         __declspec( dllexport ) void setEventAktion( void( *eAk )( void *p, AuswahlBox *, int, int ) );
         // Setzt die verwendete Schrift
         //  schrift: Die Schrift
-		__declspec( dllexport ) void setSchriftZ( Schrift *schrift );
+        __declspec( dllexport ) void setSchriftZ( Schrift *schrift );
         // Fügt der Liste einen auswählbaren Eintrag hinzu. Der erste Eintrag ist zu Beginn automatisch ausgewählt
         //  txt: Der Text des Eintrags
-		__declspec( dllexport ) void addEintrag( const char *txt );
+        __declspec( dllexport ) void addEintrag( const char *txt );
         // Fügt der Liste einen auswählbaren Eintrag hinzu. Der erste Eintrag ist zu Beginn automatisch ausgewählt
         //  txt: Der Text des Eintrags
-		__declspec( dllexport ) void addEintrag( Text *txt );
+        __declspec( dllexport ) void addEintrag( Text *txt );
         // Fügt der Liste einen auswählbaren Eintrag hinzu. Der erste Eintrag ist zu Beginn automatisch ausgewählt
         //  txt: Ein Zeiger auf den Eintrag
-		__declspec( dllexport ) void addEintragZ( TextFeld *txt );
+        __declspec( dllexport ) void addEintragZ( TextFeld *txt );
         // Ändert den Text eines Eintrags
         //  i: Der Index des Eintrags
         //  txt: Der neue Text
-		__declspec( dllexport ) void setEintrag( int i, const char *txt );
+        __declspec( dllexport ) void setEintrag( int i, const char *txt );
         // Ändert den Text eines Eintrags
         //  i: Der Index des Eintrags
         //  txt: Der neue Text
-		__declspec( dllexport ) void setEintrag( int i, Text *txt );
+        __declspec( dllexport ) void setEintrag( int i, Text *txt );
         // Ändert einen Eintrag
         //  i: Der Index des Eintrags
         //  txt: Ein Zeiger auf den neuen Eintrag
-		__declspec( dllexport ) void setEintragZ( int i, TextFeld *txt );
+        __declspec( dllexport ) void setEintragZ( int i, TextFeld *txt );
         // Löscht einen Eintrag
         //  i: Der Index des Eintrags
-		__declspec( dllexport ) void löscheEintrag( int i );
+        __declspec( dllexport ) void löscheEintrag( int i );
         // Setzt einen Zeiger auf den Knopf, der zum aus und einklappen der Liste verwendet wird
         //  ausK: Der Knopf
-		__declspec( dllexport ) void setAusklappKnopfZ( Knopf *ausK );
+        __declspec( dllexport ) void setAusklappKnopfZ( Knopf *ausK );
         // Setzt einen Zeiger auf einen Rahmen, der für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  rahmen: Der Rahemn
-		__declspec( dllexport ) void setEintragRahmenZ( int i, LRahmen *rahmen );
+        __declspec( dllexport ) void setEintragRahmenZ( int i, LRahmen *rahmen );
         // Setzt die Farbe eines Rahmens, der für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  f: Die farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setEintragRahmenFarbe( int i, int f );
+        __declspec( dllexport ) void setEintragRahmenFarbe( int i, int f );
         // Setzt die Breite eines Rahmens, der für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  rbr: Die Breite des Rahmens in Pixeln
-		__declspec( dllexport ) void setEintragRahmenBreite( int i, int rbr );
+        __declspec( dllexport ) void setEintragRahmenBreite( int i, int rbr );
         // Setzt eine Hintergrund Farbe, die für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  f: Die farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setEintragHintergrundFarbe( int i, int f );
+        __declspec( dllexport ) void setEintragHintergrundFarbe( int i, int f );
         // Setzt einen zeiger auf ein Hintergrund Bild, das für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  bgB: Das Hintergrund Bild
-		__declspec( dllexport ) void setEintragHintergrundBildZ( int i, Bild *bgB );
+        __declspec( dllexport ) void setEintragHintergrundBildZ( int i, Bild *bgB );
         // Setzt ein Hintergrund Bild durch Kopieren, das für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  bgB: Das Hintergrund Bild
-		__declspec( dllexport ) void setEintragHintergrundBild( int i, Bild *bgB );
+        __declspec( dllexport ) void setEintragHintergrundBild( int i, Bild *bgB );
         // Setzt einen zeiger auf einen Farbübergangn, der für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  af: Der Farbübergang
-		__declspec( dllexport ) void setEintragAlphaFeldZ( int i, AlphaFeld *af );
+        __declspec( dllexport ) void setEintragAlphaFeldZ( int i, AlphaFeld *af );
         // Setzt dei Farbe eines Farbübergangns, der für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  afF: Die Farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setEintragAlphaFeldFarbe( int i, int afF );
+        __declspec( dllexport ) void setEintragAlphaFeldFarbe( int i, int afF );
         // Setzt dei Stärke eines Farbübergangns, der für einen bestimmten Eintrag benutzt wird
         //  i: Der Index des Eintrags
         //  afSt: Die Stärke
-		__declspec( dllexport ) void setEintragAlphaFeldStärke( int i, int afSt );
+        __declspec( dllexport ) void setEintragAlphaFeldStärke( int i, int afSt );
         // Setzt eienen Zeiger auf einen Rahmen, der bei dem ausgewählten Eintrag verwendet wird
         //  rahmen: Der Rahmen
-		__declspec( dllexport ) void setAuswRahmenZ( LRahmen *rahmen );
+        __declspec( dllexport ) void setAuswRahmenZ( LRahmen *rahmen );
         // Setzt die Farbe eines Rahmens, der bei dem ausgewählten Eintrag verwendet wird
         //  f: Die Farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setAuswRahmenFarbe( int f );
+        __declspec( dllexport ) void setAuswRahmenFarbe( int f );
         // Setzt die Breite eines Rahmens, der bei dem ausgewählten Eintrag verwendet wird
         //  rbr: Die Breite in Pixeln
-		__declspec( dllexport ) void setAuswRahmenBreite( int rbr );
+        __declspec( dllexport ) void setAuswRahmenBreite( int rbr );
         // Setzt die Hintergrund Farbe, die bei dem ausgewählten Eintrag verwendet wird
         //  f: Die Farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setAuswHintergrundFarbe( int f );
+        __declspec( dllexport ) void setAuswHintergrundFarbe( int f );
         // Setzt den Zeiger auf ein Hintergrund Bild, das bei dem ausgewählten Eintrag verwendet wird
         //  bgB: Das Bild
-		__declspec( dllexport ) void setAuswHintergrundBildZ( Bild *bgB );
+        __declspec( dllexport ) void setAuswHintergrundBildZ( Bild *bgB );
         // Setzt ein Hintergrund Bild durch kopieren, das bei dem ausgewählten Eintrag verwendet wird
         //  bgB: Das Bild
-		__declspec( dllexport ) void setAuswHintergrundBild( Bild *bgB );
+        __declspec( dllexport ) void setAuswHintergrundBild( Bild *bgB );
         // Setzt den Zeiger auf einen Farbübergang, der bei dem ausgewählten Eintrag verwendet wird
         //  af: Der Farbübergang
-		__declspec( dllexport ) void setAuswAlphaFeldZ( AlphaFeld *af );
+        __declspec( dllexport ) void setAuswAlphaFeldZ( AlphaFeld *af );
         // Setzt die Farbe eines Farbübergangs, der bei dem ausgewählten Eintrag verwendet wird
         //  afF: Die Farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setAuswAlphaFeldFarbe( int afF );
+        __declspec( dllexport ) void setAuswAlphaFeldFarbe( int afF );
         // Setzt die Stärke eines Farbübergangs, der bei dem ausgewählten Eintrag verwendet wird
         //  afSt: Die Stärke
-		__declspec( dllexport ) void setAuswAlphaFeldStärke( int afSt );
+        __declspec( dllexport ) void setAuswAlphaFeldStärke( int afSt );
         // Setzt eienen Zeiger auf einen Rahmen, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
         //  i: Der Index des Eintrags
         //  rahmen: Der Rahmen
-		__declspec( dllexport ) void setMsAuswRahmenZ( int i, LRahmen *rahmen );
+        __declspec( dllexport ) void setMsAuswRahmenZ( int i, LRahmen *rahmen );
         // Setzt die Farbe einens Rahmens, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
         //  i: Der Index des Eintrags
         //  f: Die Farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setMsAuswRahmenFarbe( int i, int f );
+        __declspec( dllexport ) void setMsAuswRahmenFarbe( int i, int f );
         // Setzt die Breite einens Rahmens, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
         //  i: Der Index des Eintrags
         //  rbr: Die Breite in Pixeln
-		__declspec( dllexport ) void setMsAuswRahmenBreite( int i, int rbr );
+        __declspec( dllexport ) void setMsAuswRahmenBreite( int i, int rbr );
         // Setzt die Hintergrundfarbe, die bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
         //  i: Der Index des Eintrags
         //  f: Die Farbe im A8R8G8B8 Format
-		__declspec( dllexport ) void setMsAuswHintergrundFarbe( int i, int f );
+        __declspec( dllexport ) void setMsAuswHintergrundFarbe( int i, int f );
         // Setzt eienen Zeiger auf eine Hintergrund Bild, das bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
         //  i: Der Index des Eintrags
         //  bgB: Das Bild
-		__declspec( dllexport ) void setMsAuswHintergrundBildZ( int i, Bild *bgB );
+        __declspec( dllexport ) void setMsAuswHintergrundBildZ( int i, Bild *bgB );
         // Setzt eien Hintergrund Bild durch kopieren, das bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
         //  i: Der Index des Eintrags
         //  bgB: Das Bild
-		__declspec( dllexport ) void setMsAuswHintergrundBild( int i, Bild *bgB );
+        __declspec( dllexport ) void setMsAuswHintergrundBild( int i, Bild *bgB );
         // Setzt eienen Zeiger auf einen Farbverlauf, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
         //  i: Der Index des Eintrags
         //  af: Der Farbverlauf
-		__declspec( dllexport ) void setMsAuswAlphaFeldZ( int i, AlphaFeld *af ); // Multistyle Auswahl AlphaFeld setzen
-		__declspec( dllexport ) void setMsAuswAlphaFeldFarbe( int i, int afF ); // Multistyle Auswahl AlphaFeld Farbe setzen
-		__declspec( dllexport ) void setMsAuswAlphaFeldStärke( int i, int afSt ); // Multistyle Auswahl AlphaFeld stärke setzen
-		__declspec( dllexport ) void setMausRahmenZ( LRahmen *rahmen ); // Maus Rahmen setzen
-		__declspec( dllexport ) void setMausRahmenFarbe( int f ); // Maus Rahmen Farbe setzen
-		__declspec( dllexport ) void setMausRahmenBreite( int rbr ); // Maus Rahmen breite setzen
-		__declspec( dllexport ) void setMausHintergrundFarbe( int f ); // Maus Hintergrund Farbe setzen
-		__declspec( dllexport ) void setMausHintergrundBildZ( Bild *bgB ); // Maus Hintergrund Bild setzen
-		__declspec( dllexport ) void setMausHintergrundBild( Bild *bgB );
-		__declspec( dllexport ) void setMausAlphaFeldZ( AlphaFeld *af ); // Maus AlphaFeld setzen
-		__declspec( dllexport ) void setMausAlphaFeldFarbe( int afF ); // Maus AlphaFeld Farbe setzen
-		__declspec( dllexport ) void setMausAlphaFeldStärke( int afSt ); // Maus AlphaFeld stärke setzen
-		__declspec( dllexport ) void setMsMausRahmenZ( int i, LRahmen *rahmen ); // Multistyle Maus Rahmen setzen
-		__declspec( dllexport ) void setMsMausRahmenFarbe( int i, int f ); // Multistyle Maus Rahmen Farbe setzen
-		__declspec( dllexport ) void setMsMausRahmenBreite( int i, int rbr ); // Multistyle Maus Rahmen breite setzen
-		__declspec( dllexport ) void setMsMausHintergrundFarbe( int i, int f ); // Multistyle Maus Hintergrund Farbe setzen
-		__declspec( dllexport ) void setMsMausHintergrundBildZ( int i, Bild *bgB ); // Multistyle Maus Hintergrund Bild setzen
-		__declspec( dllexport ) void setMsMausHintergrundBild( int i, Bild *bgB );
-		__declspec( dllexport ) void setMsMausAlphaFeldZ( int i, AlphaFeld *af ); // Multistyle Maus AlphaFeld setzen
-		__declspec( dllexport ) void setMsMausAlphaFeldFarbe( int i, int afF ); // Multistyle Maus AlphaFeld Farbe setzen
-		__declspec( dllexport ) void setMsMausAlphaFeldStärke( int i, int afSt ); // Multistyle Maus AlphaFeld stärke setzen
-		__declspec( dllexport ) void setAuswahl( int i ); // Eintrag auswählen
-		__declspec( dllexport ) void ausklappen(); // liste ausklappen
-		__declspec( dllexport ) void einklappen(); // liste einklappen
-		__declspec( dllexport ) void scrollZuEintrag( int i ); // liste scrollen
-		__declspec( dllexport ) void setMaxAuskappHöhe( int maxHöhe ); // höhe der Liste beim ausklappen
-		__declspec( dllexport ) void setEintragHöhe( int höhe ); // setzt die Höhe der Einträge
-		__declspec( dllexport ) void addMsStyle( int i, __int64 abStyle ); // Multistyle style hinzufügen
-		__declspec( dllexport ) void setMsStyle( int i, __int64 abStyle, bool add ); // Multistyle style setzen
-		__declspec( dllexport ) void setMsStyle( int i, __int64 abStyle );
-		__declspec( dllexport ) void löscheMsStyle( int i, __int64 abStyle ); // Multistyle style entfernen
-		__declspec( dllexport ) bool tick( double tickVal ) override; // tick
-		__declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override; // Maus
-		__declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override; // Tastatur
-		__declspec( dllexport ) void render( Bild &zRObj ) override; // zeichnet nach zRObj
-		// constant
-		__declspec( dllexport ) int getEintragPos( const char *txt ) const; // gibt die Eintrag Position zurück
-		__declspec( dllexport ) int getEintragPos( Text *txt ) const;
-		__declspec( dllexport ) Text *getEintragText( int i ) const; // gibt den Eintrag Text zurück
-		__declspec( dllexport ) Text *zEintragText( int i ) const;
-		__declspec( dllexport ) TextFeld *getEintrag( int i ) const; // gibt den Eintrag zurück
-		__declspec( dllexport ) TextFeld *zEintrag( int i ) const;
-		__declspec( dllexport ) int getAuswahl() const; // gibt die Position des ausgewählten Eintrages zurück
-		__declspec( dllexport ) int getEintragAnzahl() const; // gibt die Anzahl der Einträge zurück
-		__declspec( dllexport ) bool istAusgeklappt() const; // prüft, ob die Liste ausgeklappt ist
-		__declspec( dllexport ) int getMaxHöhe() const; // gibt die maximale Höhe der Liste zurück
-		__declspec( dllexport ) int getEintragHöhe() const; // gibt die Höhe der Einträge zurück
-		__declspec( dllexport ) Knopf *getAusklappKnopf() const; // gibt den aus-/einklapp Knopf zurück
-		__declspec( dllexport ) Knopf *zAusklappKnopf() const;
-		__declspec( dllexport ) LRahmen *getEintragRahmen( int i ) const; // gibt den Eintrag Rahmen zurück
-		__declspec( dllexport ) LRahmen *zEintragRahmen( int i ) const;
-		__declspec( dllexport ) int getEintragRahmenFarbe( int i ) const; // gibt die Eintrag Rahmen Frabe zurück
-		__declspec( dllexport ) int getEintragRahmenBreite( int i ) const; // gibt die Eintrag Rahmen Breite zurück
-		__declspec( dllexport ) AlphaFeld *getEintragAlphaFeld( int i ) const; // gibt das Eintrag AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zEintragAlphaFeld( int i ) const;
-		__declspec( dllexport ) int getEintragAlphaFeldFarbe( int i ) const; // gibt die Eintrag AlphaFeld Farbe zurück
-		__declspec( dllexport ) int getEintragAlphaFeldStärke( int i ) const; // gibt die Eintrag AlphaFeld stärke zurück
-		__declspec( dllexport ) int getEintragHintergrundFarbe( int i ) const; // gibt die Eintrag Hintergrund Farbe zurück
-		__declspec( dllexport ) Bild *getEintragHintergrundBild( int i ) const; // gibt das Eintrag Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zEintragHintergrundBild( int i ) const;
-		__declspec( dllexport ) LRahmen *getAuswRahmen() const; // gibt den Auswahl Rahmen zurück
-		__declspec( dllexport ) LRahmen *zAuswRahmen() const;
-		__declspec( dllexport ) int getAuswRahmenFarbe() const; // gibt die Auswahl Rahmen Frabe zurück
-		__declspec( dllexport ) int getAuswRahmenBreite() const; // gibt die Auswahl Rahmen Breite zurück
-		__declspec( dllexport ) AlphaFeld *getAuswAlphaFeld() const; // gibt das Auswahl AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zAuswAlphaFeld() const;
-		__declspec( dllexport ) int getAuswAlphaFeldFarbe() const; // gibt die Auswahl AlphaFeld Farbe zurück
-		__declspec( dllexport ) int getAuswAlphaFeldStärke() const; // gibt die Auswahl AlphaFeld stärke zurück
-		__declspec( dllexport ) int getAuswHintergrundFarbe() const; // gibt die Auswahl Hintergrund Farbe zurück
-		__declspec( dllexport ) Bild *getAuswHintergrundBild() const; // gibt das Auswahl Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zAuswHintergrundBild() const;
-		__declspec( dllexport ) LRahmen *getMsAuswRahmen( int i ) const; // gibt den Multistyle Auswahl Rahmen zurück
-		__declspec( dllexport ) LRahmen *zMsAuswRahmen( int i ) const;
-		__declspec( dllexport ) int getMsAuswRahmenFarbe( int i ) const; // gibt die Multistyle Auswahl Rahmen Frabe zurück
-		__declspec( dllexport ) int getMsAuswRahmenBreite( int i ) const; // gibt die Multistyle Auswahl Rahmen Breite zurück
-		__declspec( dllexport ) AlphaFeld *getMsAuswAlphaFeld( int i ) const; // gibt das Multistyle Auswahl AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zMsAuswAlphaFeld( int i ) const;
-		__declspec( dllexport ) int getMsAuswAlphaFeldFarbe( int i ) const; // gibt die Multistyle Auswahl AlphaFeld Farbe zurück
-		__declspec( dllexport ) int getMsAuswAlphaFeldStärke( int i ) const; // gibt die Multistyle Auswahl AlphaFeld stärke zurück
-		__declspec( dllexport ) int getMsAuswHintergrundFarbe( int i ) const; // gibt die Multistyle Auswahl Hintergrund Farbe zurück
-		__declspec( dllexport ) Bild *getMsAuswHintergrundBild( int i ) const; // gibt das Multistyle Auswahl Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zMsAuswHintergrundBild( int i ) const;
-		__declspec( dllexport ) LRahmen *getMausRahmen() const; // gibt den Maus Rahmen zurück
-		__declspec( dllexport ) LRahmen *zMausRahmen() const;
-		__declspec( dllexport ) int getMausRahmenFarbe() const; // gibt die Maus Rahmen Frabe zurück
-		__declspec( dllexport ) int getMausRahmenBreite() const; // gibt die Maus Rahmen Breite zurück
-		__declspec( dllexport ) AlphaFeld *getMausAlphaFeld() const; // gibt das Maus AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zMausAlphaFeld() const;
-		__declspec( dllexport ) int getMausAlphaFeldFarbe() const; // gibt die Maus AlphaFeld Farbe zurück
-		__declspec( dllexport ) int getMausAlphaFeldStärke() const; // gibt die Maus AlphaFeld stärke zurück
-		__declspec( dllexport ) int getMausHintergrundFarbe() const; // gibt die Maus Hintergrund Farbe zurück
-		__declspec( dllexport ) Bild *getMausHintergrundBild() const; // gibt das Maus Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zMausHintergrundBild() const;
-		__declspec( dllexport ) LRahmen *getMsMausRahmen( int i ) const; // gibt den Multistyle Maus Rahmen zurück
-		__declspec( dllexport ) LRahmen *zMsMausRahmen( int i ) const;
-		__declspec( dllexport ) int getMsMausRahmenFarbe( int i ) const; // gibt die Multistyle Maus Rahmen Frabe zurück
-		__declspec( dllexport ) int getMsMausRahmenBreite( int i ) const; // gibt die Multistyle Maus Rahmen Breite zurück
-		__declspec( dllexport ) AlphaFeld *getMsMausAlphaFeld( int i ) const; // gibt das Multistyle Maus AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zMsMausAlphaFeld( int i ) const;
-		__declspec( dllexport ) int getMsMausAlphaFeldFarbe( int i ) const; // gibt die Multistyle Maus AlphaFeld Farbe zurück
-		__declspec( dllexport ) int getMsMausAlphaFeldStärke( int i ) const; // gibt die Multistyle Maus AlphaFeld stärke zurück
-		__declspec( dllexport ) int getMsMausHintergrundFarbe( int i ) const; // gibt die Multistyle Maus Hintergrund Farbe zurück
-		__declspec( dllexport ) Bild *getMsMausHintergrundBild( int i ) const; // gibt das Multistyle Maus Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zMsMausHintergrundBild( int i ) const;
-		__declspec( dllexport ) inline bool hatMsStyle( int i, __int64 abStyle ) const; // prüft ob Multistyle style vorhanden
-		__declspec( dllexport ) inline bool hatMsStyleNicht( int i, __int64 abStyle ) const; // prüft ob Multistyle style nicht vorhanden
-		__declspec( dllexport ) Zeichnung *dublizieren() const override; // Erzeugt eine Kopie des Zeichnungs
-		// Reference Counting
-		__declspec( dllexport ) AuswahlBox *getThis();
-		__declspec( dllexport ) AuswahlBox *release();
-	};
+        __declspec( dllexport ) void setMsAuswAlphaFeldZ( int i, AlphaFeld *af );
+        // Setzt die Farbe eines Farbverlaufs, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        //  afF: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setMsAuswAlphaFeldFarbe( int i, int afF );
+        // Setzt die Stärke eines Farbverlaufs, der bei dem Flag MultiStyled bei der Auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        //  afSt: Die Stärke
+        __declspec( dllexport ) void setMsAuswAlphaFeldStärke( int i, int afSt );
+        // Setzt einen Zeiger auf einen Rahmen, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  rahmen: Der Rahmen
+        __declspec( dllexport ) void setMausRahmenZ( LRahmen *rahmen );
+        // Setzt die Farbe eines Rahmens, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setMausRahmenFarbe( int f );
+        // Setzt die Breite eines Rahmens, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  rbr: Die Breite des Rahmens in Pixeln
+        __declspec( dllexport ) void setMausRahmenBreite( int rbr );
+        // Setzt die Hintergrund Farbe, die bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setMausHintergrundFarbe( int f );
+        // Setzt einen Zeiger auf ein Hintergrund Bild, das bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  bgB: Das Bild
+        __declspec( dllexport ) void setMausHintergrundBildZ( Bild *bgB );
+        // Setzt ein Hintergrund Bild durch kopieren, das bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  bgB: Das Bild
+        __declspec( dllexport ) void setMausHintergrundBild( Bild *bgB );
+        // Setzt einen Farbverlauf, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  af: Der Farbverlauf
+        __declspec( dllexport ) void setMausAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe eines Farbverlaufs, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  afF: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setMausAlphaFeldFarbe( int afF );
+        // Setzt die Stärke eines Farbverlaufs, der bei dem Eintrag verwendet wird, auf den die Maus zeigt
+        //  afSt: Die Stärke
+        __declspec( dllexport ) void setMausAlphaFeldStärke( int afSt );
+        // Setzt einen Zeiger auf einen Rahmen, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  rahmen: Der Rahmen
+        __declspec( dllexport ) void setMsMausRahmenZ( int i, LRahmen *rahmen );
+        // Setzt die Farbe eines Rahmes, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setMsMausRahmenFarbe( int i, int f );
+        // Setzt die Breite eines Rahmes, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  rbr: Die Breite in Pixeln
+        __declspec( dllexport ) void setMsMausRahmenBreite( int i, int rbr );
+        // Setzt die Hintergrund Farbe, die bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setMsMausHintergrundFarbe( int i, int f );
+        // Setzt einen Zeiger auf Hintergrund Bild, das bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  bgB: Das Bild
+        __declspec( dllexport ) void setMsMausHintergrundBildZ( int i, Bild *bgB );
+        // Setzt ein Hintergrund Bild durch kopieren, das bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  bgB: Das Bild
+        __declspec( dllexport ) void setMsMausHintergrundBild( int i, Bild *bgB );
+        // Setzt einen Zeiger auf einen Farbübergang, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  af: Der Farbverlauf
+        __declspec( dllexport ) void setMsMausAlphaFeldZ( int i, AlphaFeld *af );
+        // Setzt die Farbe einens Farbübergangs, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  afF: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setMsMausAlphaFeldFarbe( int i, int afF );
+        // Setzt die Stärke einens Farbübergangs, der bei dem Flag MultiStyled bei einem bestimmten Eintrag verwendet wird, auf den die Maus zeigt
+        //  i: Der Index des Eintrags
+        //  afSt: Die Stärke
+        __declspec( dllexport ) void setMsMausAlphaFeldStärke( int i, int afSt );
+        // Wählt ein Element aus
+        //  i: Der Index des Elements
+        __declspec( dllexport ) void setAuswahl( int i );
+        // Klappt die Liste zum Auswählen aus
+        __declspec( dllexport ) void ausklappen();
+        // Klappt die Liste zum Auswählen ein
+        __declspec( dllexport ) void einklappen();
+        // Scrollt in der Liste zu einem bestimmten Eintrag
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) void scrollZuEintrag( int i );
+        // Setzt die maximale Ausklapp Höhe der Liste
+        //  maxHöhe: Die maximale Höhe in Pixeln
+        __declspec( dllexport ) void setMaxAuskappHöhe( int maxHöhe );
+        // Setzt die Höhe der Einträge
+        //  höhe: Die Höhe in Pixeln
+        __declspec( dllexport ) void setEintragHöhe( int höhe );
+        // Fügt Styles zu einem bestimmten Eintrag hinzu, falls der Flag MultiStyled gesetzt wurde
+        //  i: Der Index des Eintrags
+        //  abStyle: Der Style, der hinzugefügt werden soll
+        __declspec( dllexport ) void addMsStyle( int i, __int64 abStyle );
+        // Setzt Styles eines bestimmten Eintrags, falls der Flag MultiStyled gesetzt wurde
+        //  i: Der Index des Eintrags
+        //  abStyle: Der Style
+        //  add: 1, falls die Styles hinzugefügt werden sollen und 0, falls sie entfernt werden sollen
+        __declspec( dllexport ) void setMsStyle( int i, __int64 abStyle, bool add );
+        // Ersetzt die Styles eines bestimmten Eintrags, falls der Flag MultiStyled gesetzt wurde
+        //  i: Der Index des Eintrags
+        //  abStyle: Der neue Style
+        __declspec( dllexport ) void setMsStyle( int i, __int64 abStyle );
+        // Entfernt Styles von einem bestimmten Eintrag, falls der Flag MultiStyled gesetzt wurde
+        //  i: Der Index des Eintrags
+        //  abStyle: Der Style, der entfernt werden soll
+        __declspec( dllexport ) void löscheMsStyle( int i, __int64 abStyle );
+        // Aktualisiert das Objekt. Wird vom Framework aufgerufen
+        //  tickVal: Die Zeit in sekunden, die seit dem lezten Aufruf dieser Funktion vergangen ist
+        //  return: 1, wenn sich etwas verändert hat und das Bild neu gezeichnet werden muss. 0 sonst
+        __declspec( dllexport ) bool tick( double tickVal ) override;
+        // Verarbeitet Maus Nachrichten
+        //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+        __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
+        // Verarbeitet Tastatur Nachrichten
+        //  me: Das Ereignis, was durch die Tastatureingabe ausgelößt wurde
+        __declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override;
+        // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
+        //  zRObj: Das Bild, in welches gezeichnet werden soll
+        __declspec( dllexport ) void render( Bild &zRObj ) override;
+        // Gibt den Index eines Eintrags zurück
+        //  txt: Der Text des Eintrags
+        __declspec( dllexport ) int getEintragPos( const char *txt ) const;
+        // Gibt den Index eines Eintrags zurück
+        //  txt: Der Text des Eintrags
+        __declspec( dllexport ) int getEintragPos( Text *txt ) const;
+        // Gibt den Text eines Eintrags zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Text *getEintragText( int i ) const;
+        // Gibt den Text eines Eintrags ohne erhöhten Reference Counter zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Text *zEintragText( int i ) const;
+        // Gibt einen Eintrag zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) TextFeld *getEintrag( int i ) const;
+        // Gibt einen Eintrag ohne erhöhten Reference Counter zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) TextFeld *zEintrag( int i ) const;
+        // Gibt den Index des Ausgewählten Eintrags zurück
+        __declspec( dllexport ) int getAuswahl() const;
+        // Gibt die Anzahl der Einträge zurück
+        __declspec( dllexport ) int getEintragAnzahl() const;
+        // Gibt zurück, ob die Liste gerade Ausgeklappt ist
+        __declspec( dllexport ) bool istAusgeklappt() const;
+        // Gibt die maximale Höhe der ausgeklappten Liste zurück
+        __declspec( dllexport ) int getMaxHöhe() const;
+        // Gibt die Höhe eines Eintrags zurück
+        __declspec( dllexport ) int getEintragHöhe() const;
+        // Gibt den Knopf zurück, der zum aus- und einklappen dr Liste verwendet wird
+        __declspec( dllexport ) Knopf *getAusklappKnopf() const;
+        // Gibt den Knopf ohne erhöhten Reference Counter zurück, der zum aus- und einklappen dr Liste verwendet wird
+        __declspec( dllexport ) Knopf *zAusklappKnopf() const;
+        // Gibt den Rahmen eines Eintrags zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) LRahmen *getEintragRahmen( int i ) const;
+        // Gibt den Rahmen eines Eintrags ohne erhöhten Reference Counter zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) LRahmen *zEintragRahmen( int i ) const;
+        // Gibt die Farbe eines Rahmens eines Eintrags im A8R8G8B8 Format zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getEintragRahmenFarbe( int i ) const;
+        // Gibt die Breite eines Rahmens eines Eintrags zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getEintragRahmenBreite( int i ) const;
+        // Gibt den Farbübergang eines Eintrags zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) AlphaFeld *getEintragAlphaFeld( int i ) const;
+        // Gibt den Farbübergang eines Eintrags ohne erhöhten Reference Counter zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) AlphaFeld *zEintragAlphaFeld( int i ) const;
+        // Gibt die Farbe eines Farbübergangs eines Eintrags im A8R8G8B8 Format zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getEintragAlphaFeldFarbe( int i ) const;
+        // Gibt die Stärke eines Farbübergangs eines Eintrags zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getEintragAlphaFeldStärke( int i ) const;
+        // Gibt die Hintergrund Farbe eines Eintrags im A8R8G8B8 Format zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getEintragHintergrundFarbe( int i ) const;
+        // Gibt das Hintergrund Bild eines Eintrags zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Bild *getEintragHintergrundBild( int i ) const;
+        // Gibt das Hintergrund Bild eines Eintrags ohne erhöhten Reference Counter zurück
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Bild *zEintragHintergrundBild( int i ) const;
+        // Gibt den Rahmen zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) LRahmen *getAuswRahmen() const;
+        // Gibt den Rahmen ohne erhöhten Reference Counter zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) LRahmen *zAuswRahmen() const;
+        // Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) int getAuswRahmenFarbe() const;
+        // Gibt die Breite des Rahmens zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) int getAuswRahmenBreite() const;
+        // Gibt den Farbübergang zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) AlphaFeld *getAuswAlphaFeld() const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) AlphaFeld *zAuswAlphaFeld() const;
+        // Gibt die Farbe des Farbübergangs zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) int getAuswAlphaFeldFarbe() const;
+        // Gibt die Stärke des Farbübergangs zurück, der bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) int getAuswAlphaFeldStärke() const;
+        // Gibt die Hintergrundfarbe im A8R8G8B8 Format zurück, die bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) int getAuswHintergrundFarbe() const;
+        // Gibt das Hintergrundbild zurück, das bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) Bild *getAuswHintergrundBild() const;
+        // Gibt das Hintergrundbild ohne erhöhten Reference Counter zurück, das bei der Auswahl eines Eintrags verwendet wird
+        __declspec( dllexport ) Bild *zAuswHintergrundBild() const;
+        // Gibt den Rahmen zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) LRahmen *getMsAuswRahmen( int i ) const;
+        // Gibt den Rahmen ohne erhöhten Reference Counter zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) LRahmen *zMsAuswRahmen( int i ) const;
+        // Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsAuswRahmenFarbe( int i ) const;
+        // Gibt die Breite des Rahmens zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsAuswRahmenBreite( int i ) const;
+        // Gibt den Farbübergang zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) AlphaFeld *getMsAuswAlphaFeld( int i ) const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) AlphaFeld *zMsAuswAlphaFeld( int i ) const;
+        // Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsAuswAlphaFeldFarbe( int i ) const;
+        // Gibt die Stärke des Farbübergangs zurück, der bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsAuswAlphaFeldStärke( int i ) const;
+        // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsAuswHintergrundFarbe( int i ) const;
+        // Gibt das Hintergrund Bild zurück, das bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Bild *getMsAuswHintergrundBild( int i ) const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das bei dem Flag MultiStyled bei der auswahl eines bestimmten Eintrags verwendet wird
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Bild *zMsAuswHintergrundBild( int i ) const;
+        // Gibt den Rahmen zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) LRahmen *getMausRahmen() const;
+        // Gibt den Rahmen ohne erhöhten Reference Counter zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) LRahmen *zMausRahmen() const;
+        // Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) int getMausRahmenFarbe() const;
+        // Gibt die Breite des Rahmens zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) int getMausRahmenBreite() const;
+        // Gibt den Farbübergang zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) AlphaFeld *getMausAlphaFeld() const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) AlphaFeld *zMausAlphaFeld() const;
+        // Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) int getMausAlphaFeldFarbe() const;
+        // Gibt die Breite des Farbübergangs zurück, der verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) int getMausAlphaFeldStärke() const;
+        // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) int getMausHintergrundFarbe() const;
+        // Gibt das Hintergrund Bild zurück, das verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) Bild *getMausHintergrundBild() const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, wenn die Maus auf einen Eintrag zeigt
+        __declspec( dllexport ) Bild *zMausHintergrundBild() const;
+        // Gibt den Rahmen zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) LRahmen *getMsMausRahmen( int i ) const;
+        // Gibt den Rahmen ohne erhöhten Reference Counter zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) LRahmen *zMsMausRahmen( int i ) const;
+        // Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsMausRahmenFarbe( int i ) const;
+        // Gibt die Breite des Rahmens zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsMausRahmenBreite( int i ) const;
+        // Gibt den Farbübergang zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) AlphaFeld *getMsMausAlphaFeld( int i ) const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) AlphaFeld *zMsMausAlphaFeld( int i ) const;
+        // Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsMausAlphaFeldFarbe( int i ) const;
+        // Gibt die Stärke des Farbübergangs zurück, der bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsMausAlphaFeldStärke( int i ) const;
+        // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) int getMsMausHintergrundFarbe( int i ) const;
+        // Gibt das Hintergrund Bild zurück, das bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Bild *getMsMausHintergrundBild( int i ) const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das bei dem Flag Multistyle verwendet wird, wenn die Maus auf einen bestimmten Eintrag zeigt
+        //  i: Der Index des Eintrags
+        __declspec( dllexport ) Bild *zMsMausHintergrundBild( int i ) const;
+        // Prüft, ob bei dem Flag MultiStyled für einen Bestimmten Eintrag ein bestimmter Style gesetzt wurde
+        //  i: Der Index des Eintrags
+        //  abStyle: Der Style
+        __declspec( dllexport ) inline bool hatMsStyle( int i, __int64 abStyle ) const;
+        // Prüft, ob bei dem Flag MultiStyled für einen Bestimmten Eintrag ein bestimmter Style nicht gesetzt wurde
+        //  i: Der Index des Eintrags
+        //  abStyle: Der Style
+        __declspec( dllexport ) inline bool hatMsStyleNicht( int i, __int64 abStyle ) const;
+        __declspec( dllexport ) Zeichnung *dublizieren() const override; // Erzeugt eine Kopie des Zeichnungs
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
+        __declspec( dllexport ) AuswahlBox *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
+        __declspec( dllexport ) AuswahlBox *release();
+    };
 }
 
 #endif

+ 303 - 84
Diagramm.h

@@ -15,16 +15,17 @@ namespace Framework
     class SLDiag; // aus dieser Datei
     class LDiag; // aus dieser Datei
 
+    // Eine Zeichnung de 2D GUI Frameworks, die ein live Diagramm von werten zeichnet
     class SLDiag : public ZeichnungHintergrund
     {
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            const static __int64 Gitter = 0x01000;
-            const static __int64 LinienName = 0x02000;
+            const static __int64 Gitter = 0x01000; // Es wird ein Gitter im Diagramm zur Orientierung gezeichnet
+            const static __int64 LinienName = 0x02000; // Es werden die Namen der Graphen angezeigt
 
-            const static __int64 normal = Sichtbar | Hintergrund | Rahmen | Gitter | LinienName;
+            const static __int64 normal = Sichtbar | Hintergrund | Rahmen | Gitter | LinienName; // Vereinigung der Flags Sichtbar, Hintergrund, Rahmen, Gitter, LinienName
         };
     private:
         int gF;
@@ -43,32 +44,74 @@ namespace Framework
         __declspec( dllexport ) SLDiag();
         // Destruktor 
         __declspec( dllexport ) ~SLDiag();
-        // nicht constant 
-        __declspec( dllexport ) void setSchriftZ( Schrift *schrift ); // setzt die Schrift
-        __declspec( dllexport ) void setGGröße( Punkt &gr ); // setzt die Größe des Gitters
-        __declspec( dllexport ) void setGFarbe( int f ); // setzt die Gitter Farbe
-        __declspec( dllexport ) void addLinie( const char *name ); // fügt eine Linie hinzu
+        // Setzt einen Zeiger zur verwendeten Schrift
+        //  schrift: Die Schrift
+        __declspec( dllexport ) void setSchriftZ( Schrift *schrift );
+        // Setzt die Abstände zwischen den Linien des Gitters
+        //  gr: Für x den Abstand zwischen jeder vertikalen Linie in Pixeln und für y den Abstand zwischen jeder Horizontalen Linie in den dargestellen y Werten
+        __declspec( dllexport ) void setGGröße( Punkt &gr );
+        // Setzt die Farbe der Raster Linien
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setGFarbe( int f );
+        // Fügt dem Diagramm einen neuen Graphen hinzu
+        //  name: Der Name des Graphen. Er wird bei dem Flag LinienName im Diagramm angezeigt
+        __declspec( dllexport ) void addLinie( const char *name );
+        // Fügt dem Diagramm einen neuen Graphen hinzu
+        //  name: Der Name des Graphen. Er wird bei dem Flag LinienName im Diagramm angezeigt
         __declspec( dllexport ) void addLinie( Text *txt );
-        __declspec( dllexport ) void setLFarbe( int lNum, int f ); // setzt die Linienfarbe
-        __declspec( dllexport ) void addPunkt( int lNum, int x, int h ); // fügt einen Punkt hinzu
-        __declspec( dllexport ) void removeLinie( int lNum ); // entfernt eine Linie
-        __declspec( dllexport ) void render( Bild &zRObj ) override; // zeichnet nach zRObj
-        // constant
-        __declspec( dllexport ) Schrift *getSchrift() const; // gibt die Schrift zurück
+        // Setzt die Farbe eines Graphen
+        //  lNum: Der Index des Graphen
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setLFarbe( int lNum, int f );
+        // Fügt einem Graphen einen Punkt hinzu. Hierdurch verschieben sich alle Punkte des Graphen so weit nach Links, dass der neue Punkt rechts auftaucht. Geht ein Punkt links aus dem Diagramm raus, wird er gelöscht.
+        // Auf diese Weise erscheint das Diagramm wie eine Abbildung einer Live Messung
+        //  x: Der Abstand zum Letzten Punkt in Pixeln
+        //  y: Den Wert der abgebildeten Funktion in dem Punkt
+        __declspec( dllexport ) void addPunkt( int lNum, int x, int h );
+        // Entfernt einen Graphen
+        //  lNum: Der Index des Graphen
+        __declspec( dllexport ) void removeLinie( int lNum );
+        // Zeichnet das Diagramm
+        //  zRObj: Das Bild, in das gezeichnet werden soll
+        __declspec( dllexport ) void render( Bild &zRObj ) override;
+        // Gibt die verwendete Schrift zurück
+        __declspec( dllexport ) Schrift *getSchrift() const;
+        // Gibt die verwendete Schrift ohne erhöhten Reference Counter zurück
         __declspec( dllexport ) Schrift *zSchrift() const;
-        __declspec( dllexport ) const Punkt &getGGröße() const; // gibt die Gitter Größe zurück
-        __declspec( dllexport ) int getGFarbe() const; // gibt die Gitter Farbe zurück
-        __declspec( dllexport ) int getLinienNummer( const char *name ) const; // gibt die Linien Nummer zurück
+        // Gibt die Größe eines Quadrats des Gitters zurück, wobei die Braite in Pixeln und die Höhe in Werten der y Achse ist
+        __declspec( dllexport ) const Punkt &getGGröße() const;
+        // Gibt die Farbe des Gitters in A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getGFarbe() const;
+        // Gibt den Index eines Graphen zurück
+        //  name: Der Name des Graphen
+        __declspec( dllexport ) int getLinienNummer( const char *name ) const;
+        // Gibt den Index eines Graphen zurück
+        //  name: Der Name des Graphen
         __declspec( dllexport ) int getLinienNummer( Text *name ) const;
-        __declspec( dllexport ) Text *getLinienName( int lNum ) const; // gibt den Linien Namen zurück
+        // Gibt den Namen eines Graphen zurück
+        //  lNum: Der Index des Graphen
+        __declspec( dllexport ) Text *getLinienName( int lNum ) const;
+        // Gibt den Namen eines Graphen ohne erhöhten Reference Counter zurück
+        //  lNum: Der Index des Graphen
         __declspec( dllexport ) Text *zLinienNamen( int lNum ) const;
-        __declspec( dllexport ) int getHöchstValue() const; // gibt den Höchsten Wert zurück
+        // Gibt den Höchsten y Wert von allen Graphen zurück
+        __declspec( dllexport ) int getHöchstValue() const;
+        // Gibt den Höchsten y Wert von einem Bestimmten Graphen zurück
+        //  lNum: Der Index des Graphen
         __declspec( dllexport ) int getHöchstValue( int lNum ) const;
-        __declspec( dllexport ) int getMedian( int lNum ) const; // gibt den durchschnittswert zurück
-        __declspec( dllexport ) int getLAnzahl() const; // gibt die Linien Anzahl zurück
-        __declspec( dllexport ) int getLastValue( int lNum ) const; // gibt den letzten Wert zurück
-        // Reference Counting 
+        // Gibt den Durchschnittswert aller im Diagramm gespeicherten Punkten eines Graphen zurück
+        //  lNum: Der Index des Graphen
+        __declspec( dllexport ) int getMedian( int lNum ) const;
+        // Gibt die Anzahl an Graphen zurück
+        __declspec( dllexport ) int getLAnzahl() const;
+        // Gibt den y Wert des letzten Punktes eines Graphen zurück
+        //  lNum: Der Index des Graphen
+        __declspec( dllexport ) int getLastValue( int lNum ) const;
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
         __declspec( dllexport ) SLDiag *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
         __declspec( dllexport ) SLDiag *release();
     };
 
@@ -88,11 +131,11 @@ namespace Framework
         class Style
         {
         public:
-            const static int Sichtbar = 0x01;
-            const static int Alpha = 0x02;
-            const static int Hintergrund = 0x04;
-            const static int HAlpha = 0x08;
-            const static int Name = 0x10;
+            const static int Sichtbar = 0x01; // Legt fest, ob der Wert angezeigt werden soll
+            const static int Alpha = 0x02; // Legt fest, ob beim zeichnen des Wertes Alphablending verwendet werden soll
+            const static int Hintergrund = 0x04; // Legt fest, ob der Wert einen Hintergrund hat
+            const static int HAlpha = 0x08; // Legt fest, ob beim zeichnen des Hintergrundes Alphablending verwendet werden soll
+            const static int Name = 0x10; // Legt fest, ob der Name des Wertes gezeichnet werden soll
         };
         // Style des Wertes
         int style;
@@ -109,8 +152,11 @@ namespace Framework
         __declspec( dllexport ) DiagWert();
         // Destruktor
         __declspec( dllexport ) ~DiagWert();
-        // Referenc Counting
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
         __declspec( dllexport ) DiagWert *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
         __declspec( dllexport ) DiagWert *release();
 
     private:
@@ -124,22 +170,22 @@ namespace Framework
         class Style
         {
         public:
-            const static int Sichtbar = 0x0001;
-            const static int Raster = 0x0002;
-            const static int RasterAlpha = 0x0004;
-            const static int AutoIntervallHöhe = 0x0008;
-            const static int AutoIntervallBreite = 0x0010;
-            const static int HIntervall = 0x0020;
-            const static int VIntervall = 0x0040;
-            const static int HIntervallTexte = 0x0200;
-            const static int VIntervallTexte = 0x0400;
-            const static int AutoRasterBreite = 0x0800;
-            const static int AutoRasterHöhe = 0x1000;
+            const static int Sichtbar = 0x0001; // Legt Fest, ob die Daten sichtbar sein sollen
+            const static int Raster = 0x0002; // Legt fest, ob ein Raster zur Orientierung angezeigt werden soll
+            const static int RasterAlpha = 0x0004; // Legt fest, ob zum Zeichnen des Rasters Alphablending verwendet werden soll
+            const static int AutoIntervallHöhe = 0x0008; // Legt fest, dass alle Werte automatisch so auf der y Achse Skalliert werden, dass immer die komplette Höhe des Diagramms genutzt wird
+            const static int AutoIntervallBreite = 0x0010; // Legt fest, dass alle Wert automatisch so auf der x Achse Skalliert werden, dass immer die komplette Breite des Diagramms genutzt wird
+            const static int HIntervall = 0x0020; // Legt fest, ob die X Achse gezeichnet werden soll
+            const static int VIntervall = 0x0040; // Legt fest, ob die Y Achse gezeichnet werden soll
+            const static int HIntervallTexte = 0x0200; // Legt fest, ob spezielle Texte für die Werte der X Achse gezeichnet werden sollen
+            const static int VIntervallTexte = 0x0400; // Left fest, ob spezielle Texte für die Werte der Y Achse gezeichnet werden sollen
+            const static int AutoRasterBreite = 0x0800; // Legt fest, ob der Abstand zwischen den Vertikalen Linien des Rasters automatisch gewählt werden soll
+            const static int AutoRasterHöhe = 0x1000; // Legt fest, ob der Abstand zwischen den Horizontalen Rasterlinien automatisch gewählt werden soll
 
-            const static int intervalle = 0x0060;
-            const static int intervallTexte = 0x0600;
-            const static int autoRaster = 0x1802;
-            const static int autoIntervall = 0x0018;
+            const static int intervalle = HIntervall | VIntervall; // Vereiniegt die Flags HIntervall, VIntervall
+            const static int intervallTexte = HIntervallTexte | VIntervallTexte; // Vereint die Flags HIntervallTexte, VIntervallTexte
+            const static int autoRaster = AutoRasterHöhe | AutoRasterBreite | Raster; // Vereint die Flags AutoRasterHöhe, AutoRasterBreite, Raster
+            const static int autoIntervall = AutoIntervallHöhe | AutoIntervallBreite; // Vereint die Flags AutoIntervallHöhe, AutoIntervallBreite
         };
         // Style eines Diagramms
         int style;
@@ -178,8 +224,11 @@ namespace Framework
         __declspec( dllexport ) DiagDaten();
         // Destruktor
         __declspec( dllexport ) ~DiagDaten();
-        // Referenc Counting
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
         __declspec( dllexport ) DiagDaten *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
         __declspec( dllexport ) DiagDaten *release();
 
     private:
@@ -198,129 +247,270 @@ namespace Framework
 
     public:
         // Konstruktor
+        //  lock: Ein Zeiger zur CRITICAL_SECTION, mit der die Diagramm Klasse, die von dieser Klasse erbt Multithread sicher gemacht wird
         __declspec( dllexport ) BaseDiag( CRITICAL_SECTION *lock );
         // Destruktor
         __declspec( dllexport ) ~BaseDiag();
-        // nicht constant
         // Setzt einen Zeiger auf die Daten des Diagramms
+        //  dd: Die Daten
         __declspec( dllexport ) void setDiagDatenZ( DiagDaten *dd );
         // Kopiert die Daten eines Diagramms
+        //  dd: Die Daten
         __declspec( dllexport ) void setDiagDaten( DiagDaten *dd );
         // Rasterdicke setzen
+        //  d: Die Breite einer Rasterlinie in Pixeln
         __declspec( dllexport ) void setRasterDicke( int d );
         // Rasterbreite setzen
+        //  br: Der Abstand zwischen zwei Vertikalen Rasterlinien in Pixeln
         __declspec( dllexport ) void setRasterBreite( int br );
         // Rasterhöhe setzen
+        //  hö: Der Abstand zwischen zwei Horizontalen Rasterlinien in Pixeln
         __declspec( dllexport ) void setRasterHöhe( int hö );
         // Rasterfarbe setzen
+        //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setRasterFarbe( int f );
-        // Intervall Breite
+        // Setzt die Intervall Breite
+        //  br: Der Abstand zwischen den Werten 0 und 1 auf der X Achse in Pixeln
         __declspec( dllexport ) void setHIntervallBreite( double br );
-        // Intervall Höhe
+        // Setzt die Intervall Höhe
+        //  hö: Der Abstand zwischen den Werten 0 und 1 auf der Y Achse in Pixeln
         __declspec( dllexport ) void setVIntervallHöhe( double hö );
-        // Farbe des Horizontalen Intervalls
+        // Setzt die Farbe der X Achse
+        //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setHIntervallFarbe( int f );
-        // Farbe des Vertikalen Intervalls
+        // Setzt die Farbe der Y Achse
+        //  f: Die Farbe im A8R8G8B8 Formats
         __declspec( dllexport ) void setVIntervallFarbe( int f );
-        // Setzt den Namen des Horizontalen Intervalls
+        // Setzt den Namen der X Achse
+        //  name: Der Name
         __declspec( dllexport ) void setHIntervallName( char *name );
+        // Setzt den Namen der X Achse
+        //  name: Der Name
         __declspec( dllexport ) void setHIntervallName( Text *name );
-        // Setzt den Namen des Vertikalen Intervalls
+        // Setzt den Namen der Y Achse
+        //  name: Der Name
         __declspec( dllexport ) void setVIntervallName( char *name );
+        // Setzt den Namen der Y Achse
+        //  name: Der Name
         __declspec( dllexport ) void setVIntervallName( Text *name );
-        // Text eines Horizontalen Intervalls hinzufügen
+        // Beschriftet einen Betimmten Wert der X Achse, falls der Flag HIntervallTexte in den DiagDaten gesetzt wurde
+        //  hIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void addHIntervallText( double hIntervall, char *text );
+        // Beschriftet einen Betimmten Wert der X Achse, falls der Flag HIntervallTexte in den DiagDaten gesetzt wurde
+        //  hIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void addHIntervallText( double hIntervall, Text *text );
-        // Setzt den Text eines Horizontalen Intervalls
+        // setzt den Zeiger auf eine Beschriftung in einen Betimmten Wert der X Achse, falls der Flag HIntervallTexte in den DiagDaten gesetzt wurde
+        //  hIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void setHIntervallTextZ( double hIntervall, Text *text );
+        // Ändert eine Beschriftung in einen Betimmten Wert der X Achse, falls der Flag HIntervallTexte in den DiagDaten gesetzt wurde
+        //  hIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void setHIntervallText( double hIntervall, Text *text );
+        // Ändert eine Beschriftung in einen Betimmten Wert der X Achse, falls der Flag HIntervallTexte in den DiagDaten gesetzt wurde
+        //  hIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void setHIntervallText( double hIntervall, char *text );
-        // Text eines Horizontalen Intervalls entfernen
+        // Entfernt eine Beschriftung in einen Betimmten Wert der X Achse, falls der Flag HIntervallTexte in den DiagDaten gesetzt wurde
+        //  hIntervall: Der Wert, der nicht mehr beschriftet sein soll
         __declspec( dllexport ) void löscheHIntervallText( double hIntervall );
-        // Text eines Vertikalen Intervalls hinzufügen
+        // Beschriftet einen Betimmten Wert der Y Achse, falls der Flag VIntervallTexte in den DiagDaten gesetzt wurde
+        //  vIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void addVIntervallText( double vIntervall, char *text );
+        // Beschriftet einen Betimmten Wert der Y Achse, falls der Flag VIntervallTexte in den DiagDaten gesetzt wurde
+        //  vIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void addVIntervallText( double vIntervall, Text *text );
-        // Setzt den Text eines Vertikalen Intervalls
+        // setzt den Zeiger auf eine Beschriftung in einen Betimmten Wert der Y Achse, falls der Flag VIntervallTexte in den DiagDaten gesetzt wurde
+        //  vIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void setVIntervallTextZ( double vIntervall, Text *text );
+        // Ändert eine Beschriftung in einen Betimmten Wert der Y Achse, falls der Flag VIntervallTexte in den DiagDaten gesetzt wurde
+        //  vIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void setVIntervallText( double vIntervall, Text *text );
+        // Ändert eine Beschriftung in einen Betimmten Wert der Y Achse, falls der Flag VIntervallTexte in den DiagDaten gesetzt wurde
+        //  vIntervall: Der Wert, der beschriftet werden soll
+        //  text: Die Beschriftung
         __declspec( dllexport ) void setVIntervallText( double vIntervall, char *text );
-        // Text eines Vertikalen Intervalls entfernen
+        // Entfernt eine Beschriftung in einen Betimmten Wert der Y Achse, falls der Flag VIntervallTexte in den DiagDaten gesetzt wurde
+        //  vIntervall: Der Wert, der nicht mehr beschriftet sein soll
         __declspec( dllexport ) void löscheVIntervallText( double vIntervall );
-        // Fügt einen Wert hinzu
+        // Fügt einen im Diagramm dargestellten Wert (Graph) hinzu
+        //  w: Der neue Wert
         __declspec( dllexport ) void addWertZ( DiagWert *w );
+        // Fügt einen im Diagramm dargestellten Wert (Graph) hinzu, indem ein anderer Kopiert wird
+        //  w: Der Wert, der Kopiert werden soll
         __declspec( dllexport ) void addWert( DiagWert *w );
+        // Fügt einen im Diagramm dargestellten Wert (Graph) hinzu
+        //  name: Der Name des Wertes
         __declspec( dllexport ) void addWert( const char *name );
+        // Fügt einen im Diagramm dargestellten Wert (Graph) hinzu
+        //  name: Der Name des Wertes
         __declspec( dllexport ) void addWert( Text *txt );
         // setzt die Farbe eines Wertes
+        //  wNum: Der Index des Wertes
+        //  fc: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setWertFarbe( int wNum, int fc );
         // fügt einem Wert einen Punkt hinzu
+        //  wNum: Der Index des Wertes
+        //  p: Der neue Punkt
         __declspec( dllexport ) void addPunktZ( int wNum, DiagPunkt *p );
+        // fügt einem Wert einen Punkt hinzu, indem ein Punkt kopiert wird
+        //  wNum: Der Index des Wertes
+        //  p: Der Punkt, der kopiert werden soll
         __declspec( dllexport ) void addPunkt( int wNum, DiagPunkt *p );
+        // Fügt einem Wert einen Punkt hinzu
+        //  wNum: Der Index des Wertes
+        //  hI: Der Wert des Punktes auf der X Achse
+        //  vI: Der Wert des Punktes auf der Y Achse
         __declspec( dllexport ) void addPunkt( int wNum, double hI, double vI );
-        // Ändert einen vorhandenen Punkt eines Wertes
+        // Setzt einen Zeiger auf einen vorhandenen Punkt eines Wertes
+        //  wNum: Der Index des Wertes
+        //  hI: Der Wert des Punktes auf der X Achse, der ersetzt werden soll
+        //  p: Der neue Punkt
         __declspec( dllexport ) void setPunktZ( int wNum, double hI, DiagPunkt *p );
+        // Setzt einen vorhandenen Punkt eines Wertes, indem ein Punkt kopiert wird
+        //  wNum: Der Index des Wertes
+        //  hI: Der Wert des Punktes auf der X Achse, der ersetzt werden soll
+        //  p: Der neue Punkt
         __declspec( dllexport ) void setPunkt( int wNum, double hI, DiagPunkt *p );
+        // Setzt einen vorhandenen Punkt eines Wertes
+        //  wNum: Der Index des Wertes
+        //  hI: Der Wert des Punktes auf der X Achse, der ersetzt werden soll
+        //  h: Der Wert auf der X Achse des neuen Punktes
+        //  v: Der Wert auf der Y Achse des neuen Punktes
         __declspec( dllexport ) void setPunkt( int wNum, double hI, double h, double v );
+        // Setzt einen Zeiger auf einen vorhandenen Punkt eines Wertes
+        //  wNum: Der Index des Wertes
+        //  pNum: Der Index des Punktes im Wert
+        //  p: Der neue Punkt
         __declspec( dllexport ) void setPunktZ( int wNum, int pNum, DiagPunkt *p );
+        // Setzt einen vorhandenen Punkt eines Wertes, indem ein Punkt kopiert wird
+        //  wNum: Der Index des Wertes
+        //  pNum: Der Index des Punktes im Wert
+        //  p: Der neue Punkt
         __declspec( dllexport ) void setPunkt( int wNum, int pNum, DiagPunkt *p );
+        // Setzt einen vorhandenen Punkt eines Wertes
+        //  wNum: Der Index des Wertes
+        //  pNum: Der Index des Punktes im Wert
+        //  h: Der Wert auf der X Achse des neuen Punktes
+        //  v: Der Wert auf der Y Achse des neuen Punktes
         __declspec( dllexport ) void setPunkt( int wNum, int pNum, double h, double v );
         // Löscht einen vorhandenen Punkt
+        //  wNum: Der Index des Wertes
+        //  hI: Der Wert auf der X Achse des Punktes, der gelöscht werden soll
         __declspec( dllexport ) void löschePunkt( int wNum, double hI );
+        // Löscht einen vorhandenen Punkt
+        //  wNum: Der Index des Wertes
+        //  pNum: Der Index des Punktes im Wert
         __declspec( dllexport ) void löschePunkt( int wNum, int pNum );
         // entfernt einen Wert
+        //  wNum: Der Index des Wertes
         __declspec( dllexport ) void removeWert( int wNum );
+        // entfernt einen Wert
+        //  name: Der Name des Wertes
         __declspec( dllexport ) void removeWert( char *name );
+        // entfernt einen Wert
+        //  name: Der Name des Wertes
         __declspec( dllexport ) void removeWert( Text *name );
-        // Setzt den Style der Daten
+        // Fügt den DiagDaten bestimmte Styles hinzu
+        //  style: Die neuen Styles
         __declspec( dllexport ) void addDatenStyle( int style );
+        // Setzt die Styles der DiagDaten
+        //  style: Die neuen Styles
         __declspec( dllexport ) void setDatenStyle( int style );
+        // Setzt die Styles der DiagDaten
+        //  style: Die Styles
+        //  addRemove: 1, falls die Styles hinzugefügt werden sollem. 0, falls die Styles entfernt werden sollen
         __declspec( dllexport ) void setDatenStyle( int style, bool addRemove );
+        // Entfernt Styles der DiagDaten
+        //  style: Die Styles, die entfernt werden sollen
         __declspec( dllexport ) void löscheDatenStyle( int style );
-        // Setzt den Style eines Wertes
+        // Fügt einem bestimmten Wert bestimmte Styles hinzu
+        //  wNum: Der Index des Wertes
+        //  style: Die neuen Styles
         __declspec( dllexport ) void addWertStyle( int wNum, int style );
+        // Setzt die Styles eines Bestimmten Wertes
+        //  wNum: Der Index des Wertes
+        //  style: Die neuen Styles
         __declspec( dllexport ) void setWertStyle( int wNum, int style );
+        // Setzt die Styles eines Bestimmten Wertes
+        //  wNum: Der Index des Wertes
+        //  style: Die Styles
+        //  addRemove: 1, falls die Styles hinzugefügt werden sollem. 0, falls die Styles entfernt werden sollen
         __declspec( dllexport ) void setWertStyle( int wNum, int style, bool addRemove );
+        // Entfernt Styles eines Bestimmten Wertes
+        //  wNum: Der Index des Wertes
+        //  style: Die Styles, die entfernt werden sollen
         __declspec( dllexport ) void löscheWertStyle( int wNum, int style );
-        // constant
         // Gibt die Daten des Diagramms zurück
         __declspec( dllexport ) DiagDaten *getDiagDaten() const;
+        // Gibt die Daten des Diagramms ohne erhöhten Reference Counter zurück
         __declspec( dllexport ) DiagDaten *zDiagDaten() const;
         // Gibt die Daten eines Wertes zurück
+        //  wNum: Der Index des Wertes
         __declspec( dllexport ) DiagWert *getDiagWert( int wNum ) const;
+        // Gibt die Daten eines Wertes ohne erhöhten Reference Counter zurück
+        //  wNum: Der Index des Wertes
         __declspec( dllexport ) DiagWert *zDiagWert( int wNum ) const;
+        // Gibt die Daten eines Wertes zurück
+        //  name: Der Name des Wertes
         __declspec( dllexport ) DiagWert *getDiagWert( char *name ) const;
+        // Gibt die Daten eines Wertes ohne erhöhten Reference Counter zurück
+        //  name: Der Name des Wertes
         __declspec( dllexport ) DiagWert *zDiagWert( char *name ) const;
-        // Gibt die Position eines Wertes zurück
+        // Gibt den Index eines Wertes zurück
+        //  name: Der Name des Wertes
         __declspec( dllexport ) int getDiagWertPos( char *name ) const;
-        // Gibt die Position eines Punktes von einem Wert zurück
+        // Gibt den Index eines Punktes von einem Wert zurück
+        //  wNum: Der Index des Wertes
+        //  hI: Der Wert auf der X Achse des Punktes
         __declspec( dllexport ) int getDiagPunktPos( int wNum, double hI ) const;
+        // Gibt den Index eines Punktes von einem Wert zurück
+        //  wName: Der Name des Wertes
+        //  hI: Der Wert auf der X Achse des Punktes
         __declspec( dllexport ) int getDiagPunktPos( char *wName, double hI ) const;
-        // Prüft den Style der Daten
+        // Prüft, ob bestimmte Styles in den DiagDaten gesetzt wurden
+        //  style: Die Styles
         __declspec( dllexport ) inline bool hatDatenStyle( int style ) const;
+        // Prüft, ob bestimmte Styles in den DiagDaten nicht gesetzt wurden
+        //  style: Die Styles
         __declspec( dllexport ) inline bool hatDatenStyleNicht( int style ) const;
-        // Prüft den Style eines Wertes
+        // Prüft, ob bestimmte Styles für einen bestimmten Wert gesetzt wurden
+        //  wNum: Der Index des Wertes
+        //  style: Die Styles
         __declspec( dllexport ) inline bool hatWertStyle( int wNum, int style ) const;
+        // Prüft, ob bestimmte Styles für einen bestimmten Wert nicht gesetzt wurden
+        //  wNum: Der Index des Wertes
+        //  style: Die Styles
         __declspec( dllexport ) inline bool hatWertStyleNicht( int wNum, int style ) const;
-        // Reference Counting
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
         __declspec( dllexport ) BaseDiag *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
         __declspec( dllexport ) virtual BaseDiag *release();
     };
 
-    // Linien Diagramm
+    // Eine Zeichnung des 2D GUI Frameworks, die die Diagrammdaten als Liniengraphen darstellt
     class LDiag : public ZeichnungHintergrund, public BaseDiag
     {
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            const static __int64 DatenRahmen = 0x0001000;
-            const static __int64 DatenHintergrund = 0x02000;
-            const static __int64 DatenHAlpha = 0x04000;
-            const static __int64 DatenHBild = 0x008000;
-            const static __int64 DatenBuffered = 0x010000;
+            const static __int64 DatenRahmen = 0x0001000; // Legt fest, ob um die daten ein Rahmen gezeichnet wird
+            const static __int64 DatenHintergrund = 0x02000; // legt fest, ob die Daten einen Hintergrund haben
+            const static __int64 DatenHAlpha = 0x04000; // legt fest, ob beim zeichnen des Hintergrunds der Daten alpha blending benutzt wird
+            const static __int64 DatenHBild = 0x008000; // Legt fest, ob für den Hintergrund der Daten ein Bild verwendet werden soll
+            const static __int64 DatenBuffered = 0x010000; // Legt fest, ob die Daten einen Farbübergang haben
 
-            const static __int64 scroll = VScroll | HScroll;
-            const static __int64 normal = Hintergrund | scroll | DatenRahmen;
+            const static __int64 scroll = VScroll | HScroll; // Vereint die Flags VScroll und HScroll
+            const static __int64 normal = Hintergrund | scroll | DatenRahmen; // Vereint die Flags Hintergrund, scroll, DatenRahmen
         };
     private:
         Schrift *schrift;
@@ -337,45 +527,74 @@ namespace Framework
         __declspec( dllexport ) LDiag();
         // Destruktor
         __declspec( dllexport ) ~LDiag();
-        // nicht constant
         // Setzt die Schrift
+        //  schrift: Die Schrift
         __declspec( dllexport ) void setSchriftZ( Schrift *schrift );
+        // Setzt die größe der Schrift
+        //  gr: Die Höhe einer Zeile in Pixeln
         __declspec( dllexport ) void setSchriftGröße( int gr );
-        // Setzt den inneren Rahmen um das eigentliche Diagramm
+        // Setzt den inneren Rahmen um das eigentliche Diagramm (Rahmen um die Daten)
+        //  ram: Der Rahmen
         __declspec( dllexport ) void setDatenRahmenZ( LRahmen *ram );
+        // Setzt den inneren Rahmen um das eigentliche Diagramm (Rahmen um die Daten), indem ein Rahmen kopiert wird
+        //  ram: Der Rahmen, der kopiert werden soll
         __declspec( dllexport ) void setDatenRahmen( LRahmen *ram );
+        // Setzt die Breite des inneren Rahmen um das eigentliche Diagramm (Rahmen um die Daten)
+        //  br: Die Breite in Pixeln
         __declspec( dllexport ) void setDatenRahmenBreite( int br );
+        // Setzt die Farbe des inneren Rahmen um das eigentliche Diagramm (Rahmen um die Daten)
+        //  fc: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setDatenRahmenFarbe( int fc );
         // Setzt den Hintergrund des eigentlichen Diagramms
         __declspec( dllexport ) void setDatenHintergrundFarbe( int fc );
         __declspec( dllexport ) void setDatenHintergrundBildZ( Bild *b );
         __declspec( dllexport ) void setDatenHintergrundBild( Bild *b );
-        // Setzt das AlphaFeld des eigentlichen Diagramms
+        // Setzt den Farbübergang des eigentlichen Diagramms (Farbübergang der Daten)
+        //  af: Der Farbübergang
         __declspec( dllexport ) void setDatenAlphaFeldZ( AlphaFeld *af );
+        // Setzt den Farbübergang des eigentlichen Diagramms (Farbübergang der Daten), indem ein Farbübergang kopiert wird
+        //  af: Der Farbübergang, der Kopiert werden soll
         __declspec( dllexport ) void setDatenAlphaFeld( AlphaFeld *af );
+        // Setzt die Farbe des Farbübergangs des eigentlichen Diagramms (Farbübergang der Daten)
+        //  fc: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setDatenAlphaFeldFarbe( int fc );
+        // Setzt die FaStärkerbe des Farbübergangs des eigentlichen Diagramms (Farbübergang der Daten)
+        //  st: Die Stärke
         __declspec( dllexport ) void setDatenAlphaFeldStärke( int st );
+        // Verarbeitet Maus Nachrichten
+        //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
         __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
+        // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
+        //  zRObj: Das Bild, in welches gezeichnet werden soll
         __declspec( dllexport ) void render( Bild &zRObj ) override;
-        // constant
         // Gibt die Schrift zurück
         __declspec( dllexport ) Schrift *getSchrift() const;
+        // Gibt die Schrift ohne erhöhten Reference Counter zurück
         __declspec( dllexport ) Schrift *zSchrift() const;
-        // Gibt den inneren Rahmen um das eigentliche Diagramm zurück
+        // Gibt den inneren Rahmen um das eigentliche Diagramm zurück (Rahmen um die Daten)
         __declspec( dllexport ) LRahmen *getDatenRahmen() const;
+        // Gibt den inneren Rahmen um das eigentliche Diagramm ohne erhöhten Reference Counter zurück (Rahmen um die Daten)
         __declspec( dllexport ) LRahmen *zDatenRahmen() const;
+        // Gibt die Farbe des inneren Rahmens um das eigentliche Diagramm im A8R8G8B8 Format zurück (Rahmen um die Daten)
         __declspec( dllexport ) int getDatenRahmenFarbe() const;
+        // Gibt die Breite des inneren Rahmens um das eigentliche Diagramm in Pixeln zurück (Rahmen um die Daten)
         __declspec( dllexport ) int getDatenRahmenBreite() const;
-        // Gibt den Hintergrund des eigentlichen Diagramms zurück
+        // Gibt die Farbe des Hintergrunds des eigentlichen Diagramms im A8R8G8B8 Format zurück (Hintergrund der Daten)
         __declspec( dllexport ) int getDatenHintergrundFarbe() const;
+        // Gibt das Hintergrund Bild des eigentlichen Diagramms zurück (Hintergrund Bild der Daten)
         __declspec( dllexport ) Bild *getDatenHintergrundBild() const;
+        // Gibt das Hintergrund Bild des eigentlichen Diagramms ohne erhöhten Reference Counter zurück (Hintergrund Bild der Daten)
         __declspec( dllexport ) Bild *zDatenHintergrundBild() const;
-        // Gibt das AlphaFeld des eigentlichen Diagramms zurück
+        // Gibt den Farbübergang des eigentlichen Diagramms zurück (Farbübergang der Daten)
         __declspec( dllexport ) AlphaFeld *getDatenAlphaFeld() const;
+        // Gibt den Farbübergang des eigentlichen Diagramms ohne erhöhten Reference Counter zurück (Farbübergang der Daten)
         __declspec( dllexport ) AlphaFeld *zDatenAlphaFeld() const;
+        // Gibt die Farbe des Farbübergangs des eigentlichen Diagramms im A8R8G8B8 Format zurück (Farbübergang der Daten)
         __declspec( dllexport ) int getDatenAlphaFeldFarbe() const;
+        // Gibt die Stärke des Farbübergangs des eigentlichen Diagramms zurück (Farbübergang der Daten)
         __declspec( dllexport ) int getDatenAlphaFeldStärke() const;
-        // Reference Counting
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
         __declspec( dllexport ) BaseDiag *release() override;
     };
 }

+ 6 - 9
Fenster.cpp

@@ -438,8 +438,8 @@ WFenster::~WFenster()
 	{
 		WFensterA.del();
 	}
-	if( hWnd )
-		DestroyWindow( hWnd );
+    if( hWnd )
+        zerstören();
 	if( screen )
 		screen->release();
 }
@@ -588,12 +588,16 @@ void WFenster::setBildschirm( Bildschirm *screen )
 void WFenster::zerstören()
 {
 	DestroyWindow( hWnd );
+    hWnd = 0;
 	if( rahmen )
 		DestroyWindow( rahmen );
+    rahmen = 0;
 	if( bitmap )
 		DeleteObject( bitmap );
+    bitmap = 0;
 	if( hdc )
 		DeleteDC( hdc );
+    hdc = 0;
 }
 
 void WFenster::doMausAktion( MausEreignis &me )
@@ -838,13 +842,6 @@ Punkt WFenster::getPosition() const // gibt die Position zur
 	return{ r.left, r.top };
 }
 
-Punkt WFenster::getKörperPosition() const // gibt die Fenster Körperposition zurück
-{
-	RECT r;
-	GetClientRect( hWnd, &r ); // Position herausfinden
-	return{ r.left, r.top };
-}
-
 Punkt WFenster::getGröße() const // gibt die Größe zurück
 {
 	RECT r;

+ 566 - 333
Fenster.h

@@ -5,353 +5,586 @@
 
 namespace Framework
 {
-	class VScrollBar; // Scroll.h
-	class HScrollBar; // Scroll.h
-	class TextFeld; // TextFeld.h
-	class LRahmen; // Rahmen.h
-	class Bildschirm; // Bildschirm.h
-	class AlphaFeld; // AlphaFeld.h
-	class Schrift; // Schrift.h
-	class Text; // Text.h
-	class Bild; // Bild.h
-	class WFenster; // aus dieser Datei
-	class WFensterArray; // aus dieser Datei
-	class Fenster; // aus dieser Datei
+    class VScrollBar; // Scroll.h
+    class HScrollBar; // Scroll.h
+    class TextFeld; // TextFeld.h
+    class LRahmen; // Rahmen.h
+    class Bildschirm; // Bildschirm.h
+    class AlphaFeld; // AlphaFeld.h
+    class Schrift; // Schrift.h
+    class Text; // Text.h
+    class Bild; // Bild.h
+    class WFenster; // aus dieser Datei
+    class WFensterArray; // aus dieser Datei
+    class Fenster; // aus dieser Datei
 
-	// Erzeugen einer normalen Fensterklasse
-	__declspec( dllexport ) WNDCLASS F_Normal( HINSTANCE hInst );
-	__declspec( dllexport ) WNDCLASSEX F_NormalEx( HINSTANCE hInst );
+    // Erzeugt eine normale Fensterklasse der Windows API
+    //  hInst: Die HINSTANCE des Programms (Wird vom Framework an die Start funktion in der Startparam Struktur übergeben)
+    __declspec( dllexport ) WNDCLASS F_Normal( HINSTANCE hInst );
+    // Erzeugt eine normale Fensterklasse der Windows API
+    //  hInst: Die HINSTANCE des Programms (Wird vom Framework an die Start funktion in der Startparam Struktur übergeben)
+    __declspec( dllexport ) WNDCLASSEX F_NormalEx( HINSTANCE hInst );
+    // Funktion des Frameworks, die alle Nachichten von Windows oder anderen Prozessen verarbeitet
+    __declspec( dllexport ) LRESULT CALLBACK WindowProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam );
+    // Startet eine Schleife, die die Benutzereingaben verarbeitet. Die Schleife läuft, bis irgendwo im Programm StopNachrichtenSchleife aufgerufen wird
+    __declspec( dllexport ) void StartNachrichtenSchleife();
+    // Stoppt die Ausführung der Nachrichten Schleife des Frameworks.
+    //  hwnd: Ein Handle auf ein beliebiges Fenster des Frameworks, das Nachrichten empfangen kann. Wird benötigt, um eine Nachricht zu senden, damit die funktion StartNachrichtenSchleife nicht mehr wartet und sofort beendet wird
+    __declspec( dllexport ) void StopNachrichtenSchleife( HWND hwnd );
+    // Übersetzt einen Keycode, der von Windows gesendet wurde in den Buchstaben der gedrückten Taste
+    __declspec( dllexport ) unsigned char VirtualZuChar( int Virtual );
 
-	__declspec( dllexport ) LRESULT CALLBACK WindowProc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam );
-	__declspec( dllexport ) void StartNachrichtenSchleife();
-	__declspec( dllexport ) void StopNachrichtenSchleife( HWND hwnd );
+    // Klasse für ein Fenster der Windows API
+    class WFenster
+    {
+    private:
+        HWND hWnd; // Handel zum Fenster
+        int style;
+        void *makParam;
+        void *sakParam;
+        void *takParam;
+        bool( *MausAktion )( void *, void *, MausEreignis );
+        void( *VSchließAktion )( void *, void * );
+        void( *NSchließAktion )( void *, void * );
+        bool( *TastaturAktion )( void *, void *, TastaturEreignis );
+        Bildschirm *screen;
+        int mx, my;
+        bool verschiebbar;
+        int ref;
+        HWND rahmen;
+        HBITMAP bitmap;
+        HDC hdc;
 
-	__declspec( dllexport ) unsigned char VirtualZuChar( int Virtual );
-	// Klasse für ein Fenster in Windows
-	class WFenster
-	{
-	private:
-		HWND hWnd; // Handel zum Fenster
-		int style;
-		void *makParam;
-		void *sakParam;
-		void *takParam;
-		bool( *MausAktion )( void *, void *, MausEreignis );
-		void( *VSchließAktion )( void *, void * );
-		void( *NSchließAktion )( void *, void * );
-		bool( *TastaturAktion )( void *, void *, TastaturEreignis );
-		Bildschirm *screen;
-		int mx, my;
-		bool verschiebbar;
-		int ref;
-		HWND rahmen;
-		HBITMAP bitmap;
-		HDC hdc;
-
-	public:
-		//--Konstruktor--
-		__declspec( dllexport ) WFenster();
-		__declspec( dllexport ) WFenster( HWND hWnd );
-		//--Destruktor--
-		__declspec( dllexport ) ~WFenster();
-		// nicht constant
-		__declspec( dllexport ) void erstellen( int style, WNDCLASS wc ); // Das Fenster Erstellen
-		__declspec( dllexport ) void erstellenEx( int exStyle, int style, WNDCLASSEX wc ); // Das Fenster Erstellen
-		__declspec( dllexport ) void setAnzeigeModus( int mod ); // Zeigt das Fenster im übergebenen Modus an
-		__declspec( dllexport ) bool setFokus(); // Setzt den Fokus auf das Fenster
-		__declspec( dllexport ) void setPosition( Punkt &pos ); // Bildschirmposition des Fensters setzen
-		__declspec( dllexport ) void setGröße( Punkt &größe ); // Die größe des Fensters setzen
-		__declspec( dllexport ) void setGröße( int breite, int höhe );
-		__declspec( dllexport ) void setBounds( Punkt &pos, Punkt &größe ); // Größe und Porition in einem
-		__declspec( dllexport ) void setBildschirm( Bildschirm *screen );
-		__declspec( dllexport ) void zerstören(); // Zerstört das Fenster
-		__declspec( dllexport ) void doMausAktion( MausEreignis &me ); // ruft MausAktion auf
-		__declspec( dllexport ) void doVSchließAktion(); // ruft VSchließAktion auf
-		__declspec( dllexport ) void doNSchließAktion(); // ruft NSchließAktion auf
-		__declspec( dllexport ) void doTastaturAktion( TastaturEreignis &et ); // ruft TastaturAktion auf
-		__declspec( dllexport ) void doRestoreMessage(); // macht den Rahmen sichtbar
-		__declspec( dllexport ) void setMausEreignisParameter( void *p ); // setzt den Parameter vom Maus Ereignis
-		__declspec( dllexport ) void setSchließEreignisParameter( void *p ); // setzt den Parameter vom Schließ Ereignis
-		__declspec( dllexport ) void setTastaturEreignisParameter( void *p ); // setzt den Parameter vom Tastatur Ereignis
-		__declspec( dllexport ) void setMausAktion( bool( *MausAk )( void *, void *, MausEreignis ) ); // setzt das MausEreignis
-		__declspec( dllexport ) void setVSchließAktion( void( *vSchließAk )( void *, void * ) ); // setzt v schließ Aktion
-		__declspec( dllexport ) void setNSchließAktion( void( *nSchließAk )( void *, void * ) ); // setzt n schließ Aktion
-		__declspec( dllexport ) void setTastaturAktion( bool( *TastaturAk )( void *, void *, TastaturEreignis ) ); // setzt das TastaturEreignis
-		__declspec( dllexport ) void setFensterHandle( HWND hWnd ); // setzt das operationsfenster
-		__declspec( dllexport ) void setVerschiebbar( bool verschiebbar ); // legt fest, ob das Fenster durch ziehen mit Maus verschoben werden kann
-		__declspec( dllexport ) void ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ); // setzt einen Transpatenten Rahmen um das Fenster
-		// constant
-		__declspec( dllexport ) HWND getFensterHandle() const; // gibt das Fenster Handle zurück
-		__declspec( dllexport ) Punkt getPosition() const; // gibt die Fensterposition zurück
-		__declspec( dllexport ) Punkt getKörperPosition() const; // gibt die Fenster Körperposition zurück
-		__declspec( dllexport ) Punkt getGröße() const; // gibt die Fenstergröße zurück
-		__declspec( dllexport ) Punkt getKörperGröße() const; // gibt die Fenster Körpergröße zurück
-		__declspec( dllexport ) int getKörperBreite() const; // gibt die Fenster Körperbreite zurück
-		__declspec( dllexport ) int getKörperHöhe() const; // gibt die Fenster Körperhöhe zurück
-		__declspec( dllexport ) bool hatMausAktion() const; // Prüft, ob eine Aktion bei MausEreignis festgelegt wurde
-		__declspec( dllexport ) bool hatVSchließAktion() const; // Prüft, ob eine Aktion vor Fensterschließen festgelegt wurde
-		__declspec( dllexport ) bool hatNSchließAktion() const; // Prüft, ob eine Aktion nach Fensterschließen festgelegt wurde
-		__declspec( dllexport ) bool hatTastaturAktion() const; // Prüft, ob eine Aktion bei TastaturEreignis festgelegt wurde
-		__declspec( dllexport ) Bildschirm *getBildschirm() const;
-		__declspec( dllexport ) Bildschirm *zBildschirm() const;
-		__declspec( dllexport ) bool istVerschiebbar() const; // prüft, ob das Fenster durch ziehen mit Maus verschoben werden kann
-		// Reference Counting
-		__declspec( dllexport ) WFenster *getThis();
-		__declspec( dllexport ) WFenster *release();
-	};
+    public:
+        //--Konstruktor--
+        __declspec( dllexport ) WFenster();
+        //--Konstruktor--
+        //  hwnd: Ein Handle zum Fenster, das von dieser Klasse verwaltet werden soll
+        __declspec( dllexport ) WFenster( HWND hWnd );
+        //--Destruktor--
+        __declspec( dllexport ) ~WFenster();
+        // erstellt das Fenster
+        //  style: Der Style des Fensters. Beispiel: WS_OVERLAPPEDWINDOW (Für ein normales Fenster wie man es kennt)
+        //  wc: Die Fensterklasse der Windows API, von der ein Fenster erstellt werden soll. Kann mit der Funktion F_Normal erstellt werden. Es muss lpszClassName gesetzt worden sein.
+        __declspec( dllexport ) void erstellen( int style, WNDCLASS wc );
+        // erstellt das Fenster
+        //  exStyle: Der EX Style des Fensters. Beispiel: WS_EX_OVERLAPPEDWINDOW (Für ein normales Fenster wie man es kennt)
+        //  style: Der Style des Fensters. Beispiel: WS_OVERLAPPEDWINDOW (Für ein normales Fenster wie man es kennt)
+        //  wc: Die Fensterklasse der Windows API, von der ein Fenster erstellt werden soll. Kann mit der Funktion F_Normal erstellt werden. Es muss lpszClassName gesetzt worden sein.
+        __declspec( dllexport ) void erstellenEx( int exStyle, int style, WNDCLASSEX wc );
+        // Setzt den Anzeigemodus des Fensters
+        //  mod: Der Modus. Beispiel: SW_SHOWNORMAL, um das Fenster anzuzeigen und SW_HIDE um es einzuklappen
+        __declspec( dllexport ) void setAnzeigeModus( int mod );
+        // Setzt den Fokus auf das Fenster, so dass Tastatureingaben empfangen werden
+        __declspec( dllexport ) bool setFokus();
+        // Setzt die Position des fensters auf dem Bildschirm
+        //  pos: Die Position in Pixeln
+        __declspec( dllexport ) void setPosition( Punkt &pos );
+        // Setzt die Größe des Fensters auf dem Bildschirm
+        //  größe: Die Größe in Pixeln
+        __declspec( dllexport ) void setGröße( Punkt &größe );
+        // Setzt die Größe des Fensters auf dem Bildschirm
+        //  breite: Die Breite in Pixeln
+        //  höhe: Die Höhe in Pixeln
+        __declspec( dllexport ) void setGröße( int breite, int höhe );
+        // Setzt die Position und die Größe des Fensters
+        //  pos: Die Position in Pixeln
+        //  größe: Die Größe in Pixeln
+        __declspec( dllexport ) void setBounds( Punkt &pos, Punkt &größe );
+        // Setzt das Verwendete Bildschirm Objekt, um Tastatur und Maus Eingaben an die Objekte des Frameworks weiterzugeben. Muss vor dem Zerstören des Fensters mit 0 aufgerufen werden.
+        //  screen: Das Bildschirm Objekt
+        __declspec( dllexport ) void setBildschirm( Bildschirm *screen );
+        // Zerstört das Fenster
+        __declspec( dllexport ) void zerstören();
+        // Verarbeitet Maus Nachrichten. Ruft MausAktion auf und gibt die Ereignisse an den Bildschirm mit den Objekten weiter, wenn MausAktion 1 zurückgibt
+        //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+        __declspec( dllexport ) void doMausAktion( MausEreignis &me );
+        // Ruft die VSchließAktion Rückruffunktion auf
+        __declspec( dllexport ) void doVSchließAktion();
+        // Ruft die NSchließAktion Rückruffunktion auf
+        __declspec( dllexport ) void doNSchließAktion();
+        // Verarbeitet Tastatur Nachrichten. Ruft TastaturAktion auf und gibt die Ereignisse an den Bildschirm mit den Objekten weiter, wenn TastaturAktion 1 zurückgibt
+        //  me: Das Ereignis, was durch die Tastatureingabe ausgelößt wurde
+        __declspec( dllexport ) void doTastaturAktion( TastaturEreignis &et );
+        // Macht den Rahmen des Fensters sichtbar, fals ladeRahmenFenster aufgerufen wurde
+        __declspec( dllexport ) void doRestoreMessage();
+        // setzt den Parameter, der bei einem Maus Ereignis an die Rückruffunktion übergeben wird
+        //  p: Der Parameter
+        __declspec( dllexport ) void setMausEreignisParameter( void *p );
+        // setzt den Parameter, der beim Schließen an die Rückruffunktion übergeben wird
+        //  p: Der Parameter
+        __declspec( dllexport ) void setSchließEreignisParameter( void *p );
+        // Setzt den Parameter, der bei einem Tastatur Ereignis an die Rückruffunktion übergeben wird
+        //  p: Der Parameter
+        __declspec( dllexport ) void setTastaturEreignisParameter( void *p );
+        // Setzt die Rückruffunktion, die bei einem Maus Ereignis aufgerufen werden soll.
+        // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Maus Ereignis von dem Fenster nicht weiter beachtet
+        // Es kann die Standartfunktion __ret1ME verwendet werden, die in MausEreignis.h definiert ist und immer 1 zurückgibt
+        //  ak: Ein Zeiger auf die Rückruffunktion
+        __declspec( dllexport ) void setMausAktion( bool( *MausAk )( void *, void *, MausEreignis ) );
+        // Setzt die Rückruffunktion, die bei vor dem Schließen aufgerufen werden soll.
+        //  ak: Ein Zeiger auf die Rückruffunktion
+        __declspec( dllexport ) void setVSchließAktion( void( *vSchließAk )( void *, void * ) );
+        // Setzt die Rückruffunktion, die bei nach dem Schließen aufgerufen werden soll.
+        //  ak: Ein Zeiger auf die Rückruffunktion
+        __declspec( dllexport ) void setNSchließAktion( void( *nSchließAk )( void *, void * ) );
+        // Setzt die Rückruffunktion, die bei einem Tastatur Ereignis aufgerufen werdne soll.
+        // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Tastatur Ereignis von der Zeichnung nicht weiter beachtet
+        // Es kann die Standartfunktion __ret1TE verwendet werden, die in TastaturEreignis.h definiert ist und immer 1 zurückgibt
+        // Weitere Standartfunktionen sind _nurNummernTE und _nurHexTE ebenfals aus TastaturEreignis.h
+        //  ak: Ein Zeiger auf die Rückruffunktion
+        __declspec( dllexport ) void setTastaturAktion( bool( *TastaturAk )( void *, void *, TastaturEreignis ) );
+        //  Setzt das Handle zum Fenster, das von dieser Klasse verwaltet werden soll
+        //  hwnd: Das Handle
+        __declspec( dllexport ) void setFensterHandle( HWND hWnd );
+        // legt fest, ob das Fenster durch ziehen mit Maus verschoben werden kann
+        //  verschiebbar: 1, wenn das Fenster verschoben werden darf
+        __declspec( dllexport ) void setVerschiebbar( bool verschiebbar );
+        // Setzt einen Transparenten Rahmen um das Fenster
+        //  zBild: Ein Bild, was den Rahmen enthält
+        //  hins: Die HINSTANCE des Programms (Wird vom Framework an die Start funktion in der Startparam Struktur übergeben)
+        __declspec( dllexport ) void ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ); // setzt einen Transpatenten Rahmen um das Fenster
+        // Gibt das Handle des verwalteten Fensters zurück
+        __declspec( dllexport ) HWND getFensterHandle() const;
+        // Gibt die Position des Fensters in Pixeln zurück
+        __declspec( dllexport ) Punkt getPosition() const;
+        // Gibt die Größe des Fensters in Pixeln zurück
+        __declspec( dllexport ) Punkt getGröße() const;
+        // Gibt die Größe des Fensterkörpers in Pixeln zurück
+        __declspec( dllexport ) Punkt getKörperGröße() const;
+        // Gibt die Breite des Fensterkörpers in Pixeln zurück
+        __declspec( dllexport ) int getKörperBreite() const;
+        // Gibt die Höhe des Fensterkörpers in Pixeln zurück
+        __declspec( dllexport ) int getKörperHöhe() const;
+        // Gibt zurück, ob eine Rückruffunktion für ein MausEreignis gesetzt wurde
+        __declspec( dllexport ) bool hatMausAktion() const;
+        // Gibt zurück, ob eine Rückruffunktion für das Ereignis vor dem Schließen des Fensters gesetzt wurde
+        __declspec( dllexport ) bool hatVSchließAktion() const;
+        // Gibt zurück, ob eine Rückruffunktion für das Ereignis nach dem Schließen des Fensters gesetzt wurde
+        __declspec( dllexport ) bool hatNSchließAktion() const;
+        // Gibt zurück, ob eine Rückruffunktion für ein TastaturEreignis gesetzt wurde
+        __declspec( dllexport ) bool hatTastaturAktion() const;
+        // Gibt den Bidschirm zurück, an dessen Zeichnungen die Ereignisse Weitergegeben werden
+        __declspec( dllexport ) Bildschirm *getBildschirm() const;
+        // Gibt den Bildschirm ohne erhöhten Reference Counter zurück, an dessen Zeichnungen die Ereignisse Weitergegeben werden
+        __declspec( dllexport ) Bildschirm *zBildschirm() const;
+        // Gibt zurück, ob das Fenster verschiebbar ist
+        __declspec( dllexport ) bool istVerschiebbar() const;
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
+        __declspec( dllexport ) WFenster *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
+        __declspec( dllexport ) WFenster *release();
+    };
 
-	// Verwaltung der WFenster im Framework
-	class WFensterArray
-	{
-	private:
-		WFensterArray *next;
-		WFenster *This;
+    // Verwaltet alle Windows API Fenster im Framework
+    class WFensterArray
+    {
+    private:
+        WFensterArray *next;
+        WFenster *This;
 
-	public:
-		// Konstruktor 
-		__declspec( dllexport ) WFensterArray();
-		// Destruktor 
-		__declspec( dllexport ) ~WFensterArray();
-		// add und remove 
-		__declspec( dllexport ) bool addFenster( WFenster *fenster );
-		__declspec( dllexport ) bool removeFenster( WFenster *fenster );
-		__declspec( dllexport ) WFensterArray* getNext();
-		__declspec( dllexport ) void setNext0();
-		__declspec( dllexport ) void del();
-		// Messages 
-		__declspec( dllexport ) bool sendVSchließMessage( HWND hWnd );
-		__declspec( dllexport ) bool sendNSchließMessage( HWND hwnd );
-		__declspec( dllexport ) bool sendMausMessage( HWND hWnd, MausEreignis &me );
-		__declspec( dllexport ) bool sendTastaturMessage( HWND hwnd, TastaturEreignis &te );
-		__declspec( dllexport ) bool sendRestoreMessage( HWND hwnd );
-		__declspec( dllexport ) WFenster *getThis();
-	};
+    public:
+        // Konstruktor 
+        __declspec( dllexport ) WFensterArray();
+        // Destruktor 
+        __declspec( dllexport ) ~WFensterArray();
+        // Fügt ein neues Fenster hinzu
+        //  fenster: Das Fenster
+        __declspec( dllexport ) bool addFenster( WFenster *fenster );
+        // Entfernt ein Fenster
+        //  fenster: Das Fenster
+        __declspec( dllexport ) bool removeFenster( WFenster *fenster );
+        // gibt das nächste Element zurück
+        __declspec( dllexport ) WFensterArray* getNext();
+        // Setzt das nächste Element auf 0
+        __declspec( dllexport ) void setNext0();
+        // Löscht das Element
+        __declspec( dllexport ) void del();
+        // Sendet das Ereignis, was vor dem Schließen aufgerufen wird an ein bestimmtes Fenster
+        //  hWnd: Das Handle zum Fenster
+        __declspec( dllexport ) bool sendVSchließMessage( HWND hWnd );
+        // Sendet das Ereignis, was nach dem Schließen aufgerufen wird an ein bestimmtes Fenster
+        //  hWnd: Das Handle zum Fenster
+        __declspec( dllexport ) bool sendNSchließMessage( HWND hwnd );
+        // Sendet ein Maus Ereignis an ein bestimmtes Fenster
+        //  hWnd: Das Handle zum Fenster
+        //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+        __declspec( dllexport ) bool sendMausMessage( HWND hWnd, MausEreignis &me );
+        // Sendet ein Tastatur Ereignis an ein bestimmtes Fenster
+        //  hWnd: Das Handle zum Fenster
+        //  me: Das Ereignis, was durch die Tastatureingabe ausgelößt wurde
+        __declspec( dllexport ) bool sendTastaturMessage( HWND hwnd, TastaturEreignis &te );
+        // Sendet das Ereignis, was durch das öffnen des Fensters ausgelößt wurde an ein bestimmtes Fenster
+        //  hWnd: Das Handle zum Fenster
+        __declspec( dllexport ) bool sendRestoreMessage( HWND hwnd );
+        // Gibt das Fenster dieses Eintrags zurück
+        __declspec( dllexport ) WFenster *getThis();
+    };
 
-	// WMessageBox
-	__declspec( dllexport ) void WMessageBox( HWND hWnd, Text *titel, Text *meldung, UINT style );
+    // Erzeugt ein Windows API Popup Fenster, mit einer Meldung
+    //  hWnd: Ein Handle zu dem Fenster, was blockiert werden soll, bis das Popup Fenster geschlossen wurde. Kann 0 sein
+    //  titel: Der Titel des Popup Fensters
+    //  meldung: Die Meldung, die im Fenster angezeigt werden soll
+    //  style: Bestimmt das Icon, was im Fenster angezeigt wird. Beispiel: MB_ICONERROR, MB_ICONINFORMATION
+    __declspec( dllexport ) void WMessageBox( HWND hWnd, Text *titel, Text *meldung, UINT style );
 
-	// Fenster Klasse im Programm
-	class Fenster : public Zeichnung
-	{
+    // Fenster Klasse im Programm
+    class Fenster : public Zeichnung
+    {
     public:
         class Style : public Zeichnung::Style
         {
         public:
-            const static __int64 KörperHintergrund = 0x000000008;
-            const static __int64 KörperHAlpha = 0x000000010;
-            const static __int64 KörperHBild = 0x000000020;
-            const static __int64 KörperBuffered = 0x000000040;
-            const static __int64 Titel = 0x000000080;
-            const static __int64 TitelHintergrund = 0x000000100;
-            const static __int64 TitelHAlpha = 0x000000200;
-            const static __int64 TitelHBild = 0x000000400;
-            const static __int64 TitelBuffered = 0x000000800;
-            const static __int64 Schließbar = 0x000001000;
-            const static __int64 SchließHintergrund = 0x000002000;
-            const static __int64 SchließHAlpha = 0x000004000;
-            const static __int64 SchließHBild = 0x000008000;
-            const static __int64 SchließBuffer = 0x000010000;
-            const static __int64 SchließKlickBuffer = 0x000020000;
-            const static __int64 Beweglich = 0x000040000;
-            const static __int64 BreiteÄnderbar = 0x000080000;
-            const static __int64 HöheÄnderbar = 0x000100000;
-            const static __int64 TitelHöheÄnderbar = 0x000200000;
-            const static __int64 MinBr = 0x000400000;
-            const static __int64 MaxBr = 0x000800000;
-            const static __int64 MinHö = 0x001000000;
-            const static __int64 MaxHö = 0x002000000;
-            const static __int64 Körper_minBr = 0x004000000;
-            const static __int64 Körper_maxBr = 0x008000000;
-            const static __int64 Körper_minHö = 0x010000000;
-            const static __int64 Körper_maxHö = 0x020000000;
-            const static __int64 VScroll = 0x040000000;
-            const static __int64 HScroll = 0x080000000;
-            const static __int64 METransparenz = 0x100000000;
-            const static __int64 Rahmen = 0x200000000;
+            const static __int64 KörperHintergrund = 0x000000008; // Legt fest, ob der Körper des Fensters einen Hintergrund hat
+            const static __int64 KörperHAlpha = 0x000000010; // Legt fest, ob beim zeichnen des Körperhintergrundes alpha blending verwendet werden soll
+            const static __int64 KörperHBild = 0x000000020; // Legt fest, ob ein Bild als Hintergrund des Körpers verwendet werden soll
+            const static __int64 KörperBuffered = 0x000000040; // Legt fest, ob der Körper einen Farbübergang besitzt
+            const static __int64 Titel = 0x000000080; // Legt fest, ob das Fenster eine Titelleiste hat
+            const static __int64 TitelHintergrund = 0x000000100; // Legt fest, ob die titelleiste des Fensters einen Hintergrund hat
+            const static __int64 TitelHAlpha = 0x000000200; // Legt fest, ob zum zeichnen des Titel Hintergrundes alpha blending verwendet werden soll
+            const static __int64 TitelHBild = 0x000000400; // Legt fest, ob für den Titelhintergrund ein Bild verwendet werden soll
+            const static __int64 TitelBuffered = 0x000000800; // Legt fest, ob die Titel Leiste einen Farbübergang besitzt
+            const static __int64 Schließbar = 0x000001000; // Legt fest, ob in der Titelleiste ein Knopf zum Schließen des Fensters angezeigt werden soll
+            const static __int64 SchließHintergrund = 0x000002000; // Legt fest, ob der Schließen Knopf einen Hintergrund hat
+            const static __int64 SchließHAlpha = 0x000004000; // Legt fest, ob beim Zeichnen des Hintergrunds des Schließen Knopfes alpha blending verwendet werden soll
+            const static __int64 SchließHBild = 0x000008000; // Legt fest, ob für den Hintergrund des Schließen Knopfes ein Bild verwendet werden soll
+            const static __int64 SchließBuffer = 0x000010000; // Legt fest, ob der Schließen Knopf einen Farbübergang besitzt
+            const static __int64 SchließKlickBuffer = 0x000020000; // Legt fest, ob der Schließen Knopf einen Farbübergang besitzt, während er gedrückt wird
+            const static __int64 Beweglich = 0x000040000; // Legt fest, ob der Benutzer das Fenster durch gedrückt halten der linken Maustaste in der Titelleiste das Fenster verschieben kann
+            const static __int64 BreiteÄnderbar = 0x000080000; // Legt fest, ob der Benutzer die Breite des Fensters durch das gedrückt halten der linken Maustaste auf dem rechten oder linken Fensterrand verändern kann
+            const static __int64 HöheÄnderbar = 0x000100000;  // Legt fest, ob der Benutzer die Höhe des Fensters durch das gedrückt halten der linken Maustaste auf dem oberen oder unteren Fensterrand verändern kann
+            const static __int64 TitelHöheÄnderbar = 0x000200000; // Legt fest, ob der Benutzer die Höhe der Titel Leiste durch gedrückt halten der linken Maustaste auf dem unteren Rand der Titelleiste verändern kann
+            const static __int64 MinBr = 0x000400000; // Legt fest, ob es eine Minimale Breite des Fensters gibt
+            const static __int64 MaxBr = 0x000800000; // Legt fest, ob es eine Maximale Breite des Fensters gibt
+            const static __int64 MinHö = 0x001000000; // Legt fest, ob es eine Minimale Höhe des Fensters gibt
+            const static __int64 MaxHö = 0x002000000; // Legt fest, ob es eine Maximale Höhe des Fensters gibt
+            const static __int64 Körper_minBr = 0x004000000; // Legt fest, ob es eine Minimale Breite des Körpers gibt
+            const static __int64 Körper_maxBr = 0x008000000; // Legt fest, ob es eine Maximale Breite des Körpers gibt
+            const static __int64 Körper_minHö = 0x010000000; // Legt fest, ob es eine Minimale Höhe des Körpers gibt
+            const static __int64 Körper_maxHö = 0x020000000; // Legt fest, ob es eine Maximale Höhe des Körpers gibt
+            const static __int64 VScroll = 0x040000000; // Legt fest, ob eine ScrollBar am rechten Fensterrand erscheinen soll
+            const static __int64 HScroll = 0x080000000; // Legt fest, ob eine ScrollBar am unteren Fensterrand erscheinen soll
+            const static __int64 METransparenz = 0x100000000; // Legt fest, ob die Mausereignisse auch noch von Zeichnungen hinter dem Fenster verarbeitet werden sollen
+            const static __int64 Rahmen = 0x200000000; // Legt fest, ob das Fenster einen Rahmen haben soll
 
-            const static __int64 min_max = MinHö | MaxHö | MaxBr | MaxHö;
-            const static __int64 körper_min_max = Körper_minBr | Körper_maxBr | Körper_minHö | Körper_maxBr;
-            const static __int64 scroll = VScroll | HScroll;
-            const static __int64 nichtfixiert = TitelHöheÄnderbar | HöheÄnderbar | BreiteÄnderbar | Beweglich;
+            const static __int64 min_max = MinHö | MaxHö | MaxBr | MaxHö; // Vereint die Flags MinHö, MaxHö, MaxBr, MaxHö
+            const static __int64 körper_min_max = Körper_minBr | Körper_maxBr | Körper_minHö | Körper_maxBr; // Vereint die Flags Körper_minBr, Körper_maxBr, Körper_minHö, Körper_maxBr
+            const static __int64 scroll = VScroll | HScroll; // Vereint die Flags VScroll, HScroll
+            const static __int64 nichtfixiert = TitelHöheÄnderbar | HöheÄnderbar | BreiteÄnderbar | Beweglich; // Vereint die Flags TitelHöheÄnderbar, HöheÄnderbar, BreiteÄnderbar, Beweglich
 
-            const static __int64 normal = Sichtbar | Erlaubt | Rahmen | Titel | TitelBuffered | Schließbar | SchließHBild | SchließKlickBuffer | Beweglich;
+            const static __int64 normal = Sichtbar | Erlaubt | Rahmen | Titel | TitelBuffered | Schließbar | SchließHBild | SchließKlickBuffer | Beweglich; // Vereint die Flags Sichtbar, Erlaubt, Rahmen, Titel, TitelBuffered, Schließbar, SchließHBild, SchließKlickBuffer, Beweglich
         };
-	private:
-		bool( *schließenMe )( void *, void *, MausEreignis );
-		void *schließenMeParam;
-		LRahmen *rahmen;
-		TextFeld *titel;
-		ZeichnungArray *members;
-		int bgKörperFarbe;
-		Bild *bgKörperBild;
-		AlphaFeld *körperBuffer;
-		int bgSchließFarbe;
-		Bild *bgSchließBild;
-		AlphaFeld *schließBuffer;
-		AlphaFeld *schließKlickBuffer;
-		VScrollBar *vScroll;
-		HScrollBar *hScroll;
-		Punkt min, max;
-		Punkt kMin, kMax;
-		bool schließKlick, klick;
-		int mx, my;
-		int ref;
+    private:
+        bool( *schließenMe )( void *, void *, MausEreignis );
+        void *schließenMeParam;
+        LRahmen *rahmen;
+        TextFeld *titel;
+        ZeichnungArray *members;
+        int bgKörperFarbe;
+        Bild *bgKörperBild;
+        AlphaFeld *körperBuffer;
+        int bgSchließFarbe;
+        Bild *bgSchließBild;
+        AlphaFeld *schließBuffer;
+        AlphaFeld *schließKlickBuffer;
+        VScrollBar *vScroll;
+        HScrollBar *hScroll;
+        Punkt min, max;
+        Punkt kMin, kMax;
+        bool schließKlick, klick;
+        int mx, my;
+        int ref;
 
-	public:
-		// Konstruktor 
-		__declspec( dllexport ) Fenster();
-		// Destruktor 
-		__declspec( dllexport ) ~Fenster();
-		// nicht const 
-		// -- Rahmen -- 
-		__declspec( dllexport ) void setRahmenZ( LRahmen *ram ); // setzt den rahmen
-		__declspec( dllexport ) void setRFarbe( int f ); // setzt die Rahmen Farbe
-		__declspec( dllexport ) void setRBreite( int br ); // setzt die Breite des Rahmens
-		// -- Titel -- 
-		__declspec( dllexport ) void setTitel( Text *txt ); // setzt den Titel
-		__declspec( dllexport ) void setTitelZ( Text *txt );
-		__declspec( dllexport ) void setTitel( const char *txt );
-		__declspec( dllexport ) void setTTextFeldZ( TextFeld *tf ); // setzt das Titel TextFeld
-		// -- Schrift -- 
-		__declspec( dllexport ) void setTSchriftZ( Schrift *schrift ); // setzt die Titel Schrift
-		__declspec( dllexport ) void setTSFarbe( int f ); // setzt die Titel Schrift Farbe
-		__declspec( dllexport ) void setTSGröße( int gr ); // setzt die Titel Schrift Größe
-		// -- Titel Hintergrund -- 
-		__declspec( dllexport ) void setTBgFarbe( int f ); // setzt Titel Hintergrund farbe
-		// -- Titel AlphaFeld -- 
-		__declspec( dllexport ) void setTAlphaFeldZ( AlphaFeld *af ); // setzt das Titel AlphaFeld
-		__declspec( dllexport ) void setTAfFarbe( int f ); // setzt die Titel AlphFeld Farbe
-		__declspec( dllexport ) void setTAfStärke( int st ); // setzt die Stärke des Titel AlphaFeldes
-		// -- Titel Hintergrund Bild -- 
-		__declspec( dllexport ) void setTBgBild( Bild *b ); // setzt das Titel Hintergrund Bild
-		__declspec( dllexport ) void setTBgBildZ( Bild *b );
-		// -- Titel Rahmen -- 
-		__declspec( dllexport ) void setTRahmenZ( LRahmen *ram ); // set Titel Rahmen
-		__declspec( dllexport ) void setTRFarbe( int f ); // setzt die Titel Rahmen Farbe
-		__declspec( dllexport ) void setTRBreite( int br ); // setzt die Titel Rahmen Breite
-		// -- Körper Hintergrund -- 
-		__declspec( dllexport ) void setKBgFarbe( int f ); // setzt die Körper Hintergrund Farbe
-		// -- Körper Hintergrund Bild -- 
-		__declspec( dllexport ) void setKBgBild( Bild *b ); // setzt das Körper Hintergrund Bild
-		__declspec( dllexport ) void setKBgBildZ( Bild *b );
-		// -- Körper AlphaFeld -- 
-		__declspec( dllexport ) void setKAlphaFeldZ( AlphaFeld *af ); // setzt das Körper AlphaFeld
-		__declspec( dllexport ) void setKAfFarbe( int f ); // setzt Körper AlphaFeld Farbe
-		__declspec( dllexport ) void setKAfStärke( int st ); // setzt die Stärke des Körper AlphaFeldes
-		// -- Schließen --
-		__declspec( dllexport ) void setSchließenMeParam( void *param );
-		__declspec( dllexport ) void setSchließenMe( bool( *schließenMe )( void *, void *, MausEreignis ) ); // setzt das Schließen Mausereignis
-		// -- Schließen Hintergrund -- 
-		__declspec( dllexport ) void setSBgFarbe( int f ); // setzt die Schließ Hintergrund Farbe
-		// -- Schließen Hintergrund Bild -- 
-		__declspec( dllexport ) void setSBgBild( Bild *b ); // setzt das Schließ Hintergrund Bild
-		__declspec( dllexport ) void setSBgBildZ( Bild *b );
-		// -- Schließen AlphaFeld -- 
-		__declspec( dllexport ) void setSAlphaFeldZ( AlphaFeld *af ); // setzt das Schließ AlphaFeld
-		__declspec( dllexport ) void setSAfFarbe( int f ); // setzt die Farbe des Schließ AlphaFeldes
-		__declspec( dllexport ) void setSAfStärke( int st ); // setzt die Stärke des Schließ AlphaFeldes
-		// -- Schließen Klick AlphaFeld -- 
-		__declspec( dllexport ) void setSKAlphaFeldZ( AlphaFeld *af ); // setzt das Schließ klick AlphaFeld
-		__declspec( dllexport ) void setSKAfFarbe( int f ); // setzt die Farbe des Schließ klick AlphaFeldes
-		__declspec( dllexport ) void setSKAfStärke( int st ); // setzt die Stärke des Schließ klick AlphaFeldes
-		// -- min max -- 
-		__declspec( dllexport ) void setMin( int mx, int my ); // setzt die Mindest Fenster Größe
-		__declspec( dllexport ) void setMin( const Punkt &min );
-		__declspec( dllexport ) void setMax( int mx, int my ); // setzt die Maximale Fenster Größe
-		__declspec( dllexport ) void setMax( const Punkt &max );
-		__declspec( dllexport ) void setKMin( int mx, int my ); // setzt die Mindest Körper Größe
-		__declspec( dllexport ) void setKMin( const Punkt &min );
-		__declspec( dllexport ) void setKMax( int mx, int my ); // setzt die Maximale Körper Größe
-		__declspec( dllexport ) void setKMax( const Punkt &max );
-		// -- scroll -- 
-		__declspec( dllexport ) void setHScrollBarZ( HScrollBar *hScroll ); // setzt die Horizontale Scroll Bar
-		__declspec( dllexport ) void setVScrollBarZ( VScrollBar *vScroll ); // setzt die Vertikale Scroll BAr
-		__declspec( dllexport ) void setHSBMax( int max ); // setzt das Scroll Maximum
-		__declspec( dllexport ) void setVSBMax( int max );
-		__declspec( dllexport ) void setHSBScroll( int scroll ); // setzt die momentane Scroll Position
-		__declspec( dllexport ) void setVSBScroll( int scroll );
-		// -- Members -- 
-		__declspec( dllexport ) void addMember( Zeichnung *zOobj ); // fügt einen Member hinzu
-		__declspec( dllexport ) void removeMember( Zeichnung *zObj ); // entfernt einen Member
-		// -- Messages -- 
-		__declspec( dllexport ) bool tick( double tickval ) override; // tick
-		__declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
-		__declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override;
-		// -- Render -- 
-		__declspec( dllexport ) void render( Bild &zRObj ) override; // zeichent nach zRObj
-		// constant 
-		// -- Rahmen -- 
-		__declspec( dllexport ) LRahmen *getRahmen() const; // gibt den Rahmen zurück
-		__declspec( dllexport ) LRahmen *zRahmen() const;
-		__declspec( dllexport ) int getRFarbe() const; // gibt die Farbe des Rahmens zurück
-		__declspec( dllexport ) int getRBreite() const; // gibt die breite des Rahmens zurück
-		// -- Titel  -- 
-		__declspec( dllexport ) Text *getTitel() const; // gibt den Titel zurück
-		__declspec( dllexport ) Text *zTitel() const;
-		__declspec( dllexport ) TextFeld *getTTextFeld() const; // gibt das Titel TextFeld zurück
-		__declspec( dllexport ) TextFeld *zTTextFeld() const;
-		// -- Titel Schrift -- 
-		__declspec( dllexport ) Schrift *getTSchrift() const; // gibt die Titel Schrift zurück
-		__declspec( dllexport ) Schrift *zTSchrift() const;
-		__declspec( dllexport ) int getTSFarbe() const; // gibt die Titel Schrift Farbe zurück
-		__declspec( dllexport ) int getTSGröße() const; // gibt die Titel Schrift Größe zurück
-		// -- Titel Hintergrund -- 
-		__declspec( dllexport ) int getTBgFarbe() const; // gibt die Titel Hintergrund Farbe zurück
-		// -- Titel AlphaFeld -- 
-		__declspec( dllexport ) AlphaFeld *getTAlphaFeld() const; // gibt das Titel AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zTAlphaFeld() const;
-		__declspec( dllexport ) int getTAfFarbe() const; // gibt die Farbe des Titel AlphaFeldes zurück
-		__declspec( dllexport ) int getTAfStärke() const; // gibt die Stärke des TitelAlphaFeldes zurück
-		// -- Titel Hintergrund Bild -- 
-		__declspec( dllexport ) Bild *getTBgBild() const; // gibt das Titel Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zTBgBild() const;
-		// -- Titel Rahmen -- 
-		__declspec( dllexport ) LRahmen *getTRahmen() const; // gibt den Titel Rahmen zurück
-		__declspec( dllexport ) LRahmen *zTRahmen() const;
-		__declspec( dllexport ) int getTRFarbe() const; // gibt die Farbe des Titel Rahmens zurück
-		__declspec( dllexport ) int getTRBreite() const; // gibt die Breite des Titel Rahmens zurück
-		// -- Körper Hintergrund -- 
-		__declspec( dllexport ) int getKBgFarbe() const; // gibt die Körper Hintergrund Farbe zurück
-		// -- Körper Hintergrund Bild -- 
-		__declspec( dllexport ) Bild *getKBgBild() const; // gibt das Körper Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zKBgBild() const;
-		// -- Körper AlphaFeld -- 
-		__declspec( dllexport ) AlphaFeld *getKAlphaFeld() const; // gibt das Körper AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zKAlphaFeld() const;
-		__declspec( dllexport ) int getKAfFarbe() const; // gibt die Farbe des Körper AlphaFeldes zurück
-		__declspec( dllexport ) int getKAfStärke() const; // gibt die Stärke des Körper AlphaFeldes zurück
-		// -- Schließen Hintergrund -- 
-		__declspec( dllexport ) int getSBgFarbe() const; // gibt die Schließ Hintergrund Farbe zurück
-		// -- Schließen Hintergrund Bild -- 
-		__declspec( dllexport ) Bild *getSBgBild() const; // gibt das Schließ Hintergrund Bild zurück
-		__declspec( dllexport ) Bild *zSBgBild() const;
-		// -- Schließen AlphaFeld -- 
-		__declspec( dllexport ) AlphaFeld *getSAlphaFeld() const; // gibt das Schließ AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zSAlphaFeld() const;
-		__declspec( dllexport ) int getSAfFarbe() const; // gibt die Farbe des Schließ AlphaFeldes zurück
-		__declspec( dllexport ) int getSAfStärke() const; // gibt die Stärke des Schließ AlphaFeldes zurück
-		// -- Schließen Klick AlphaFeld -- 
-		__declspec( dllexport ) AlphaFeld *getSKAlphaFeld() const; // gibt das Schließ Klick AlphaFeld zurück
-		__declspec( dllexport ) AlphaFeld *zSKAlphaFeld() const;
-		__declspec( dllexport ) int getSKAfFarbe() const; // gibt die Farbe des Schließ Klick AlphaFeldes zurück
-		__declspec( dllexport ) int getSKAfStärke() const; // gibt die Stärke des Schließ Klick AlphaFeldes zurück
-		// -- min max -- 
-		__declspec( dllexport ) const Punkt &getMin() const; // gibt die minimale Fenstergröße zurück
-		__declspec( dllexport ) const Punkt &getMax() const; // gibt die maximale Fenstergröße zurück
-		__declspec( dllexport ) const Punkt &getKMin() const; // gibt die minimale Fenstergröße zurück
-		__declspec( dllexport ) const Punkt &getKMax() const; // gibt die maximale Fenstergröße zurück
-		// -- scroll -- 
-		__declspec( dllexport ) VScrollBar *getVScrollBar() const; // gibt die Vertikale Scroll Bar zurück
-		__declspec( dllexport ) VScrollBar *zVScrollBar() const;
-		__declspec( dllexport ) HScrollBar *getHScrollBar() const; // gibt die Horizontale Scroll Bar zurück
-		__declspec( dllexport ) HScrollBar *zHScrollBar() const;
-		// -- Members -- 
-		__declspec( dllexport ) ZeichnungArray *getMembers() const; // gibt die Members zurück
-		// -- Kopie --
-		__declspec( dllexport ) Zeichnung *dublizieren() const override; // Erzeugt eine Kopie des Fensters
-		// Reference Counting 
-		__declspec( dllexport ) Fenster *getThis();
-		__declspec( dllexport ) Fenster *release();
-	};
+    public:
+        // Konstruktor 
+        __declspec( dllexport ) Fenster();
+        // Destruktor 
+        __declspec( dllexport ) ~Fenster();
+        // Setzt einen Zeiger auf den Rahmen des Fensters
+        //  ram: Der Rahmen
+        __declspec( dllexport ) void setRahmenZ( LRahmen *ram );
+        // Setzt die Farbe des Fensterrahmens
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setRFarbe( int f );
+        // Setzt die Breite des Fensterrahmens
+        //  br: Die Breite in Pixeln
+        __declspec( dllexport ) void setRBreite( int br );
+        // Setzt den Titel des Fensters
+        //  txt: Der Text
+        __declspec( dllexport ) void setTitel( Text *txt );
+        // Setzt einen Zeiger auf den Titel Text
+        //  txt: Der neue Text
+        __declspec( dllexport ) void setTitelZ( Text *txt );
+        // Setzt den Titel des Fensters
+        //  txt: Der Textv
+        __declspec( dllexport ) void setTitel( const char *txt );
+        // Setzt einen Zeiger auf das TextFeld, das den Titeltext zeichnet
+        //  tf: Das TextFeld
+        __declspec( dllexport ) void setTTextFeldZ( TextFeld *tf );
+        // Setzt die Schrift, die für den Titel verwendet werden soll
+        //  schrift: Die Schrift
+        __declspec( dllexport ) void setTSchriftZ( Schrift *schrift );
+        // Setzt die Farbe der Schrift, die für den Titel verwendet werden soll
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setTSFarbe( int f );
+        // Setzt die Größe der Schrift, die für den Titel verwendet werden soll
+        //  gr: Die Höhe einer zeile in Pixeln
+        __declspec( dllexport ) void setTSGröße( int gr );
+        // Setzt die Hintergrund Farbe des Titels
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setTBgFarbe( int f );
+        // Setzt einen Zeiger auf den Farbübergang des Titels
+        //  af: Der Farbübergang
+        __declspec( dllexport ) void setTAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe des Farbübergangs des Titels
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setTAfFarbe( int f );
+        // Setzt die Stärke des Farbübergangs des Titels
+        //  st: Die Stärke
+        __declspec( dllexport ) void setTAfStärke( int st );
+        // Setzt das Hintergrund Bild des Titels durch kopieren
+        //  b: Das Bild, was kopiert werden soll
+        __declspec( dllexport ) void setTBgBild( Bild *b );
+        // Setzt einen Zeiger auf das Hintergrund Bild des Titels
+        //  b: Das Bild
+        __declspec( dllexport ) void setTBgBildZ( Bild *b );
+        // Setzt einen Zeiger auf den Rahmen des Titels
+        //  ram: Der Rahmen
+        __declspec( dllexport ) void setTRahmenZ( LRahmen *ram );
+        // Setzt die Farbe des Rahmens des Titels
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setTRFarbe( int f );
+        // Setzt die Breite des Rahmens des Titels
+        //  br: Die Breite in Pixeln
+        __declspec( dllexport ) void setTRBreite( int br );
+        // Setzt die Hintergrundfarbe des Körpers 
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setKBgFarbe( int f );
+        // Setzt das Hintergrund Bild des Körpers durch kopieren
+        //  b: Das Bild, das kopiert werden soll
+        __declspec( dllexport ) void setKBgBild( Bild *b );
+        // Setzt einen Zeiger auf das Hintergrund Bild des Körpers
+        //  b: Das Bild
+        __declspec( dllexport ) void setKBgBildZ( Bild *b );
+        // Setzt einen Zeiger auf den Farbübergang des Körpers
+        //  af: Der Farbübergang
+        __declspec( dllexport ) void setKAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe des Farbübergangs des Körpers
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setKAfFarbe( int f );
+        // Setzt die Stärke des Farbübergangs des Körpers
+        //  st: Die Stärke
+        __declspec( dllexport ) void setKAfStärke( int st );
+        // Setzt den Parameter der Rückruffunktion, die aufgerufen wird, wenn der Schließen Knopf ein MausEreignis erhält
+        //  param: Der Parameter
+        __declspec( dllexport ) void setSchließenMeParam( void *param );
+        // Setzt die Rückruffunktion, die Aufgerufen wird, wenn der Schließen Knopf ein MausEreignis erhält
+        // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Maus Ereignis von der Zeichnung nicht weiter beachtet
+        // Das Fenster wird nicht von selbst geschlossen, sondern sollte in der Rückruffunktion durch den aufruf von löscheStyle( Fenster::Style::Sichtbar ); geschlossen werden
+        //  ak: Ein Zeiger auf die Rückruffunktion
+        __declspec( dllexport ) void setSchließenMe( bool( *schließenMe )( void *, void *, MausEreignis ) );
+        // Setzt die Hintergrund Farbe des Schließen Knopfes
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setSBgFarbe( int f );
+        // Setzt das Hintergrund Bild des Schließen Knopfes durch kopieren
+        //  b: Das Bild, das kopiert werden soll
+        __declspec( dllexport ) void setSBgBild( Bild *b );
+        // Setzt einen Zeiger auf das Hintergrund Bild des Schließen Knopfes
+        //  b: Das Bild
+        __declspec( dllexport ) void setSBgBildZ( Bild *b );
+        // Setzt einen Zeiger auf den Farbübergang des Schließen Knopfes
+        //  af: Der Farbübergang
+        __declspec( dllexport ) void setSAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe des Farbübergangs des Schließen Knopfes
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setSAfFarbe( int f );
+        // Setzt die Stärke des Farbübergangs des Schließen Knopfes
+        //  st: Die Stärke
+        __declspec( dllexport ) void setSAfStärke( int st );
+        // Setzt einen Zeiger auf den Farbübergang, der beim Klicken des Schließen Knopfes verwendet wird
+        //  af: Der Farbübergnag
+        __declspec( dllexport ) void setSKAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe des Farbübergangs, der beim Klicken des Schließen Knopfes verwendet wird
+        //  f: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setSKAfFarbe( int f );
+        // Setzt die Stärke des Farbübergangs, der beim Klicken des Schließen Knopfes verwendet wird
+        //  st: Die Stärke
+        __declspec( dllexport ) void setSKAfStärke( int st );
+        // Setzt die Minimale Größe des Fensters
+        //  mx: Die Minimale Breite in Pixeln
+        //  my: Die Minimale Höhe in Pixeln
+        __declspec( dllexport ) void setMin( int mx, int my );
+        // Setzt die Minimale Größe des Fensters
+        //  min: Die Minimale Breite und Höhe in Pixeln
+        __declspec( dllexport ) void setMin( const Punkt &min );
+        // Setzt die Maximale Größe des Fensters
+        //  mx: Die Maximale Breite in Pixeln
+        //  my: Die Maximale Höhe in Pixeln
+        __declspec( dllexport ) void setMax( int mx, int my );
+        // Setzt die Maximale Größe des Fensters
+        //  min: Die Maximale Breite und Höhe in Pixeln
+        __declspec( dllexport ) void setMax( const Punkt &max );
+        // Setzt die Minimale Größe des Fenster Körpers
+        //  mx: Die Minimale Breite in Pixeln
+        //  my: Die Minimale Höhe in Pixeln
+        __declspec( dllexport ) void setKMin( int mx, int my );
+        // Setzt die Minimale Größe des Fenster Körpers
+        //  min: Die Minimale Breite und Höhe in Pixeln
+        __declspec( dllexport ) void setKMin( const Punkt &min );
+        // Setzt die Maximale Größe des Fenster Körpers
+        //  mx: Die Maximale Breite in Pixeln
+        //  my: Die Maximale Höhe in Pixeln
+        __declspec( dllexport ) void setKMax( int mx, int my );
+        // Setzt die Maximale Größe des Fenster Körpers
+        //  min: Die Maximale Breite und Höhe in Pixeln
+        __declspec( dllexport ) void setKMax( const Punkt &max );
+        // Setzt einen Zeiger auf die Scrollbar am unteren Rand des Fensters
+        //  hScroll: Die Scrollbar
+        __declspec( dllexport ) void setHScrollBarZ( HScrollBar *hScroll );
+        // Setzt einen Zeiger auf die Scrollbar am rechten Rand des Fensters
+        //  vScroll: Die Scrollbar
+        __declspec( dllexport ) void setVScrollBarZ( VScrollBar *vScroll );
+        // Setzt die Maximale Scroll breite des Fenster Körpers
+        //  max: Die Breite in Pixeln
+        __declspec( dllexport ) void setHSBMax( int max );
+        // Setzt die Maximale Scroll höhe des Fenster Körpers
+        //  max: Die Höhe in Pixeln
+        __declspec( dllexport ) void setVSBMax( int max );
+        // Scrollt zu einer bestimmten x Position im Fenster Körper
+        //  scroll: Die Anzahl der Pixel, die der Inhalt nach links verschoben werden soll
+        __declspec( dllexport ) void setHSBScroll( int scroll );
+        // Scrollt zu einer bestimmten y Position im Fenster Körper
+        //  scroll: Die Anzahl der Pixel, die der Inhalt nach oben verschoben werden soll
+        __declspec( dllexport ) void setVSBScroll( int scroll );
+        // Fügt dem Fenster eine Zeichnung hinzu
+        //  zObj: Die Zeichnung
+        __declspec( dllexport ) void addMember( Zeichnung *zObj );
+        // Entfernt eine Zeichnung aus dem Fenster
+        //  zObj: Die Zeichnung
+        __declspec( dllexport ) void removeMember( Zeichnung *zObj );
+        // Aktualisiert das Objekt. Wird vom Framework aufgerufen
+        //  tickVal: Die Zeit in sekunden, die seit dem lezten Aufruf dieser Funktion vergangen ist
+        //  return: 1, wenn sich etwas verändert hat und das Bild neu gezeichnet werden muss. 0 sonst
+        __declspec( dllexport ) bool tick( double tickval ) override;
+        // Verarbeitet Maus Nachrichten
+        //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+        __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
+        // Verarbeitet Tastatur Nachrichten
+        //  me: Das Ereignis, was durch die Tastatureingabe ausgelößt wurde
+        __declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override;
+        // Zeichnet das Fentster nach zRObj, falls es sichtbar ist
+        //  zRObj: Das Bild, in welches gezeichnet werden soll
+        __declspec( dllexport ) void render( Bild &zRObj ) override;
+        // Gibt den Rahmen des Fensters zurück
+        __declspec( dllexport ) LRahmen *getRahmen() const;
+        // Gibt den Rahmen des Fensters ohne erhöhen Reference Counter zurück
+        __declspec( dllexport ) LRahmen *zRahmen() const;
+        // Gibt die Farbe des Rahmens des Fensters im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getRFarbe() const;
+        // Gibt die Breite des Rahmens des Fensters in Pixeln zurück
+        __declspec( dllexport ) int getRBreite() const;
+        // Gibt den Titel des Fensters zurück
+        __declspec( dllexport ) Text *getTitel() const;
+        // Gibt den Titel des Fensters ohne erhöhten Reference Counter zurück
+        __declspec( dllexport ) Text *zTitel() const;
+        // Gibt das TextFeld zurück, das zum Zeichnen des Titels verwendet wird
+        __declspec( dllexport ) TextFeld *getTTextFeld() const;
+        // Gibt das TextFeld ohne erhöhten Reference Counter zurück, das zum Zeichnen des Titels verwendet wird
+        __declspec( dllexport ) TextFeld *zTTextFeld() const;
+        // Gibt die Schrift zurück, die für den Titel verwendet wird
+        __declspec( dllexport ) Schrift *getTSchrift() const;
+        // Gibt die Schrift ohne erhöten Reference Counter zurück, die für den Titel verwendet wird
+        __declspec( dllexport ) Schrift *zTSchrift() const;
+        // Gibt die Schrift Farbe des Titels im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getTSFarbe() const;
+        // Gibt die Höhe einer Zeile des Titels in Pixeln zurück
+        __declspec( dllexport ) int getTSGröße() const;
+        // Gibt die Hintergrundfarbe des Titels im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getTBgFarbe() const;
+        // Gibt den Farbübergang des Titels zurück
+        __declspec( dllexport ) AlphaFeld *getTAlphaFeld() const;
+        // Gibt den Farbübergang des Titels ohne erhöhten Reference COunter zurück
+        __declspec( dllexport ) AlphaFeld *zTAlphaFeld() const;
+        // Gibt die Farbe des Farbübergangs des Titels im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getTAfFarbe() const;
+        // Gibt die Stärke des Farbübergangs des Titels zurück
+        __declspec( dllexport ) int getTAfStärke() const;
+        // Gibt das Hintergrund Bild des titels zurück
+        __declspec( dllexport ) Bild *getTBgBild() const;
+        // Gibt das Hintergrund Bild des titels ohne erhöhten Reference Counter zurück
+        __declspec( dllexport ) Bild *zTBgBild() const;
+        // Gibt den Rahmen des Titels zurück
+        __declspec( dllexport ) LRahmen *getTRahmen() const;
+        // Gibt den Rahmen des Titels ohne erhöhten Reference Counter zurück
+        __declspec( dllexport ) LRahmen *zTRahmen() const;
+        // Gibt die Farbe des Rahmens des Titels im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getTRFarbe() const;
+        // Gibt die Stärke des Rahmens des Titels zurück
+        __declspec( dllexport ) int getTRBreite() const;
+        // Gibt die Hintergrund Farbe des Körpers zurück
+        __declspec( dllexport ) int getKBgFarbe() const;
+        // Gibt das Hintergrund Bild des Körpers zurück
+        __declspec( dllexport ) Bild *getKBgBild() const;
+        // Gibt das Hintergrund Bild des Körpers ohne erhöhten Reference Counter zurück
+        __declspec( dllexport ) Bild *zKBgBild() const;
+        // Gibt den Farbübergang des Körpers zurück
+        __declspec( dllexport ) AlphaFeld *getKAlphaFeld() const;
+        // Gibt den Farbübergang des Körpers ohne erhöhten Reference Counter zurück
+        __declspec( dllexport ) AlphaFeld *zKAlphaFeld() const;
+        // Gibt die Farbe des Farbübergangs des Körpers im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getKAfFarbe() const;
+        // Gibt die Stärke des Farbübergangs des Körpers zurück
+        __declspec( dllexport ) int getKAfStärke() const;
+        // Gibt die Hintergrund Farbe des Schließen Knopfes im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getSBgFarbe() const;
+        // Gibt das Hintergrund Bild des Schließen Knopfes zurück
+        __declspec( dllexport ) Bild *getSBgBild() const;
+        // Gibt das Hintergrund Bild des Schließen Knopfes ohne erhöhten Reference COunter zurück
+        __declspec( dllexport ) Bild *zSBgBild() const;
+        // Gibt den Farbübergang des Schließen Knopfes zurück
+        __declspec( dllexport ) AlphaFeld *getSAlphaFeld() const;
+        // Gibt den Farbübergang des Schließen Knopfes ohne erhöhten Reference COunter zurück
+        __declspec( dllexport ) AlphaFeld *zSAlphaFeld() const;
+        // Gibt die Farbe des Farbübergangs des Schließen Knopfes im A8R8G8B8 Format zurück
+        __declspec( dllexport ) int getSAfFarbe() const;
+        // Gibt die Stärke des Farbübergangs des Schließen Knopfes zurück
+        __declspec( dllexport ) int getSAfStärke() const;
+        // Gibt den Farbübergang zurück, der verwendet wird, wenn auf den Schließen Knopf gedrückt wird
+        __declspec( dllexport ) AlphaFeld *getSKAlphaFeld() const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der verwendet wird, wenn auf den Schließen Knopf gedrückt wird
+        __declspec( dllexport ) AlphaFeld *zSKAlphaFeld() const;
+        // Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der verwendet wird, wenn auf den Schließen Knopf gedrückt wird
+        __declspec( dllexport ) int getSKAfFarbe() const;
+        // Gibt die Stärke des Farbübergangs zurück, der verwendet wird, wenn auf den Schließen Knopf gedrückt wird
+        __declspec( dllexport ) int getSKAfStärke() const;
+        // Gibt die minimale Fenstergröße in Pixeln zurück
+        __declspec( dllexport ) const Punkt &getMin() const;
+        // Gibt die maximale Fenstergröße in Pixeln zurück
+        __declspec( dllexport ) const Punkt &getMax() const;
+        // Gibt die minimale Körpergröße in Pixeln zurück
+        __declspec( dllexport ) const Punkt &getKMin() const;
+        // Gibt die maximale Körpergröße in Pixeln zurück
+        __declspec( dllexport ) const Punkt &getKMax() const;
+        // Gibt die Scrollbar vom rechten Fensterrand zurück
+        __declspec( dllexport ) VScrollBar *getVScrollBar() const;
+        // Gibt die Scrollbar vom rechten Fensterrand ohne erhöhten Reference Counter zurück
+        __declspec( dllexport ) VScrollBar *zVScrollBar() const;
+        // Gibt die Scrollbar vom unteren Fensterrand zurück
+        __declspec( dllexport ) HScrollBar *getHScrollBar() const;
+        // Gibt die Scrollbar vom unteren Fensterrand ohne erhöhten Reference Counter zurück
+        __declspec( dllexport ) HScrollBar *zHScrollBar() const;
+        // Gibt eine Liste mit Zeichnungen zurück, die im Fenster sind
+        __declspec( dllexport ) ZeichnungArray *getMembers() const;
+        // Erzeugt eine Kopie des Fensters, die ohne Auswirkungen auf das Original verändert werden kann
+        __declspec( dllexport ) Zeichnung *dublizieren() const override;
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
+        __declspec( dllexport ) Fenster *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
+        __declspec( dllexport ) Fenster *release();
+    };
 }
 #endif

+ 0 - 8
Fortschritt.cpp

@@ -49,14 +49,6 @@ void FBalken::setAktionAnzahl( __int64 ak ) // setzt die anzahl der Aktionen
 	rend = 1;
 }
 
-void FBalken::aktionPlus() // eine Aktion ist fertig
-{
-	++ak;
-	if( ak > maxAk )
-		ak = maxAk;
-	rend = 1;
-}
-
 void FBalken::aktionPlus( __int64 aktionen ) // mehrere Aktionen sind fertig
 {
 	ak += aktionen;

+ 84 - 40
Fortschritt.h

@@ -11,26 +11,27 @@ namespace Framework
 	class Schrift; // Schrift.h
 	class FBalken; // aus dieser Datei
 
+    // Eine Zeichnung des 2D GuI Frameworks, die einen Fortschrittsbalken zeichnet
 	class FBalken : public ZeichnungHintergrund
 	{
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            const static __int64 Prozent = 0x001000;
+            const static __int64 Prozent = 0x001000; // Legt fest, ob eine Prozentangebe gezechnet wird
 
-            const static __int64 FRahmen = 0x002000;
-            const static __int64 FFarbe = 0x004000;
-            const static __int64 FBild = 0x008000;
-            const static __int64 FAlpha = 0x10000;
-            const static __int64 FBuffered = 0x20000;
+            const static __int64 FRahmen = 0x002000; // Legt fest, ob der vom fortschritt erfasste Teil des Balkens einen eigenen Rahmen hat
+            const static __int64 FFarbe = 0x004000; // Legt fest, ob der vom fortschritt erfasste Teil des Balkens eine eigene Hintergrund Farbe hat
+            const static __int64 FBild = 0x008000; // Legt fest, ob der vom fortschritt erfasste Teil des Balkens ein eigenes Hintergrund Bild hat
+            const static __int64 FAlpha = 0x10000; // Legt fest, ob der vom fortschritt erfasste Teil des Balkens zum zeichnen seines Hintergrundes alpha blending verwendet
+            const static __int64 FBuffered = 0x20000; // Legt fest, ob der vom fortschritt erfasste Teil des Balkens einen eigenen Frbübergang hat
 
-            const static __int64 L_R = 0x0100000;
-            const static __int64 R_L = 0x0200000;
-            const static __int64 U_O = 0x0400000;
-            const static __int64 O_U = 0x0800000;
+            const static __int64 L_R = 0x0100000; // Legt fest, ob sich der Fortschritt von lenks nach rechts ausbreitet
+            const static __int64 R_L = 0x0200000; // Legt fest, ob sich der Fortschritt von rechts nach links ausbreitet
+            const static __int64 U_O = 0x0400000; // Legt fest, ob sich der Fortschritt von unten nach oben ausbreitet
+            const static __int64 O_U = 0x0800000; // Legt fest, ob sich der Fortschritt von oben nach unten ausbreitet
 
-            const static __int64 normal = Sichtbar | Rahmen | Hintergrund | HBild | FRahmen | FBild | L_R | Prozent;
+            const static __int64 normal = Sichtbar | Rahmen | Hintergrund | HBild | FRahmen | FBild | L_R | Prozent; // Vereint die Flags Sichtbar, Rahmen, Hintergrund, HBild, FRahmen, FBild, L_R, Prozent
         };
 	private:
 		__int64 maxAk;
@@ -49,40 +50,83 @@ namespace Framework
 		__declspec( dllexport ) FBalken();
 		// Destructor 
 		__declspec( dllexport ) ~FBalken();
-		// nicht constant 
-		__declspec( dllexport ) void setAktionAnzahl( __int64 ak ); // setzt die anzahl der Aktionen
-		__declspec( dllexport ) void aktionPlus(); // eine Aktion ist fertig
-		__declspec( dllexport ) void aktionPlus( __int64 aktionen ); // mehrere Aktionen sind fertig
-		__declspec( dllexport ) void reset(); // setzt die fertigen Aktionen zurück
-		__declspec( dllexport ) void setFRahmenZ( LRahmen *ram ); // setzt einen Zeiger zum Fertig Rahmen
-		__declspec( dllexport ) void setFRFarbe( int f ); // setzt die Fertig Rahmen Farbe
-		__declspec( dllexport ) void setFRBreite( int br ); // setzt die Fertig Rahmen Breite
-		__declspec( dllexport ) void setFAlphaFeldZ( AlphaFeld *af ); // setzt einen Zeiger zum Fertig Alpha Feld
-		__declspec( dllexport ) void setFAFFarbe( int f ); // setzt die Fertig Alpha Feld Farbe
-		__declspec( dllexport ) void setFAFStärke( int st ); // setzt die Stärke des Fertig Alpha Feldes
-		__declspec( dllexport ) void setFBgFarbe( int f ); // setzt einen Zeiger zur Fertig Hintergrund Farbe
-		__declspec( dllexport ) void setFBgBildZ( Bild *b ); // setzt das Fertig Hintergrund Bild
-		__declspec( dllexport ) void setFBgBild( Bild *b ); // kopiert in das Fertig Hintergrund Bild
-		__declspec( dllexport ) void setSchriftZ( Schrift *b ); // setzt die Schrift
-		__declspec( dllexport ) void setSFarbe( int f ); // setzt die Schrift Farbe
-		__declspec( dllexport ) void setSGröße( unsigned char gr ); // setzt die Schrift größe
-		__declspec( dllexport ) void render( Bild &zRObj ) override; // zeichnet nach zRObj
-		// constant 
-		__declspec( dllexport ) __int64 getAktionAnzahl() const; // gibt die Anzahl der Aktionen zurück
-		__declspec( dllexport ) double getProzent() const; // gibt die momentane Prozentzahl zurück
-		__declspec( dllexport ) __int64 getAktion() const; // gibt die fertigen Aktionen zurück
-		__declspec( dllexport ) LRahmen *getFRahmen() const; // gibt den Fertig Rahmen zurück
+		// Setzt die Anzahl an benötigten Operationen um 100% Fortschritt zu erreichen
+        //  ak: Die Anzahl an Operationen
+		__declspec( dllexport ) void setAktionAnzahl( __int64 ak );
+        // Legt fest, dass eine bestimmte Anzahl an Operationen seit dem letzten Aufruf der Funktion durchgeführt wurden
+        //  aktionen: Die durchgeführten Operationen. Standartmäßig auf 1
+        __declspec( dllexport ) void aktionPlus( __int64 aktionen = 1 );
+        // Setzt alle fertigen Operationen zurück, so dass der Fortschritt wieder von 0% beginnt
+		__declspec( dllexport ) void reset();
+        // Setzt einen Zeiger auf den Rahmen, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  ram: Der Rahmen
+		__declspec( dllexport ) void setFRahmenZ( LRahmen *ram );
+        // Setzt die Farbe des Rahmens, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setFRFarbe( int f );
+        // Setzt die Breite des Rahmens, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  br: Die Breite in Pixeln
+		__declspec( dllexport ) void setFRBreite( int br );
+        // Setzt einen Zeiger auf den Farbverlauf, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  af: Der Farbverlauf
+		__declspec( dllexport ) void setFAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe des Farbverlaufs, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setFAFFarbe( int f );
+        // Setzt die Stärke des Farbverlaufs, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  st: Die Stärke
+		__declspec( dllexport ) void setFAFStärke( int st );
+        // Setzt die Hintergrund Farbe, die in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setFBgFarbe( int f );
+        // Setzt einen Zeiger auf das Hintergrund Bild, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  b: Das Bild
+		__declspec( dllexport ) void setFBgBildZ( Bild *b );
+        // Setzt das Hintergrund Bild durch kopieren, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+        //  b: Das Bild, das kopiert werden soll
+		__declspec( dllexport ) void setFBgBild( Bild *b );
+        // Setzt die Schrift, die verwendet wird, um die Prozentanzeige zu zeichnen
+		__declspec( dllexport ) void setSchriftZ( Schrift *b );
+        // Setzt die Farbe der Prozentanzeige
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setSFarbe( int f );
+        // Setzt die Schriftgröße der Prozentanzeige
+        //  gr: Die Größe einer Zeile in Pixeln
+		__declspec( dllexport ) void setSGröße( unsigned char gr );
+        // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
+        //  zRObj: Das Bild, in welches gezeichnet werden soll
+		__declspec( dllexport ) void render( Bild &zRObj ) override;
+		// Gibt die Anzahl an benötigten Operationen zurück, die für 100% benötigt werden
+		__declspec( dllexport ) __int64 getAktionAnzahl() const;
+        // Gibt die momentan erreichte Prozentzahl des Fortschritts zurück
+		__declspec( dllexport ) double getProzent() const;
+        // Gibt die Anzahl an fertigen Operationen zurück
+		__declspec( dllexport ) __int64 getAktion() const;
+        // Gibt den Rahmen zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+		__declspec( dllexport ) LRahmen *getFRahmen() const;
+        // Gibt den Rahmen ohne erhöhten Reference Counter zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
 		__declspec( dllexport ) LRahmen *zFRahmen() const;
-		__declspec( dllexport ) AlphaFeld *getFAlphaFeld() const; // gibt das Fertig Alpha Feld zurück
+        // Gibt den Farbübergang zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+		__declspec( dllexport ) AlphaFeld *getFAlphaFeld() const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
 		__declspec( dllexport ) AlphaFeld *zFAlphaFeld() const;
-		__declspec( dllexport ) int getFBgFarbe() const; // gibt die Fertig Hintergrund Farbe zurück
-		__declspec( dllexport ) Bild *getFBgBild() const; // gibt das Fertig Hintergrund Bild zurück
+        // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+		__declspec( dllexport ) int getFBgFarbe() const;
+        // Gibt das Hintergrund Bild zurück, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
+		__declspec( dllexport ) Bild *getFBgBild() const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference COunter zurück, das in dem Teil des Balkens gezeichnet wird, der vom Fortschritt erfasst wurde
 		__declspec( dllexport ) Bild *zFBgBild() const;
-		__declspec( dllexport ) Schrift *getSchrift() const; // gibt die Schrift zurück
+        // Gibt die Schrift zurück, die für die Prozentanzeige verwendet wird
+		__declspec( dllexport ) Schrift *getSchrift() const;
+        // Gibt die Schrift ohne erhöhten Reference Counter zurück, die für die Prozentanzeige verwendet wird
 		__declspec( dllexport ) Schrift *zSchrift() const;
-		__declspec( dllexport ) int getSFarbe() const; // gibt die Schrift Farbe zurück
-		// Reference Counting 
+        // Gibt die Farbe der Prozentanzeige im A8R8G8B8 Format zurück
+		__declspec( dllexport ) int getSFarbe() const;
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
 		__declspec( dllexport ) FBalken *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
 		__declspec( dllexport ) FBalken *release();
 	};
 }

+ 168 - 70
Knopf.h

@@ -14,19 +14,20 @@ namespace Framework
 	class Knopf; // aus dieser Datei
 	class KontrollKnopf; // aus dieser Datei
 
+    // Eine Zeichnung des 2D GUI Frameworks, die einen Knopf zeichnet, den der Benutzer drücken kann
 	class Knopf : public TextFeld
 	{
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            const static __int64 MehrfarbigText = 0x0010000;
-            const static __int64 KlickFarbe = 0x0020000;
-            const static __int64 KlickBild = 0x0040000;
-            const static __int64 KlickAlpha = 0x0080000;
-            const static __int64 KlickBuffer = 0x0100000;
+            const static __int64 MehrfarbigText = 0x0010000; // Legt fest, ob der Text des Knopfes mehrere Farben haben darf
+            const static __int64 KlickFarbe = 0x0020000; // Legt fest, ob der Knopf während er gedrückt wird eine Hintergrund Farbe hat
+            const static __int64 KlickBild = 0x0040000; // Legt fest, ob der Knopf während er gedrückt wird ein Bild als Hintergrund hat
+            const static __int64 KlickAlpha = 0x0080000; // Legt fest, ob der Knopf während er gedrückt wird für das Zeichnen des Hintergrundes alpha blending verwendet
+            const static __int64 KlickBuffer = 0x0100000; // Legt fest, ob der Knopf während er gedrückt wird einen Farbübergang besitzt
 
-            const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | Buffered | MehrfarbigText | KlickBuffer;
+            const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | Buffered | MehrfarbigText | KlickBuffer; // Vereint di Flags Sichtbar, Erlaubt, Rahmen, Buffered, MehrfarbigText, KlickBuffer
         };
 
 	private:
@@ -41,52 +42,78 @@ namespace Framework
 		__declspec( dllexport ) Knopf();
 		// Destruktor 
 		__declspec( dllexport ) ~Knopf();
-		// nicht constant 
-		__declspec( dllexport ) void setKlickFarbe( int fc ); // setzt die Klick Farbe
-		__declspec( dllexport ) void setKlickBild( Bild *bild ); // setzt das Klick Bild
-		__declspec( dllexport ) void setKlickBildZ( Bild *bild ); // setzt einen Zeiger zum Klick Bild
+		// Setzt die Farbe, die als Hintergrund verwendet wird, wenn der Knopf gedrückt wird
+        //  fc: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setKlickFarbe( int fc );
+        // Setzt das Hintergrund Bild durch kopieren, das verwendet wird, wenn der Knopf gedrückt wird
+        //  bild: Das Bild, das kopiert werden soll
+		__declspec( dllexport ) void setKlickBild( Bild *bild );
+        // Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird, wenn der Knopf gedrückt wird
+        //  bild: Das neue Bild
+		__declspec( dllexport ) void setKlickBildZ( Bild *bild );
+        // Setzt einen Zeiger auf den Farbübergang, der verwendet wird, wenn der Knopf gedrückt wird
+        //  af: Der neue Farbübergang
 		__declspec( dllexport ) void setKBZ( AlphaFeld *af );
-		__declspec( dllexport ) void setKBStärke( int st ); // setzt die Stärke des Klick Buffers
-		__declspec( dllexport ) void setKBFarbe( int fc ); // setzt die Farbe des Klick Buffers
-		__declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override; // Maus Ereignis
-		__declspec( dllexport ) void render( Bild &zRObj ) override; // zeichenet nach zRObj
-		// constant 
-		__declspec( dllexport ) int getKlickFarbe() const; // gibt getThis der Klick Farbe zurück
-		__declspec( dllexport ) Bild *getKlickBild() const; // gibt getThis des Klick Bildes zurück
-		__declspec( dllexport ) Bild *zKlickBild() const; // gibt einen Zeiger zum Klick Bild zurück
-		__declspec( dllexport ) AlphaFeld *getKB() const; // gibt getThis des Klick Buffers zurück
-		__declspec( dllexport ) AlphaFeld *zKB() const; // gibt den Klick Buffer zurück
-		__declspec( dllexport ) int getKBFarbe() const; // gibt getThis der Farbe des Klick Buffers zurück
-		__declspec( dllexport ) int getKBStärke() const; // gibt die Stärke des Klickbuffers zurück
-		__declspec( dllexport ) Zeichnung *dublizieren() const override; // Erzeugt eine Kopie des Zeichnungs
-		// Reference Counting 
+        // Setzt die Stärke des Farbübergangs, der verwendet wird, wenn der Knopf gedrückt wird
+        //  st: Die Stärke
+		__declspec( dllexport ) void setKBStärke( int st );
+        // Setzt die Farbe des Farbübergangs, der verwendet wird, wenn der Knopf gedrückt wird
+        //  fc: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setKBFarbe( int fc );
+        // Verarbeitet Maus Nachrichten
+        //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+		__declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
+        // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
+        //  zRObj: Das Bild, in welches gezeichnet werden soll
+		__declspec( dllexport ) void render( Bild &zRObj ) override;
+		// Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, wenn der Knopf gedrückt wird
+		__declspec( dllexport ) int getKlickFarbe() const;
+        // Gibt das Hintergrund Bild zurück, das verwendet wird, wenn der Knopf gedrückt wird
+		__declspec( dllexport ) Bild *getKlickBild() const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, wenn der Knopf gedrückt wird
+		__declspec( dllexport ) Bild *zKlickBild() const;
+        // Gibt den Farbübergang zurück, der verwendet wird, wenn der Knopf gedrückt wird
+		__declspec( dllexport ) AlphaFeld *getKB() const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der verwendet wird, wenn der Knopf gedrückt wird
+		__declspec( dllexport ) AlphaFeld *zKB() const;
+        // Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der verwendet wird, wenn der Knopf gedrückt wird
+		__declspec( dllexport ) int getKBFarbe() const;
+        // Gibt die Stärke des Farbübergangs zurück, der verwendet wird, wenn der Knopf gedrückt wird
+		__declspec( dllexport ) int getKBStärke() const;
+        // Kopiert den Knopf, so das er ohne auswirkungen auf das Original verändert werden kann
+		__declspec( dllexport ) Zeichnung *dublizieren() const override;
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
 		__declspec( dllexport ) Knopf *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
 		__declspec( dllexport ) Knopf *release();
 	};
 
+    // Eine Zeichnung des 2D GUI Frameworks, die einen Auswählbares Kästchen mit beschriftung zeichnet
 	class KontrollKnopf : public ZeichnungHintergrund
 	{
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            const static __int64 Selected = 0x00080;
+            const static __int64 Selected = 0x00004; // Legt fest, ob das Kästchen ausgewählt ist
 
-            const static __int64 MehrfarbigText = 0x001000;
-            const static __int64 KlickFarbe = 0x002000;
-            const static __int64 KlickBild = 0x004000;
-            const static __int64 KlickAlpha = 0x008000;
-            const static __int64 KlickBuffer = 0x010000;
-            const static __int64 SelectFarbe = 0x020000;
-            const static __int64 SelectBild = 0x040000;
-            const static __int64 SelectAlpha = 0x080000;
-            const static __int64 SelectBuffer = 0x100000;
-            const static __int64 SelectText = 0x200000;
-            const static __int64 MehrzeiligText = 0x400000;
+            const static __int64 MehrfarbigText = 0x001000; // Legt Fest, ob der Beschriftungs Text mehrfarbig sein kann
+            const static __int64 KlickFarbe = 0x002000; // Legt fest, ob das Kästchen während ed gedrückt wird eine Hintergrund Farbe hat
+            const static __int64 KlickBild = 0x004000; // Legt fest, ob das Kästchen beim Klicken ein Hintergrund Bild hat
+            const static __int64 KlickAlpha = 0x008000; // Legt fest, ob für den Hintergrund des Kästchens beim Klicken alpha blending verwendet wird
+            const static __int64 KlickBuffer = 0x010000; // Legt fest, ob das Kästchen beim Klicken einen Farbübergang hat
+            const static __int64 SelectFarbe = 0x020000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist eine Hintergrund Farbe hat
+            const static __int64 SelectBild = 0x040000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist ein Hintergrund Bild hat
+            const static __int64 SelectAlpha = 0x080000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist für den Hintergrund alpha blending verwendet
+            const static __int64 SelectBuffer = 0x100000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist einen Farbübergang hat
+            const static __int64 SelectText = 0x200000; // Legt fest, ob das Kästchen wärhend es ausgewählt ist eine andere Beschriftung hat
+            const static __int64 MehrzeiligText = 0x400000; // Legt fest, ob das Kästchen eine Mehrzeilige Beschriftung haben kann
 
-            const static __int64 MausKlick = 0x800000;
+            const static __int64 MausKlick = 0x800000; // Legt fest, ob gerade mit der Maus auf das Kästchen geklickt wird. (Wird vom Kästchen selbst verwaltet)
 
-            const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | KlickBuffer;
+            const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | KlickBuffer; // Vereint die Flags Sichtbar, Erlaubt, Rahmen, KlickBuffer
         };
 
 	private:
@@ -110,53 +137,124 @@ namespace Framework
 		__declspec( dllexport ) KontrollKnopf();
 		// Destruktor 
 		__declspec( dllexport ) ~KontrollKnopf();
-		// nicht constant 
-		__declspec( dllexport ) void setTextZ( Text *txt ); // setzt den Text
+		// Setzt den Zeiger auf den Beschriftungs Text
+        //  txt: Der Text
+		__declspec( dllexport ) void setTextZ( Text *txt );
+        // Setzt den Beschriftungs Text
+        //  txt: Der Text
 		__declspec( dllexport ) void setText( Text *txt );
+        // Setzt den Beschriftungs Text
+        //  txt: Der Text
 		__declspec( dllexport ) void setText( const char *txt );
-		__declspec( dllexport ) void setSTextZ( Text *txt ); // setzt den Text bei Selectiert
+        // Setzt den Zeiger auf den Beschriftungs Text, der angezeigt wird, während das Kästchen ausgewählt ist
+        //  txt: Der Text
+		__declspec( dllexport ) void setSTextZ( Text *txt );
+        // Setzt den Beschriftungs Text, der angezeigt wird, während das Kästchen ausgewählt ist
+        //  txt: Der Text
 		__declspec( dllexport ) void setSText( Text *txt );
+        // Setzt den Beschriftungs Text, der angezeigt wird, während das Kästchen ausgewählt ist
+        //  txt: Der Text
 		__declspec( dllexport ) void setSText( const char *txt );
-		__declspec( dllexport ) void setSchriftZ( Schrift *schrift ); // setzt die Schrift
-		__declspec( dllexport ) void setSFarbe( int f ); // setzt die Schrift Farbe
-		__declspec( dllexport ) void setSGröße( int gr ); // setzt die Schrift Größe
-		__declspec( dllexport ) void setSBgFarbe( int f ); // setzt die Select Hintergrundfarbe
-		__declspec( dllexport ) void setKBgFarbe( int f ); // setzt die Klick Hintergrundfarbe
-		__declspec( dllexport ) void setSBgBildZ( Bild *b ); // setzt das Select Hintergrundbild
+        // Setzt die Schrift, die für die Beschriftung verwendet werden soll
+        //  schrift: Die Schrift
+		__declspec( dllexport ) void setSchriftZ( Schrift *schrift );
+        // Setzt die Farbe der Schrift, die für die Beschriftung verwendet werden soll
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setSFarbe( int f );
+        // Setzt die Größe der Schrift, die für die Beschriftung verwendet werden soll
+        //  f: Die Höhe einer Zeile in Pixeln
+		__declspec( dllexport ) void setSGröße( int gr );
+        // Setzt die Hintergrund Farbe, die verwendet wird, während das Kästchen ausgewählt ist
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setSBgFarbe( int f );
+        // Setzt die Hintergrund Farbe, die verwendet wird, während auf das Kästchen geklickt wird
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setKBgFarbe( int f );
+        // Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird, während das Kästchen ausgewählt ist
+        //  b: Das Bild
+		__declspec( dllexport ) void setSBgBildZ( Bild *b );
+        // Setzt das Hintergrund Bild durch kopieren, das verwendet wird, während das Kästchen ausgewählt ist
+        //  b: Das Bild, das kopiert werden soll
 		__declspec( dllexport ) void setSBgBild( Bild *b );
-		__declspec( dllexport ) void setKBgBildZ( Bild *b ); // setzt das Klick Hintergrundbild
+        // Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird, während auf das Kästchen geklickt wird
+        //  b: Das Bild
+		__declspec( dllexport ) void setKBgBildZ( Bild *b );
+        // Setzt das Hintergrund Bild durch kopieren, das verwendet wird, während auf das Kästchen geklickt wird
+        //  b: Das Bild, das kopiert werden soll
 		__declspec( dllexport ) void setKBgBild( Bild *b );
-		__declspec( dllexport ) void setSAlphaFeldZ( AlphaFeld *af ); // setzt das Select Alpha Feld
-		__declspec( dllexport ) void setSAFFarbe( int f ); // setzt die Select Alphafeld Farbe
-		__declspec( dllexport ) void setSAFStärke( int st ); // setzt die Select AlphaFeld Stärke
-		__declspec( dllexport ) void setKAlphaFeldZ( AlphaFeld *af ); // setzt das Klick Alpha Feld
-		__declspec( dllexport ) void setKAFFarbe( int f ); // setzt die Klick Alphafeld Farbe
-		__declspec( dllexport ) void setKAFStärke( int st ); // setzt die Klick AlphaFeld Stärke
-		__declspec( dllexport ) void loadData( LTDBDatei *zDat ); // läht die Systembilder
+        // Setzt einen Zeiger auf den Farbübergang, der verwendet wird, während das Kästchen ausgewählt ist
+        //  af: Der Farbübergang
+		__declspec( dllexport ) void setSAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe des Farbübergangs, der verwendet wird, während das Kästchen ausgewählt ist
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setSAFFarbe( int f );
+        // Setzt die Stärke des Farbübergangs, der verwendet wird, während das Kästchen ausgewählt ist
+        //  st: Die Stärke
+		__declspec( dllexport ) void setSAFStärke( int st );
+        // Setzt einen Zeiger auf den Farbübergang, der verwendet wird, während auf das Kästchen geklickt wird
+        //  af: Der Farbübergang
+		__declspec( dllexport ) void setKAlphaFeldZ( AlphaFeld *af );
+        // Setzt die Farbe des Farbübergangs, der verwendet wird, während auf das Kästchen geklickt wird
+        //  f: Die Farbe im A8R8G8B8 Format
+		__declspec( dllexport ) void setKAFFarbe( int f );
+        // Setzt die Stärke des Farbübergangs, der verwendet wird, während auf das Kästchen geklickt wird
+        //  st: Die Stärke
+		__declspec( dllexport ) void setKAFStärke( int st );
+        // Lädt die Bilder "kasten.gif" und "skasten.gif" aus einer LTDB Datei
+        // Das Bild kasten.gif wird gezeichnet, wenn das Kästchen nicht ausgewählt ist. Das Bild skasten.gif wird gezeichnet, wenn das Kästchen ausgewählt wird
+        //  zDat: Die LTDB Datei
+		__declspec( dllexport ) void loadData( LTDBDatei *zDat );
+        // Lädt die Bilder "kasten.gif" und "skasten.gif" aus einer LTDB Datei
+        // Das Bild kasten.gif wird gezeichnet, wenn das Kästchen nicht ausgewählt ist. Das Bild skasten.gif wird gezeichnet, wenn das Kästchen ausgewählt wird
+        //  ltdb: Der Pfad zur LTDB Datei
 		__declspec( dllexport ) void loadData( const char *ltdb );
-		__declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override; // Nachrichten verarbeitung
-		__declspec( dllexport ) void render( Bild &zRObj ) override; // zeichnet nach zRObj
-		// constant 
-		__declspec( dllexport ) Text *getText() const; // gibt den Text zurück
+        // Verarbeitet Maus Nachrichten
+        //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+		__declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
+        // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
+        //  zRObj: Das Bild, in welches gezeichnet werden soll
+		__declspec( dllexport ) void render( Bild &zRObj ) override;
+		// Gibt die beschriftung zurück
+		__declspec( dllexport ) Text *getText() const;
+        // Gibt die beschriftung ohne erhöhten Reference Counter zurück
 		__declspec( dllexport ) Text *zText() const;
-		__declspec( dllexport ) Text *getSText() const; // gibt den Select Text zurück
+        // Gibt die beschriftung zurück, die verwendet wird, während das Kästchen ausgewählt ist
+		__declspec( dllexport ) Text *getSText() const;
+        // Gibt die beschriftung ohne erhöhten Reference Counter zurück, die verwendet wird, während das Kästchen ausgewählt ist
 		__declspec( dllexport ) Text *zSText() const;
-		__declspec( dllexport ) Schrift *getSchrift() const; // gibt die Schrift zurück
+        // Gibt die verwendete Schrift zurück
+		__declspec( dllexport ) Schrift *getSchrift() const;
+        // Gibt die verwendete Schrift ohne Reference Counter zurück
 		__declspec( dllexport ) Schrift *zSchrift() const;
-		__declspec( dllexport ) int getSFarbe() const; // gibt die Schrift Farbe zurück
-		__declspec( dllexport ) int getSGröße() const; // gibt die Schrift Größe zurück
-		__declspec( dllexport ) int getSBgFarbe() const;// gibt die Select Hintergrundfarbe zurück
-		__declspec( dllexport ) int getKBgFarbe() const; // gibt die Klick Hintergrundfarbe zurück
-		__declspec( dllexport ) Bild *getSBgBild() const; // gibt das Select Hintergrundbild zurück
+        // Gibt die Schrift Farbe im A8R8G8B8 Format zurück
+		__declspec( dllexport ) int getSFarbe() const;
+        // Gibt die Schrift Größe zurück
+		__declspec( dllexport ) int getSGröße() const;
+        // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, während das Kästchen ausgewählt ist
+		__declspec( dllexport ) int getSBgFarbe() const;
+        // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet wird, während auf das Kästchen geklickt wird
+		__declspec( dllexport ) int getKBgFarbe() const;
+        // Gibt das Hintergrund Bild zurück, das verwendet wird, während das Kästchen ausgewählt ist
+		__declspec( dllexport ) Bild *getSBgBild() const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, während das Kästchen ausgewählt ist
 		__declspec( dllexport ) Bild *zSBgBild() const;
-		__declspec( dllexport ) Bild *getKBgBild() const; // gibt das Klick Hintergrundbild zurück
+        // Gibt das Hintergrund Bild zurück, das verwendet wird, während auf das Kästchen geklickt wird
+		__declspec( dllexport ) Bild *getKBgBild() const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das verwendet wird, während auf das Kästchen geklickt wird
 		__declspec( dllexport ) Bild *zKBgBild() const;
-		__declspec( dllexport ) AlphaFeld *getSAlphaFeld() const; // gibt das Select AlphaFeld zurück
+        // Gibt den Farbübergang zurück, der verwendet wird, während das Kästchen ausgewählt ist
+		__declspec( dllexport ) AlphaFeld *getSAlphaFeld() const;
+        // Gibt den Farbübergang ohne erhöhten Reference COunter zurück, der verwendet wird, während das Kästchen ausgewählt ist
 		__declspec( dllexport ) AlphaFeld *zSAlphaFeld() const;
-		__declspec( dllexport ) AlphaFeld *getKAlphaFeld() const; // gibt das Klick AlphaFeld zurück
+        // Gibt den Farbübergang zurück, der verwendet wird, während auf das Kästchen geklickt wird
+		__declspec( dllexport ) AlphaFeld *getKAlphaFeld() const;
+        // Gibt den Farbübergang ohne erhöhten Reference COunter zurück, der verwendet wird, während auf das Kästchen geklickt wird
 		__declspec( dllexport ) AlphaFeld *zKAlphaFeld() const;
-		// Reference Counting 
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
 		__declspec( dllexport ) KontrollKnopf *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
 		__declspec( dllexport ) KontrollKnopf *release();
 	};
 }

+ 4 - 4
Liste.cpp

@@ -132,7 +132,7 @@ void AuswahlListe::addEintrag( const char *txt )
     rend = 1;
 }
 
-void AuswahlListe::addEintrag( TextFeld *tf )
+void AuswahlListe::addEintragZ( TextFeld *tf )
 {
     if( !tfListe )
         tfListe = new RCArray< TextFeld >();
@@ -163,7 +163,7 @@ void AuswahlListe::addEintrag( int pos, const char *txt )
     rend = 1;
 }
 
-void AuswahlListe::addEintrag( int pos, TextFeld *tf )
+void AuswahlListe::addEintragZ( int pos, TextFeld *tf )
 {
     if( !tfListe )
         tfListe = new RCArray< TextFeld >();
@@ -203,7 +203,7 @@ void AuswahlListe::setEintrag( int pos, unsigned char *txt )
     rend = 1;
 }
 
-void AuswahlListe::setEintrag( int pos, TextFeld *tf )
+void AuswahlListe::setEintragZ( int pos, TextFeld *tf )
 {
     if( !tfListe )
         tfListe = new RCArray< TextFeld >();
@@ -213,7 +213,7 @@ void AuswahlListe::setEintrag( int pos, TextFeld *tf )
     rend = 1;
 }
 
-void AuswahlListe::setEintragPos( int vpos, int npos ) // taucht den Eintrag vpos mit dem Eintrag npos
+void AuswahlListe::tauschEintragPos( int vpos, int npos ) // taucht den Eintrag vpos mit dem Eintrag npos
 {
     if( tfListe )
     {

+ 245 - 111
Liste.h

@@ -6,129 +6,263 @@
 
 namespace Framework
 {
-	class LRahmen; // Rahmen.h
-	class AlphaFeld; // AlphaFeld.h
-	class Bild; // Bild.h
-	class Text; // Text.h
-	class TextFeld; // TextFeld.h
-	class VScrollBar; // Scroll.h
-	struct TastaturEreignis; // TastaturEreignis.h
-	struct MausEreignis; // MausEreignis.h
+    class LRahmen; // Rahmen.h
+    class AlphaFeld; // AlphaFeld.h
+    class Bild; // Bild.h
+    class Text; // Text.h
+    class TextFeld; // TextFeld.h
+    class VScrollBar; // Scroll.h
+    struct TastaturEreignis; // TastaturEreignis.h
+    struct MausEreignis; // MausEreignis.h
     class Schrift; // Schrift.h
-	class AuswahlListe; // aus dieser datei
+    class AuswahlListe; // aus dieser datei
 
-	class AuswahlListe : public ZeichnungHintergrund
-	{
+    // Eine Zeichnung des 2D GUI Frameworks, die eine Liste darstellt, aus der der Benutzer Elemente aus und abwählen kann
+    class AuswahlListe : public ZeichnungHintergrund
+    {
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            const static __int64 FeldRahmen = 0x0001000;
-            const static __int64 FeldHintergrund = 0x0002000;
-            const static __int64 FeldHBild = 0x0004000;
-            const static __int64 FeldHAlpha = 0x0008000;
-            const static __int64 FeldBuffer = 0x0010000;
-            const static __int64 AuswahlHintergrund = 0x0020000;
-            const static __int64 AuswahlHBild = 0x0040000;
-            const static __int64 AuswahlHAlpha = 0x0080000;
-            const static __int64 AuswahlBuffer = 0x0100000;
-            const static __int64 AuswahlRahmen = 0x0200000;
-            const static __int64 MultiStyled = 0x0400000;
-            const static __int64 MultiSelect = 0x0800000;
-            const static __int64 Ausgewählt = 0x1000000;
+            const static __int64 FeldRahmen = 0x0001000; // Legt fest, ob die Einträge der Liste einen Rahmen haben
+            const static __int64 FeldHintergrund = 0x0002000; // Legt fest, ob die Einträge einen Hintergrund haben
+            const static __int64 FeldHBild = 0x0004000; // Legt fest, ob die Einträge ein Hintergrund Bild haben
+            const static __int64 FeldHAlpha = 0x0008000; // Legt fest, ob beim zeichnen der Eintrag Hintergründe alpha blending verwendet werden soll
+            const static __int64 FeldBuffer = 0x0010000; // Legt fest, ob die Einträge einen Farbübergang besitzen
+            const static __int64 AuswahlHintergrund = 0x0020000; // Legt fest, ob die ausgewählten Einträge einen Hintergrund haben
+            const static __int64 AuswahlHBild = 0x0040000; // Legt fest, ob die ausgewählten einträge ein Bild als Hintergrund haben
+            const static __int64 AuswahlHAlpha = 0x0080000; // Legt fest, ob für das Zeichnen der Hintergründe der ausgewählten Einträge alpha blending verwendet wird
+            const static __int64 AuswahlBuffer = 0x0100000; // Legt fest, ob die ausgewählten Einträge einen Farbübergang besitzen
+            const static __int64 AuswahlRahmen = 0x0200000; // Legt fest, ob die ausgewählten Einträge einen Rahmen besitzen
+            const static __int64 MultiStyled = 0x0400000; // Legt fest, ob jeder Eintrag seine eigenen Hintergrund, Farbübergang und Rahmen hat, fals er ausgewählt ist
+            const static __int64 MultiSelect = 0x0800000; // Legt fest, das mehrere Einträge gleichzeitig ausgewählt sein können
+            const static __int64 Ausgewählt = 0x1000000; // Legt fest, ob ein bestimmter Eintrag ausgewählt ist, falls MultiSelect gesetzt wurde.
 
-            const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | FeldHAlpha | FeldHintergrund | FeldRahmen | AuswahlBuffer | AuswahlRahmen;
+            const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | FeldHAlpha | FeldHintergrund | FeldRahmen | AuswahlBuffer | AuswahlRahmen; // Vereint die Flags Sichtbar, Erlaubt, Rahmen, FeldHAlpha, FeldHintergrund, FeldRahmen, AuswahlBuffer, AuswahlRahmen
         };
-	private:
-		RCArray< TextFeld > *tfListe;
-		int einträge, auswahl;
-		int ahFarbe;
-		Bild *ahBild;
-		AlphaFeld *aBuffer;
-		LRahmen *aRahmen;
-		Array< __int64 > *styles;
-		Array< int > *ahFarbeListe;
-		RCArray< Bild > *ahBildListe;
-		RCArray< AlphaFeld > *aBufferListe;
-		RCArray< LRahmen > *aRahmenListe;
+    private:
+        RCArray< TextFeld > *tfListe;
+        int einträge, auswahl;
+        int ahFarbe;
+        Bild *ahBild;
+        AlphaFeld *aBuffer;
+        LRahmen *aRahmen;
+        Array< __int64 > *styles;
+        Array< int > *ahFarbeListe;
+        RCArray< Bild > *ahBildListe;
+        RCArray< AlphaFeld > *aBufferListe;
+        RCArray< LRahmen > *aRahmenListe;
         Schrift *schrift;
-		int ref;
+        int ref;
 
-	public:
-		// Konstruktor 
-		__declspec( dllexport ) AuswahlListe();
-		// Destruktor 
-		__declspec( dllexport ) ~AuswahlListe();
-		// nicht constant 
-		__declspec( dllexport ) void update(); // aktualisiert die Auswahl Liste
-		__declspec( dllexport ) void addEintrag( Text *txt ); // fügt einen Eintrag hinzu
-		__declspec( dllexport ) void addEintrag( const char *txt );
-		__declspec( dllexport ) void addEintrag( TextFeld *tf );
-		__declspec( dllexport ) void addEintrag( int pos, Text *txt ); // fügt einen Eintrag bei position pos ein
-		__declspec( dllexport ) void addEintrag( int pos, const char *txt );
-		__declspec( dllexport ) void addEintrag( int pos, TextFeld *tf );
-		__declspec( dllexport ) void setEintrag( int pos, Text *txt ); // ändert den pos - ten Eintrag
-		__declspec( dllexport ) void setEintrag( int pos, unsigned char *txt );
-		__declspec( dllexport ) void setEintrag( int pos, TextFeld *tf );
-		__declspec( dllexport ) void setEintragPos( int vpos, int npos ); // taucht den Eintrag vpos mit dem Eintrag npos
-		__declspec( dllexport ) void löscheEintrag( int pos ); // löscht den Eintrag pos
-        __declspec( dllexport ) void setSchriftZ( Schrift *schrift ); // legt die Schrift der Einträge fest
-        __declspec( dllexport ) void setVScrollZuEintrag( int eintrag ); // scrollt zum Eintrag
-        __declspec( dllexport ) void updateVScroll(); // scrollt zur Curser Position oder nach Unten
-		__declspec( dllexport ) void setALRZ( LRahmen *rahmen ); // setzt einen Zeiger zum Auswahl Rahmen (nur ohne MulitStyled)
-        __declspec( dllexport ) void setALRBreite( int br ); // setzt die Breite des Auswahl Rahmens (nur ohne MultiStyled)
-        __declspec( dllexport ) void setALRFarbe( int fc ); // setzt die Farbe des Auswahl Rahmens (nur ohne MultiStyled)
-		__declspec( dllexport ) void setAAFZ( AlphaFeld *buffer ); // setzt einen Zeiger zum Auswahl AlpaFeld (nur ohne MultiStyled)
-        __declspec( dllexport ) void setAAFStärke( int st ); // setzt die Stärke des Auswahl Hintergrund Buffers (nur ohne MultiStyled)
-        __declspec( dllexport ) void setAAFFarbe( int fc ); // setzt die Farbe des Auswahl Hintergrund Buffers (nur ohne MultiStyled)
-        __declspec( dllexport ) void setAHBild( Bild *bild ); // setzt das Auswahl Hintergrund Bild (nur ohne MultiStyled)
-        __declspec( dllexport ) void setAHBildZ( Bild *bild ); // setzt einen Zeiger zum Auswahl Hintergrund Bild (nur ohne MultiStyled)
-        __declspec( dllexport ) void setAHFarbe( int fc ); // setzt die Auswahl Hintergrundfarbe (nur ohne MultiStyled)
-		__declspec( dllexport ) void setALRZ( int pos, LRahmen *rahmen ); // setzt einen Zeiger zum Auswahl Rahmen (nur mit MulitStyled)
-        __declspec( dllexport ) void setALRBreite( int pos, int br ); // setzt die Breite des Auswahl Rahmens (nur mit MultiStyled)
-        __declspec( dllexport ) void setALRFarbe( int pos, int fc ); // setzt die Farbe des Auswahl Rahmens (nur mit MultiStyled)
-		__declspec( dllexport ) void setAAFZ( int pos, AlphaFeld *buffer ); // setzt einen Zeiger zum Auswahl AlpaFeld (nur mit MultiStyled)
-        __declspec( dllexport ) void setAAFStärke( int pos, int st ); // setzt die Stärke des Auswahl Hintergrund Buffers (nur mit MultiStyled)
-        __declspec( dllexport ) void setAAFFarbe( int pos, int fc ); // setzt die Farbe des Auswahl Hintergrund Buffers (nur mit MultiStyled)
-        __declspec( dllexport ) void setAHBild( int pos, Bild *bild ); // setzt das Auswahl Hintergrund Bild (nur mit MultiStyled)
-        __declspec( dllexport ) void setAHBildZ( int pos, Bild *bild ); // setzt einen Zeiger zum Auswahl Hintergrund Bild (nur mit MultiStyled)
-        __declspec( dllexport ) void setAHFarbe( int pos, int fc ); // setzt die Auswahl Hintergrundfarbe (nur mit MultiStyled)
-		__declspec( dllexport ) void setMsStyle( int pos, __int64 style ); // setzt den Style des Eintrags (nur mit MultiStyled)
+    public:
+        // Konstruktor 
+        __declspec( dllexport ) AuswahlListe();
+        // Destruktor 
+        __declspec( dllexport ) ~AuswahlListe();
+        // Aktualisiert die Styles, größe und Position der Einträge
+        __declspec( dllexport ) void update();
+        // Fügt einen Eintrag hinzu
+        //  txt: Der Text des Eintrags
+        __declspec( dllexport ) void addEintrag( Text *txt );
+        // Fügt einen Eintrag hinzu
+        //  txt: Der Text des Eintrags
+        __declspec( dllexport ) void addEintrag( const char *txt );
+        // Fügt einen zeiger auf einen Eintrag hinzu
+        //  tf: Das TextFeld, mit dem der Eintrag gezeichnet wird
+        __declspec( dllexport ) void addEintragZ( TextFeld *tf );
+        // Fügt einen Eintrag an einer bestimmten Position hinzu
+        //  pos: Der Index des neuen Eintrags
+        //  txt: Der Text des Eintrags
+        __declspec( dllexport ) void addEintrag( int pos, Text *txt );
+        // Fügt einen Eintrag an einer bestimmten Position hinzu
+        //  pos: Der Index des neuen Eintrags
+        //  txt: Der Text des Eintrags
+        __declspec( dllexport ) void addEintrag( int pos, const char *txt );
+        // Fügt einen zeiger auf einen Eintrag an einer bestimmten Position hinzu
+        //  pos: Der Index des neuen Eintrags
+        //  tf: Das TextFeld, mit dem der Eintrag gezeichnet wird
+        __declspec( dllexport ) void addEintragZ( int pos, TextFeld *tf );
+        // Ändert einen Eintrag
+        //  pos: Der Index des Eintrags
+        //  txt: Der neue Text des Eintrags
+        __declspec( dllexport ) void setEintrag( int pos, Text *txt );
+        // Ändert einen Eintrag
+        //  pos: Der Index des Eintrags
+        //  txt: Der neue Text des Eintrags
+        __declspec( dllexport ) void setEintrag( int pos, unsigned char *txt );
+        // Ändert den Zeiger eines Eintrags
+        //  pos: Der Index des Eintrags
+        //  tf: Der neue Eintrag
+        __declspec( dllexport ) void setEintragZ( int pos, TextFeld *tf );
+        // Vertauscht die Positionen zweier Einträge
+        //  vpos: Der Index des ersten Eintrags
+        //  npos: Der Index des zweiten Eintrags
+        __declspec( dllexport ) void tauschEintragPos( int vpos, int npos );
+        // Löscht einen Eintrag
+        // pos: Der Index des Eintrags
+        __declspec( dllexport ) void löscheEintrag( int pos );
+        // Setzt die verwendete Schrift
+        //  schrift: Die Schrift
+        __declspec( dllexport ) void setSchriftZ( Schrift *schrift );
+        // Scrollt zu einem bestimmen Eintrag
+        //  eintrag: Der Index des Eintrags
+        __declspec( dllexport ) void setVScrollZuEintrag( int eintrag );
+        // Aktualisiert die maximale Scroll Höhe indem die Höhe aller Einträge addiert wird
+        __declspec( dllexport ) void updateVScroll();
+        // Setzt den Zeiger auf den Rahmen, der bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  rahmen: Der Rahmen
+        __declspec( dllexport ) void setALRZ( LRahmen *rahmen );
+        // Setzt die Breite des Rahmens, der bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  br: Die Breite in Pixeln
+        __declspec( dllexport ) void setALRBreite( int br );
+        // Setzt die Farbe des Rahmens, der bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  fc: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setALRFarbe( int fc );
+        // Setzt den Zeiger auf den Farbübergnag, der bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  buffer: Der Farbübergang
+        __declspec( dllexport ) void setAAFZ( AlphaFeld *buffer );
+        // Setzt die Stärke des Farbübergnags, der bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  st: Die Stärke
+        __declspec( dllexport ) void setAAFStärke( int st );
+        // Setzt die Farbe des Farbübergnags, der bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  fc: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setAAFFarbe( int fc );
+        // Setzt das Hintergrund Bild durch kopieren, das bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  bild: Das Bild, das kopiert werden soll
+        __declspec( dllexport ) void setAHBild( Bild *bild );
+        // Setzt einen Zeiger auf das Hintergrund Bild, das bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  bild: Das Bild, das kopiert werden soll
+        __declspec( dllexport ) void setAHBildZ( Bild *bild );
+        // Setzt die Hintergrund Farbe, die bei ausgewählten Einträgen verwendet wird, fals MulitStyled nicht gesetzt wurde
+        //  fc: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setAHFarbe( int fc );
+        // Setzt den Zeiger auf den Rahmen, der bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  rahmen: Der Rahmen
+        __declspec( dllexport ) void setALRZ( int pos, LRahmen *rahmen );
+        // Setzt die Breite des Rahmens, der bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  br: Die Breite in Pixeln
+        __declspec( dllexport ) void setALRBreite( int pos, int br );
+        // Setzt die Farbe des Rahmens, der bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  fc: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setALRFarbe( int pos, int fc );
+        // Setzt den Zeiger auf den Farbübergnag, der bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  buffer: Der Farbübergang
+        __declspec( dllexport ) void setAAFZ( int pos, AlphaFeld *buffer );
+        // Setzt die Stärke des Farbübergnags, der bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  st: Die Stärke
+        __declspec( dllexport ) void setAAFStärke( int pos, int st );
+        // Setzt die Farbe des Farbübergnags, der bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  fc: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setAAFFarbe( int pos, int fc );
+        // Setzt das Hintergrund Bild durch kopieren, das bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  bild: Das Bild, das kopiert werden soll
+        __declspec( dllexport ) void setAHBild( int pos, Bild *bild );
+        // Setzt einen Zeiger auf das Hintergrund Bild, das bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  bild: Das Bild, das kopiert werden soll
+        __declspec( dllexport ) void setAHBildZ( int pos, Bild *bild );
+        // Setzt die Hintergrund Farbe, die bei einem ausgewählten Eintrag verwendet wird, fals MulitStyled gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  fc: Die Farbe im A8R8G8B8 Format
+        __declspec( dllexport ) void setAHFarbe( int pos, int fc );
+        // Setzt den Style eines Eintrags, falls MulitStyled gesetzt wurde und legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  style: Der neue Style
+        __declspec( dllexport ) void setMsStyle( int pos, __int64 style );
+        // Ändert den Style eines Eintrags, falls MulitStyled gesetzt wurde und legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  style: Der Style
+        //  add_löschen: 1, falls der Style hinzugefügt werden soll. 0, falls der Style entfernt weden soll
         __declspec( dllexport ) void setMsStyle( int pos, __int64 style, bool add_löschen );
-		__declspec( dllexport ) void addMsStyle( int pos, __int64 style );
-		__declspec( dllexport ) void löscheMsStyle( int pos, __int64 style );
-		__declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
-		__declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override;
-		__declspec( dllexport ) void render( Bild &zRObj ) override; // zeichnet nach zRObj
+        // Fügt Styles zu einem Eintrag hinzu, falls MulitStyled gesetzt wurde und legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  style: Der Style, der hinzugefügt werden soll
+        __declspec( dllexport ) void addMsStyle( int pos, __int64 style );
+        // Entfernt Styles von einem Eintrag, falls MulitStyled gesetzt wurde und legt fest, ob ein Eintrag ausgewählt ist, falls MultiSelect gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  style: Der Style, der entfernt werden soll
+        __declspec( dllexport ) void löscheMsStyle( int pos, __int64 style );
+        // Verarbeitet Tastatur Nachrichten
+        //  me: Das Ereignis, was durch die Tastatureingabe ausgelößt wurde
+        __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
+        // Verarbeitet ein Tastatur Ereignis. Wird vom Framework automatisch aufgerufen
+        //  te: Das Ereignis
+        __declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override;
+        // Zeichnet das Objekt nach zRObj, falls es sichtbar ist
+        //  zRObj: Das Bild, in welches gezeichnet werden soll
+        __declspec( dllexport ) void render( Bild &zRObj ) override;
+        // Gibt den Index eines Eintrags zurück, auf den die Maus zeigt
+        //  my: Die Position der Maus auf der Y Achse basierend auf dem oberend Rand der Liste
         __declspec( dllexport ) int getKlickEintrag( int my );
-        __declspec( dllexport ) void setAuswahl( int ausw ); // setzt die Auswahl
-		__declspec( dllexport ) void deSelect(); // deselectiert die Auswahl
-		// constant 
-		__declspec( dllexport ) int getEintragAnzahl() const; // gibt die Anzahl der Einträge zurück
-		__declspec( dllexport ) int getAuswahl() const; // gibt den ersten ausgewählten Eintrag zurück
-		__declspec( dllexport ) int getEintragPos( Text *eintragText ); // gibt die Position des eintrages mit dem entsprechenden Textes zurück
-		__declspec( dllexport ) TextFeld *getEintrag( int pos ) const; // gibt den pos- ten Eintrag zurück
-		__declspec( dllexport ) TextFeld *zEintrag( int pos ) const;
-		__declspec( dllexport ) LRahmen *getARahmen() const; // gibt den Auswahl Rahmen zurück (ohne MultiStyled)
-		__declspec( dllexport ) LRahmen *zARahmen() const;
-		__declspec( dllexport ) int getAHFarbe() const; // gibt die Auswahl Hintergrund Farbe zurück (ohne MultiStyled)
-		__declspec( dllexport ) Bild *getAHBild() const; // gibt das Auswahl Hintergrund Bild zurück (ohne MultiStyled)
-		__declspec( dllexport ) Bild *zAHBild() const;
-		__declspec( dllexport ) AlphaFeld *getABuffer() const; // gibt den Auswahl Buffer zurück (ohne MultiStyled)
-		__declspec( dllexport ) AlphaFeld *zABuffer() const;
-		__declspec( dllexport ) LRahmen *getARahmen( int pos ) const; // gibt den Auswahl Rahmen zurück (mit MultiStyled)
-		__declspec( dllexport ) LRahmen *zARahmen( int pos ) const;
-		__declspec( dllexport ) int getAHFarbe( int pos ) const; // gibt die Auswahl Hintergrund Farbe zurück (mit MultiStyled)
-		__declspec( dllexport ) Bild *getAHBild( int pos ) const; // gibt das Auswahl Hintergrund Bild zurück (mit MultiStyled)
-		__declspec( dllexport ) Bild *zAHBild( int pos ) const;
-		__declspec( dllexport ) AlphaFeld *getABuffer( int pos ) const; // gibt den Auswahl Buffer zurück (mit MultiStyled)
-		__declspec( dllexport ) AlphaFeld *zABuffer( int pos ) const;
-		__declspec( dllexport ) inline bool hatMsStyle( int pos, __int64 style ) const; // prüft ob style vorhanden (mit MultiStyled)
-		__declspec( dllexport ) inline bool hatMsStyleNicht( int pos, __int64 style ) const; // prüft obt style nicht vorhanden (mit MultiStyled)
-		// Reference Counting 
-		__declspec( dllexport ) AuswahlListe *getThis();
-		__declspec( dllexport ) AuswahlListe *release();
-	};
+        // Wählt einen Eintrag aus
+        //  ausw: Der Index des Eintrags
+        __declspec( dllexport ) void setAuswahl( int ausw );
+        // Wählt alle ausgewählten Einträge ab
+        __declspec( dllexport ) void deSelect();
+        // Gibt die Anzahl an Einträgen zurück
+        __declspec( dllexport ) int getEintragAnzahl() const;
+        // Gibt den Index des ausgewählten Eintrags zurück, fals MultiSelect nicht gesetzt ist. Wenn MultiSelect gesetzt wurde, kann die Auswahl eines Eintrags mit hatMsStyle( Eintrag Index, AuswahlListe::Style::Ausgewählt ) geprüft werden
+        __declspec( dllexport ) int getAuswahl() const;
+        // Gibt den Index eines Eintrags zurück
+        //  eintragText: Der Text des Eintrags
+        __declspec( dllexport ) int getEintragPos( Text *eintragText );
+        // Gibt einen Eintrag zurück
+        //  pos: Der Index des Eintrags
+        __declspec( dllexport ) TextFeld *getEintrag( int pos ) const;
+        // Gibt einen Eintrag ohne erhöhten reference Counter zurück
+        //  pos: Der Index des Eintrags
+        __declspec( dllexport ) TextFeld *zEintrag( int pos ) const;
+        // Gibt den Rahmen zurück, der für ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt wurde
+        __declspec( dllexport ) LRahmen *getARahmen() const;
+        // Gibt den Rahmen ohne erhöhten Reference Counter zurück, der für ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt wurde
+        __declspec( dllexport ) LRahmen *zARahmen() const;
+        // Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die für ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt wurde
+        __declspec( dllexport ) int getAHFarbe() const;
+        // Gibt das Hintergrund Bild zurück, das für ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt wurde
+        __declspec( dllexport ) Bild *getAHBild() const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das für ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt wurde
+        __declspec( dllexport ) Bild *zAHBild() const;
+        // Gibt den Farbverlauf zurück, der für ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt wurde
+        __declspec( dllexport ) AlphaFeld *getABuffer() const;
+        // Gibt den Farbverlauf ohne erhöhten Reference Counter zurück, der für ausgewählte Einträge verwendet wird, falls MultiStyled nicht gesetzt wurde
+        __declspec( dllexport ) AlphaFeld *zABuffer() const;
+        // Gibt den Rahmen zurück, der für einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
+        __declspec( dllexport ) LRahmen *getARahmen( int pos ) const;
+        // Gibt den Rahmen ohne erhöhten Reference Counter zurück, der für einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
+        __declspec( dllexport ) LRahmen *zARahmen( int pos ) const;
+        // Gibt die Hintegrrund Farbe im A8R8G8B8 Format zurück, die für einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
+        __declspec( dllexport ) int getAHFarbe( int pos ) const;
+        // Gibt das Hintergrund Bild zurück, das für einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
+        __declspec( dllexport ) Bild *getAHBild( int pos ) const;
+        // Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück, das für einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
+        __declspec( dllexport ) Bild *zAHBild( int pos ) const;
+        // Gibt den Farbübergang zurück, der für einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
+        __declspec( dllexport ) AlphaFeld *getABuffer( int pos ) const;
+        // Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der für einen ausgewählten Eintrag verwendet wird, falls MultiStyled gesetzt wurde
+        __declspec( dllexport ) AlphaFeld *zABuffer( int pos ) const;
+        // Überprüft, ob für einen Bestimmten Eintarg betimmte Styles gesetzt wurden, falls MultiStyled gesetzt wurde. Überprüft auch, ob ein Eintrag ausgewählt wurde, falls MultiSelect gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  style: Die zu prüfenden Styles
+        __declspec( dllexport ) inline bool hatMsStyle( int pos, __int64 style ) const;
+        // Überprüft, ob für einen Bestimmten Eintarg betimmte Styles nicht gesetzt wurden, falls MultiStyled gesetzt wurde. Überprüft auch, ob ein Eintrag nicht ausgewählt wurde, falls MultiSelect gesetzt wurde
+        //  pos: Der Index des Eintrags
+        //  style: Die zu prüfenden Styles
+        __declspec( dllexport ) inline bool hatMsStyleNicht( int pos, __int64 style ) const;
+        // Erhöht den Reference Counting Zähler.
+        //  return: this.
+        __declspec( dllexport ) AuswahlListe *getThis();
+        // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
+        //  return: 0.
+        __declspec( dllexport ) AuswahlListe *release();
+    };
 }
 
 #endif

+ 1 - 1
Zeichnung.h

@@ -28,7 +28,7 @@ namespace Framework
         public:
             const static __int64 Sichtbar = 0x00001; // Wenn dieser Style gesetzt ist, wird die Zeichnung beim Zeichnen angezeigt
             const static __int64 Erlaubt = 0x00002; // Wenn dieser Style gesetzt ist, kann der Benutzer mit der Zeichnung interagieren
-            const static __int64 Fokus = 0x00040; // Wenn dieser Style gesetzt ist, werden die Tastatur Ereignisse von der Zeichnung verarbeitet
+            const static __int64 Fokus = 0x00004; // Wenn dieser Style gesetzt ist, werden die Tastatur Ereignisse von der Zeichnung verarbeitet
         };
 	protected:
 		Punkt pos;