Browse Source

Alle ö,ü,ä,ß entfernt und Remotebuild für Linux eingerichtet

kolja 7 years ago
parent
commit
6b33794691
95 changed files with 8457 additions and 7830 deletions
  1. 65 62
      AlphaFeld.cpp
  2. 5 3
      AlphaFeld.h
  3. 7 7
      Animation.cpp
  4. 1 1
      Animation.h
  5. 49 47
      Array.h
  6. 118 121
      AuswahlBox.cpp
  7. 24 24
      AuswahlBox.h
  8. 4 1
      Betriebssystem.h
  9. 1935 1935
      Bild.cpp
  10. 45 45
      Bild.h
  11. 78 72
      Bildschirm.cpp
  12. 15 14
      Bildschirm.h
  13. 10 10
      Cube.cpp
  14. 48 24
      DXBuffer.cpp
  15. 23 11
      DXBuffer.h
  16. 64 64
      Datei.cpp
  17. 15 15
      Datei.h
  18. 16 16
      DateiDialog.cpp
  19. 4 4
      DateiDialog.h
  20. 2511 2511
      DateiSystem.cpp
  21. 27 27
      DateiSystem.h
  22. 120 120
      Diagramm.cpp
  23. 26 26
      Diagramm.h
  24. 2 2
      DreieckListe.h
  25. 8 8
      Ebene3D.h
  26. 237 236
      Fenster.cpp
  27. 50 50
      Fenster.h
  28. 17 17
      Fortschritt.cpp
  29. 4 4
      Fortschritt.h
  30. 221 0
      Framework Linux.vcxproj
  31. 369 0
      Framework Linux.vcxproj.filters
  32. 20 2
      Framework.sln
  33. 10 25
      Framework.vcxproj
  34. 6 6
      Framework.vcxproj.filters
  35. 19 21
      Global.cpp
  36. 11 11
      Globals.h
  37. 24 24
      InitDatei.cpp
  38. 4 4
      InitDatei.h
  39. 17 17
      KSGTDatei.cpp
  40. 2 2
      KSGTDatei.h
  41. 4 4
      Kam3D.cpp
  42. 4 4
      Kam3D.h
  43. 64 64
      Key.cpp
  44. 31 31
      Key.h
  45. 68 68
      Knopf.cpp
  46. 8 8
      Knopf.h
  47. 68 68
      Liste.cpp
  48. 9 9
      Liste.h
  49. 14 14
      M2DVorschau.cpp
  50. 1 1
      M2DVorschau.h
  51. 299 299
      M2Datei.cpp
  52. 2 2
      M2Datei.h
  53. 26 26
      M3Datei.cpp
  54. 2 2
      M3Datei.h
  55. 4 4
      Mat4.h
  56. 3 3
      Maus.cpp
  57. 1 1
      MausEreignis.h
  58. 64 95
      Model2D.cpp
  59. 8 30
      Model2D.h
  60. 16 9
      Model3D.cpp
  61. 2 2
      Model3D.h
  62. 5 3
      Model3DList.cpp
  63. 2 3
      Model3DList.h
  64. 6 2
      Rahmen.cpp
  65. 2 0
      Rahmen.h
  66. 3 3
      Render3D.cpp
  67. 135 134
      Schrift.cpp
  68. 27 26
      Schrift.h
  69. 44 36
      Scroll.cpp
  70. 17 13
      Scroll.h
  71. 12 12
      Shader.cpp
  72. 6 6
      Shader.h
  73. 143 143
      Tabelle.cpp
  74. 44 44
      Tabelle.h
  75. 130 130
      Text.cpp
  76. 28 28
      Text.h
  77. 697 699
      TextFeld.cpp
  78. 5 5
      TextFeld.h
  79. 14 8
      Textur.cpp
  80. 3 3
      TexturList.cpp
  81. 1 1
      TexturList.h
  82. 3 3
      TexturModel.cpp
  83. 2 2
      TexturModel.h
  84. 3 3
      Thread.cpp
  85. 1 1
      Thread.h
  86. 23 23
      ToolTip.cpp
  87. 4 4
      ToolTip.h
  88. 6 6
      Vec2.h
  89. 7 7
      Vec3.h
  90. 6 2
      Welt3D.cpp
  91. 1 1
      Welt3D.h
  92. 39 37
      Zeichnung.cpp
  93. 13 13
      Zeichnung.h
  94. 84 84
      Zeit.cpp
  95. 12 12
      Zeit.h

+ 65 - 62
AlphaFeld.cpp

@@ -10,99 +10,102 @@ using namespace Framework;
 // Inhalt der AlphaFeld Klasse aus AlphaFeld.h
 // Konstruktor 
 AlphaFeld::AlphaFeld()
-    : Zeichnung(),
-    stärke( 5 ),
-    farbe( 0x9B000000 ),
-    ref( 1 )
+	: Zeichnung(),
+	strength( 5 ),
+	farbe( 0x9B000000 ),
+	ref( 1 )
+{}
+
+AlphaFeld::~AlphaFeld()
 {}
 
 // nicht constant 
-void AlphaFeld::setStärke( int st ) // setzt die Stärke
+void AlphaFeld::setStrength( int st ) // setzt die Stärke
 {
-    stärke = st;
-    rend = 1;
+	strength = st;
+	rend = 1;
 }
 
 void AlphaFeld::setFarbe( int f ) // setzt die Farbe
 {
-    farbe = f;
-    rend = 1;
+	farbe = f;
+	rend = 1;
 }
 
 void AlphaFeld::render( Bild &zRObj ) // zeichnet nach zRObj
 {
-    __super::render( zRObj );
-    int br = gr.x - 1;
-    int hö = gr.y - 1;
-    int xp = pos.x, yp = pos.y;
-    int a = ( farbe >> 24 ) & 0xFF;
-    int index = ( br / 2 ) * ( br <= hö ) + ( hö / 2 ) * ( br > hö );
-    int fc = farbe & 0x00FFFFFF;
-    int fc2 = farbe;
-    if( stärke > 0 )
-        index = index > ( a / stärke ) ? a / stärke : index;
-    if( stärke < 0 )
-        index = index > ( ( 255 - a ) / -stärke ) ? ( ( 255 - a ) / -stärke ) : index;
-    for( int i = 0; i < index; ++i )
-    {
-        a -= stärke;
-        fc2 = ( a << 24 ) | fc;
-        int i2 = i << 1;
-        zRObj.drawLinieHAlpha( xp + i + 1, yp + i, br - i2, fc2 );		// oben links --- oben rechts
-        zRObj.drawLinieVAlpha( xp + br - i, yp + i + 1, hö - i2, fc2 );	// oben rechts -- unten rechts
-        zRObj.drawLinieHAlpha( xp + i, yp + hö - i, br - i2, fc2 );		// unten rechts - unten links
-        zRObj.drawLinieVAlpha( xp + i, yp + i, hö - i2, fc2 );			// unten links -- oben links
-    }
-    if( index == br / 2 )
-    {
-        for( int i = index; i <= index + ( br - index ) - index; ++i )
-            zRObj.drawLinieVAlpha( xp + i, yp + index, hö - ( index << 1 ) + 1, fc2 ); // rest Fläche senkrecht
-    }
-    else
-    {
-        for( int i = index; i <= index + ( hö - index ) - index; ++i )
-            zRObj.drawLinieHAlpha( xp + index, yp + i, br - ( index << 1 ) + 1, fc2 ); // rest Fläche waagerecht
-    }
+	Zeichnung::render( zRObj );
+	int br = gr.x - 1;
+	int hi = gr.y - 1;
+	int xp = pos.x, yp = pos.y;
+	int a = ( farbe >> 24 ) & 0xFF;
+	int index = ( br / 2 ) * ( br <= hi ) + ( hi / 2 ) * ( br > hi );
+	int fc = farbe & 0x00FFFFFF;
+	int fc2 = farbe;
+	if( strength > 0 )
+		index = index > ( a / strength ) ? a / strength : index;
+	if( strength < 0 )
+		index = index > ( ( 255 - a ) / -strength ) ? ( ( 255 - a ) / -strength ) : index;
+	for( int i = 0; i < index; ++i )
+	{
+		a -= strength;
+		fc2 = ( a << 24 ) | fc;
+		int i2 = i << 1;
+		zRObj.drawLinieHAlpha( xp + i + 1, yp + i, br - i2, fc2 );		// oben links --- oben rechts
+		zRObj.drawLinieVAlpha( xp + br - i, yp + i + 1, hi - i2, fc2 );	// oben rechts -- unten rechts
+		zRObj.drawLinieHAlpha( xp + i, yp + hi - i, br - i2, fc2 );		// unten rechts - unten links
+		zRObj.drawLinieVAlpha( xp + i, yp + i, hi - i2, fc2 );			// unten links -- oben links
+	}
+	if( index == br / 2 )
+	{
+		for( int i = index; i <= index + ( br - index ) - index; ++i )
+			zRObj.drawLinieVAlpha( xp + i, yp + index, hi - ( index << 1 ) + 1, fc2 ); // rest Fläche senkrecht
+	}
+	else
+	{
+		for( int i = index; i <= index + ( hi - index ) - index; ++i )
+			zRObj.drawLinieHAlpha( xp + index, yp + i, br - ( index << 1 ) + 1, fc2 ); // rest Fläche waagerecht
+	}
 }
 
 // constant 
-int AlphaFeld::getStärke() const // gibt die Stärke zurück
+int AlphaFeld::getStrength() const // gibt die Stärke zurück
 {
-    return stärke;
+	return strength;
 }
 
 int AlphaFeld::getFarbe() const // gibt die Farbe zurück
 {
-    return farbe;
+	return farbe;
 }
 
 Zeichnung *AlphaFeld::dublizieren() const // Kopiert das Zeichnung
 {
-    AlphaFeld *obj = new AlphaFeld();
-    obj->setPosition( pos );
-    obj->setGröße( gr );
-    obj->setMausEreignisParameter( makParam );
-    obj->setTastaturEreignisParameter( takParam );
-    obj->setMausEreignis( Mak );
-    obj->setTastaturEreignis( Tak );
-    if( toolTip )
-        obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
-    obj->setStärke( stärke );
-    obj->setFarbe( farbe );
-    return obj;
+	AlphaFeld *obj = new AlphaFeld();
+	obj->setPosition( pos );
+	obj->setSize( gr );
+	obj->setMausEreignisParameter( makParam );
+	obj->setTastaturEreignisParameter( takParam );
+	obj->setMausEreignis( Mak );
+	obj->setTastaturEreignis( Tak );
+	if( toolTip )
+		obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
+	obj->setStrength( strength );
+	obj->setFarbe( farbe );
+	return obj;
 }
 
 // Reference Counting 
 AlphaFeld *AlphaFeld::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 AlphaFeld *AlphaFeld::release()
 {
-    --ref;
-    if( !ref )
-        delete this;
-    return 0;
+	--ref;
+	if( !ref )
+		delete this;
+	return 0;
 }

+ 5 - 3
AlphaFeld.h

@@ -12,16 +12,18 @@ namespace Framework
     class AlphaFeld : public Zeichnung
     {
     private:
-        int stärke;
+        int strength;
         int farbe;
         int ref;
 
     public:
         // Konstruktor 
         __declspec( dllexport ) AlphaFeld();
+		//Destruktor
+		__declspec( dllexport ) virtual ~AlphaFeld();
         // Setzt die Stärke des Übergangs. Dies ist der Wert um den der Alpha Wert der Farbe für jeden Pixel nach innen abnimmt
         //  st: Die Stärke
-        __declspec( dllexport ) void setStärke( int st );
+        __declspec( dllexport ) void setStrength( int st );
         // Setzt die Farbe des Alpha Feldes
         //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setFarbe( int f );
@@ -29,7 +31,7 @@ namespace Framework
         //  zRObj: Das Bild, in das gezeichnet werden soll
         __declspec( dllexport ) void render( Bild &zRObj ) override;
         // Gibt die Stärke des Alpha Feldes zurück
-        __declspec( dllexport ) int getStärke() const;
+        __declspec( dllexport ) int getStrength() const;
         // gibt die Farbe des Alpha Feldes im A8R8G8B8 Format zurück
         __declspec( dllexport ) int getFarbe() const;
         // Kopiert das Alpha Feld, so dass es ohne auswirkungen auf das Original verwendet werden kann

+ 7 - 7
Animation.cpp

@@ -71,10 +71,10 @@ void Animation2DData::ladeAnimation( InitDatei *datei )
             continue;
         bilder[ j ] = 0;
         Text pfad = datei->zWert( i )->getText();
-        if( pfad.hat( ".ltdb/" ) && pfad.getLänge() > 7 )
+        if( pfad.hat( ".ltdb/" ) && pfad.getLength() > 7 )
         {
             Text *name = pfad.getTeilText( pfad.positionVon( ".ltdb/", pfad.anzahlVon( ".ltdb/" ) - 1 ) + 6 );
-            pfad.setText( pfad.getTeilText( 0, pfad.getLänge() - name->getLänge() - 1 ) );
+            pfad.setText( pfad.getTeilText( 0, pfad.getLength() - name->getLength() - 1 ) );
             LTDBDatei *dat = new LTDBDatei();
             dat->setDatei( pfad.getThis() );
             dat->leseDaten( 0 );
@@ -295,7 +295,7 @@ bool Animation2D::tick( double zeit )
         if( alpha + aps * zeit >= maxAlpha )
             alpha = maxAlpha;
         else
-            alpha += (unsigned char)( aps * zeit );
+            alpha = (unsigned char)( alpha + aps * zeit );
         rend = 1;
     }
     else if( !sichtbar && alpha > 0 )
@@ -303,7 +303,7 @@ bool Animation2D::tick( double zeit )
         if( alpha - aps * zeit <= 0 )
             alpha = 0;
         else
-            alpha -= (unsigned char)( aps * zeit );
+            alpha = (unsigned char)( alpha - aps * zeit );
         rend = 1;
     }
     ausgleich += zeit;
@@ -338,7 +338,7 @@ void Animation2D::render( Bild &zRObj )
         unlockZeichnung();
         return;
     }
-    __super::render( zRObj );
+	Zeichnung::render( zRObj );
     data->lock();
     if( data->zBild( jetzt ) )
     {
@@ -350,7 +350,7 @@ void Animation2D::render( Bild &zRObj )
         if( ram && rahmen )
         {
             ram->setPosition( pos );
-            ram->setGröße( gr );
+            ram->setSize( gr );
             ram->render( zRObj );
         }
         zRObj.releaseAlpha();
@@ -414,7 +414,7 @@ Zeichnung *Animation2D::dublizieren() const
 {
     Animation2D *ret = new Animation2D();
     ret->setPosition( pos );
-    ret->setGröße( gr );
+    ret->setSize( gr );
     ret->setMausEreignisParameter( makParam );
     ret->setTastaturEreignisParameter( takParam );
     ret->setMausEreignis( Mak );

+ 1 - 1
Animation.h

@@ -96,7 +96,7 @@ namespace Framework
         // Konstruktor
         __declspec( dllexport ) Animation2D();
         // Destruktor
-        __declspec( dllexport ) ~Animation2D();
+        __declspec( dllexport ) virtual ~Animation2D();
         // Legt fest, ob ein Rahmen um die Animation gezeichnet werden soll
         //  ram: 1, wenn ein Rahmen gezeichnet werden soll
         __declspec( dllexport ) void setRahmen( bool ram );

+ 49 - 47
Array.h

@@ -33,7 +33,8 @@ namespace Framework
         {
             if( !next )
             {
-                *this = ArrayEintrag{ 0, 0, 0 };
+                ArrayEintrag<TYP> tmp = ArrayEintrag{ 0, 0, 0 };
+                *this = tmp;
                 return *this;
             }
             *this = *next;
@@ -44,7 +45,8 @@ namespace Framework
         {
             if( !next )
             {
-                *this = ArrayEintrag{ 0, 0, 0 };
+                ArrayEintrag<TYP> tmp = ArrayEintrag{ 0, 0, 0 };
+                *this = tmp;
                 return *this;
             }
             *this = *next;
@@ -57,16 +59,16 @@ namespace Framework
     class Array
     {
     private:
-        ArrayEintrag< TYP > *einträge;
+        ArrayEintrag< TYP > *entries;
         int ref;
 
     public:
         // Erstellt eine neue Linked List
         Array()
         {
-            einträge = new ArrayEintrag< TYP >();
-            einträge->set = 0;
-            einträge->next = 0;
+			entries = new ArrayEintrag< TYP >();
+			entries->set = 0;
+            entries->next = 0;
             ref = 1;
         }
 
@@ -74,14 +76,14 @@ namespace Framework
         ~Array()
         {
             leeren();
-            delete einträge;
+            delete entries;
         }
 
         // Hängt ein Element ans Ende der Liste an
         //  t: Das neue Element
         void add( TYP t )
         {
-            for( ArrayEintrag< TYP > *e = einträge; 1; e = e->next )
+            for( ArrayEintrag< TYP > *e = entries; 1; e = e->next )
             {
                 if( !e->set && !e->next )
                 {
@@ -105,7 +107,7 @@ namespace Framework
         {
             if( i < 0 )
                 return;
-            ArrayEintrag< TYP > *e = einträge;
+            ArrayEintrag< TYP > *e = entries;
             for( int a = 0; a < i; ++a )
             {
                 if( !e->next )
@@ -133,7 +135,7 @@ namespace Framework
         {
             if( i < 0 )
                 return;
-            ArrayEintrag< TYP > *e = einträge;
+            ArrayEintrag< TYP > *e = entries;
             for( int a = 0; a < i; ++a )
             {
                 if( !e->next )
@@ -156,7 +158,7 @@ namespace Framework
         {
             if( i < 0 || p < 0 || i == p )
                 return;
-            ArrayEintrag< TYP > *e = einträge;
+            ArrayEintrag< TYP > *e = entries;
             ArrayEintrag< TYP > *ve = 0;
             for( int a = 0; a < i; ++a )
             {
@@ -165,7 +167,7 @@ namespace Framework
                 ve = e;
                 e = e->next;
             }
-            ArrayEintrag< TYP > *e2 = einträge == e ? e->next : einträge;
+            ArrayEintrag< TYP > *e2 = entries == e ? e->next : entries;
             ArrayEintrag< TYP > *ve2 = 0;
             for( int a = 0; a < p; ++a )
             {
@@ -180,23 +182,23 @@ namespace Framework
             if( !e )
                 return;
             if( !ve2 )
-                einträge = e;
+				entries = e;
             else
                 ve2->next = e;
             if( ve )
                 ve->next = e->next;
             else
-                einträge = e->next;
+				entries = e->next;
             e->next = e2;
         }
 
         // Löscht ein Bestimmtes Element
         //  i: Der Index des Elementes das gelöscht werden soll
-        void lösche( int i )
+        void remove( int i )
         {
             if( i < 0 )
                 return;
-            ArrayEintrag< TYP > *e = einträge;
+            ArrayEintrag< TYP > *e = entries;
             for( int a = 0; a < i; ++a )
             {
                 if( !e->next )
@@ -241,29 +243,29 @@ namespace Framework
         void leeren()
         {
             ArrayEintrag< TYP > *e2 = 0;
-            for( ArrayEintrag< TYP > *e = einträge; e; e = e->next )
+            for( ArrayEintrag< TYP > *e = entries; e; e = e->next )
             {
                 delete e2;
                 e2 = e;
             }
             delete e2;
-            einträge = new ArrayEintrag< TYP >();
-            einträge->set = 0;
-            einträge->next = 0;
+			entries = new ArrayEintrag< TYP >();
+			entries->set = 0;
+			entries->next = 0;
         }
 
         // Gibt das Erste Element der Liste zurück.
         // Mit ++ kann durch die Liste iteriert werden
         ArrayEintrag< TYP > &getArray()
         {
-            return *einträge;
+            return *entries;
         }
 
         // Gibt zurück, wie viele Elemente in der Liste sind
         int getEintragAnzahl() const
         {
             int i = 0;
-            for( ArrayEintrag< TYP > *e = einträge; e && ( e->set || e->next ); e = e->next )
+            for( ArrayEintrag< TYP > *e = entries; e && ( e->set || e->next ); e = e->next )
                 ++i;
             return i;
         }
@@ -284,7 +286,7 @@ namespace Framework
                 err += i;
                 throw std::out_of_range( (char*)err );
             }
-            ArrayEintrag< TYP > *e = einträge;
+            ArrayEintrag< TYP > *e = entries;
             for( int a = 0; a < i && e; ++a )
                 e = e->next;
             if( e && e->set )
@@ -305,7 +307,7 @@ namespace Framework
         {
             if( i < 0 )
                 return 0;
-            ArrayEintrag< TYP > *e = einträge;
+            ArrayEintrag< TYP > *e = entries;
             for( int a = 0; a < i && e; ++a )
                 e = e->next;
             if( e && e->set )
@@ -318,7 +320,7 @@ namespace Framework
         int getWertIndex( TYP t ) const
         {
             int ret = 0;
-            for( ArrayEintrag< TYP > *e = einträge; e; e = e->next )
+            for( ArrayEintrag< TYP > *e = entries; e; e = e->next )
             {
                 if( e->set && e->var == t )
                     return ret;
@@ -351,16 +353,16 @@ namespace Framework
     class RCArray
     {
     private:
-        ArrayEintrag< TYP* > *einträge;
+        ArrayEintrag< TYP* > *entries;
         int ref;
 
     public:
         // Erstellt eine neue Linked List
         RCArray()
         {
-            einträge = new ArrayEintrag< TYP* >();
-            einträge->set = 0;
-            einträge->next = 0;
+            entries = new ArrayEintrag< TYP* >();
+            entries->set = 0;
+            entries->next = 0;
             ref = 1;
         }
 
@@ -368,14 +370,14 @@ namespace Framework
         ~RCArray()
         {
             leeren();
-            delete einträge;
+            delete entries;
         }
 
         // Hängt ein Element ans Ende der Liste an
         //  t: Das neue Element
         void add( TYP* t )
         {
-            for( ArrayEintrag< TYP* > *e = einträge; 1; e = e->next )
+            for( ArrayEintrag< TYP* > *e = entries; 1; e = e->next )
             {
                 if( !e->set && !e->next )
                 {
@@ -405,7 +407,7 @@ namespace Framework
                     t->release();
                 return;
             }
-            ArrayEintrag< TYP* > *e = einträge;
+            ArrayEintrag< TYP* > *e = entries;
             for( int a = 0; a < i; ++a )
             {
                 if( !e->next )
@@ -437,7 +439,7 @@ namespace Framework
                     t->release();
                 return;
             }
-            ArrayEintrag< TYP* > *e = einträge;
+            ArrayEintrag< TYP* > *e = entries;
             for( int a = 0; a < i; ++a )
             {
                 if( !e->next )
@@ -463,7 +465,7 @@ namespace Framework
             if( i < 0 || p < 0 || i == p )
                 return;
             ArrayEintrag< TYP* > *ve = 0;
-            ArrayEintrag< TYP* > *e = einträge;
+            ArrayEintrag< TYP* > *e = entries;
             for( int a = 0; a < i; ++a )
             {
                 if( !e->next )
@@ -471,7 +473,7 @@ namespace Framework
                 ve = e;
                 e = e->next;
             }
-            ArrayEintrag< TYP* > *e2 = einträge == e ? e->next : einträge;
+            ArrayEintrag< TYP* > *e2 = entries == e ? e->next : entries;
             ArrayEintrag< TYP* > *ve2 = 0;
             for( int a = 0; a < p; ++a )
             {
@@ -486,23 +488,23 @@ namespace Framework
             if( !e )
                 return;
             if( !ve2 )
-                einträge = e;
+                entries = e;
             else
                 ve2->next = e;
             if( ve )
                 ve->next = e->next;
             else
-                einträge = e->next;
+                entries = e->next;
             e->next = e2;
         }
 
         // Löscht ein Bestimmtes Element
         //  i: Der Index des Elementes das gelöscht werden soll
-        void lösche( int i )
+        void remove( int i )
         {
             if( i < 0 )
                 return;
-            ArrayEintrag< TYP* > *e = einträge;
+            ArrayEintrag< TYP* > *e = entries;
             for( int a = 0; a < i; ++a )
             {
                 if( !e->next )
@@ -553,7 +555,7 @@ namespace Framework
         void leeren()
         {
             ArrayEintrag< TYP* > *e2 = 0;
-            for( ArrayEintrag< TYP* > *e = einträge; e; e = e->next )
+            for( ArrayEintrag< TYP* > *e = entries; e; e = e->next )
             {
                 if( e2 && e2->var && e2->set )
                     e2->var->release();
@@ -563,23 +565,23 @@ namespace Framework
             if( e2 && e2->var && e2->set )
                 e2->var->release();
             delete e2;
-            einträge = new ArrayEintrag< TYP* >();
-            einträge->set = 0;
-            einträge->next = 0;
+            entries = new ArrayEintrag< TYP* >();
+            entries->set = 0;
+            entries->next = 0;
         }
 
         // Gibt das Erste Element der Liste zurück.
         // Mit ++ kann durch die Liste iteriert werden
         ArrayEintrag< TYP* > &getArray()
         {
-            return *einträge;
+            return *entries;
         }
 
         // Gibt zurück, wie viele Elemente in der Liste sind
         int getEintragAnzahl() const
         {
             int i = 0;
-            for( ArrayEintrag< TYP* > *e = einträge; e && ( e->set || e->next ); e = e->next )
+            for( ArrayEintrag< TYP* > *e = entries; e && ( e->set || e->next ); e = e->next )
                 ++i;
             return i;
         }
@@ -590,7 +592,7 @@ namespace Framework
         {
             if( i < 0 )
                 return (TYP*)0;
-            ArrayEintrag< TYP* > *e = einträge;
+            ArrayEintrag< TYP* > *e = entries;
             for( int a = 0; a < i && e; ++a )
                 e = e->next;
             if( e && e->set && e->var )
@@ -604,7 +606,7 @@ namespace Framework
         {
             if( i < 0 )
                 return (TYP*)0;
-            ArrayEintrag< TYP* > *e = einträge;
+            ArrayEintrag< TYP* > *e = entries;
             for( int a = 0; a < i && e; ++a )
                 e = e->next;
             if( e && e->set && e->var )

+ 118 - 121
AuswahlBox.cpp

@@ -40,9 +40,9 @@ AuswahlBox::AuswahlBox()
     anzahl( 0 ),
     auswahl( 0 ),
     ausgeklappt( 0 ),
-    ausklappHöhe( 0 ),
-    ausklapMaxHöhe( 200 ),
-    eintragHöhe( 15 ),
+    ausklappHeight( 0 ),
+    ausklapMaxHeight( 200 ),
+    eintragHeight( 15 ),
     tickval( 0 ),
     mausEintrag( 0 ),
     scrollAnzeigen( 0 ),
@@ -57,18 +57,18 @@ AuswahlBox::AuswahlBox()
     rahmen->setRamenBreite( 1 );
     ausfahren->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::KlickBuffer );
     ausfahren->setKBFarbe( 0xA0000000 );
-    ausfahren->setKBStärke( 10 );
-    ausfahren->setGröße( 18, 18 );
+    ausfahren->setKBStrength( 10 );
+    ausfahren->setSize( 18, 18 );
     ausfahren->setSchriftFarbe( 0xFFFFFFFF );
     ausfahren->setText( "\\/" );
     auswRahmen->setFarbe( 0xFF00FF00 );
     auswRahmen->setRamenBreite( 1 );
     auswAf->setFarbe( 0xA000FF00 );
-    auswAf->setStärke( 7 );
+    auswAf->setStrength( 7 );
     mausRahmen->setFarbe( 0xFF00FF00 );
     mausRahmen->setRamenBreite( 1 );
     mausAf->setFarbe( 0x5000FF00 );
-    mausAf->setStärke( 7 );
+    mausAf->setStrength( 7 );
     gr.x = 20;
     gr.y = 20;
 }
@@ -143,7 +143,7 @@ void AuswahlBox::addEintrag( const char *txt ) // Eintrag hinzuf
     tf->setText( txt );
     tf->setSchriftFarbe( 0xFFFFFFFF );
     tf->setLinienRahmenFarbe( 0xFFFFFFFF );
-    tf->setGröße( 0, eintragHöhe );
+    tf->setSize( 0, eintragHeight );
     members->add( tf, anzahl );
     ++anzahl;
     rend = 1;
@@ -158,7 +158,7 @@ void AuswahlBox::addEintrag( Text *txt )
     tf->setText( txt );
     tf->setSchriftFarbe( 0xFFFFFFFF );
     tf->setLinienRahmenFarbe( 0xFFFFFFFF );
-    tf->setGröße( 0, eintragHöhe );
+    tf->setSize( 0, eintragHeight );
     members->add( tf, anzahl );
     ++anzahl;
     rend = 1;
@@ -196,29 +196,29 @@ void AuswahlBox::setEintragZ( int i, TextFeld *txt )
     rend = 1;
 }
 
-void AuswahlBox::löscheEintrag( int i ) // Eintrag entfernen
+void AuswahlBox::removeEintrag( int i ) // Eintrag entfernen
 {
     if( i < anzahl )
     {
-        members->lösche( i );
+        members->remove( i );
         if( msStyle )
-            msStyle->lösche( i );
+            msStyle->remove( i );
         if( msAuswRahmen )
-            msAuswRahmen->lösche( i );
+            msAuswRahmen->remove( i );
         if( msAuswBgF )
-            msAuswBgF->lösche( i );
+            msAuswBgF->remove( i );
         if( msAuswBgB )
-            msAuswBgB->lösche( i );
+            msAuswBgB->remove( i );
         if( msAuswAf )
-            msAuswAf->lösche( i );
+            msAuswAf->remove( i );
         if( msMausRahmen )
-            msMausRahmen->lösche( i );
+            msMausRahmen->remove( i );
         if( msMausBgF )
-            msMausBgF->lösche( i );
+            msMausBgF->remove( i );
         if( msMausBgB )
-            msMausBgB->lösche( i );
+            msMausBgB->remove( i );
         if( msMausAf )
-            msMausAf->lösche( i );
+            msMausAf->remove( i );
         if( auswahl > i )
             --auswahl;
         if( mausEintrag > i )
@@ -298,10 +298,10 @@ void AuswahlBox::setEintragAlphaFeldFarbe( int i, int afF ) // Eintrag AlphaFeld
     rend = 1;
 }
 
-void AuswahlBox::setEintragAlphaFeldStärke( int i, int afSt ) // Eintrag AlphaFeld Stärke setzen
+void AuswahlBox::setEintragAlphaFeldStrength( int i, int afSt ) // Eintrag AlphaFeld Stärke setzen
 {
     if( members->z( i ) )
-        members->z( i )->setAlphaFeldStärke( afSt );
+        members->z( i )->setAlphaFeldStrength( afSt );
     rend = 1;
 }
 
@@ -347,8 +347,8 @@ void AuswahlBox::setAuswHintergrundBild( Bild *bgB )
 {
     if( !auswBgB )
         auswBgB = new Bild();
-    auswBgB->neuBild( bgB->getBreite(), bgB->getHöhe(), 0 );
-    auswBgB->drawBild( 0, 0, bgB->getBreite(), bgB->getHöhe(), *bgB );
+    auswBgB->neuBild( bgB->getBreite(), bgB->getHeight(), 0 );
+    auswBgB->drawBild( 0, 0, bgB->getBreite(), bgB->getHeight(), *bgB );
     bgB->release();
     rend = 1;
 }
@@ -369,11 +369,11 @@ void AuswahlBox::setAuswAlphaFeldFarbe( int afF ) // Auswahl AlphaFeld Farbe set
     rend = 1;
 }
 
-void AuswahlBox::setAuswAlphaFeldStärke( int afSt ) // Auswahl Alpha Feld stärke setzen
+void AuswahlBox::setAuswAlphaFeldStrength( int afSt ) // Auswahl Alpha Feld stärke setzen
 {
     if( !auswAf )
         auswAf = new AlphaFeld();
-    auswAf->setStärke( afSt );
+    auswAf->setStrength( afSt );
     rend = 1;
 }
 
@@ -449,14 +449,14 @@ void AuswahlBox::setMsAuswHintergrundBild( int i, Bild *bgB )
     if( !msAuswBgB->z( i ) )
     {
         Bild *z = new Bild;
-        z->neuBild( bgB->getBreite(), bgB->getHöhe(), 0 );
-        z->drawBild( 0, 0, bgB->getBreite(), bgB->getHöhe(), *bgB );
+        z->neuBild( bgB->getBreite(), bgB->getHeight(), 0 );
+        z->drawBild( 0, 0, bgB->getBreite(), bgB->getHeight(), *bgB );
         msAuswBgB->set( z, i );
     }
     else
     {
-        msAuswBgB->z( i )->neuBild( bgB->getBreite(), bgB->getHöhe(), 0 );
-        msAuswBgB->z( i )->drawBild( 0, 0, bgB->getBreite(), bgB->getHöhe(), *bgB );
+        msAuswBgB->z( i )->neuBild( bgB->getBreite(), bgB->getHeight(), 0 );
+        msAuswBgB->z( i )->drawBild( 0, 0, bgB->getBreite(), bgB->getHeight(), *bgB );
     }
     bgB->release();
     rend = 1;
@@ -487,7 +487,7 @@ void AuswahlBox::setMsAuswAlphaFeldFarbe( int i, int afF ) // Multistyle Auswahl
     rend = 1;
 }
 
-void AuswahlBox::setMsAuswAlphaFeldStärke( int i, int afSt ) // Multistyle Auswahl AlphaFeld stärke setzen
+void AuswahlBox::setMsAuswAlphaFeldStrength( int i, int afSt ) // Multistyle Auswahl AlphaFeld stärke setzen
 {
     if( hatStyleNicht( Style::MultiStyled ) || i >= anzahl )
         return;
@@ -495,7 +495,7 @@ void AuswahlBox::setMsAuswAlphaFeldSt
         msAuswAf = new RCArray< AlphaFeld >();
     if( !msAuswAf->z( i ) )
         msAuswAf->set( new AlphaFeld(), i );
-    msAuswAf->z( i )->setStärke( afSt );
+    msAuswAf->z( i )->setStrength( afSt );
     rend = 1;
 }
 
@@ -541,8 +541,8 @@ void AuswahlBox::setMausHintergrundBild( Bild *bgB )
 {
     if( !mausBgB )
         mausBgB = new Bild();
-    mausBgB->neuBild( bgB->getBreite(), bgB->getHöhe(), 0 );
-    mausBgB->drawBild( 0, 0, bgB->getBreite(), bgB->getHöhe(), *bgB );
+    mausBgB->neuBild( bgB->getBreite(), bgB->getHeight(), 0 );
+    mausBgB->drawBild( 0, 0, bgB->getBreite(), bgB->getHeight(), *bgB );
     bgB->release();
     rend = 1;
 }
@@ -563,11 +563,11 @@ void AuswahlBox::setMausAlphaFeldFarbe( int afF ) // Maus AlphaFeld Farbe setzen
     rend = 1;
 }
 
-void AuswahlBox::setMausAlphaFeldStärke( int afSt ) // Maus AlphaFeld stärke setzen
+void AuswahlBox::setMausAlphaFeldStrength( int afSt ) // Maus AlphaFeld stärke setzen
 {
     if( !mausAf )
         mausAf = new AlphaFeld();
-    mausAf->setStärke( afSt );
+    mausAf->setStrength( afSt );
     rend = 1;
 }
 
@@ -643,14 +643,14 @@ void AuswahlBox::setMsMausHintergrundBild( int i, Bild *bgB )
     if( !msMausBgB->z( i ) )
     {
         Bild *z = new Bild;
-        z->neuBild( bgB->getBreite(), bgB->getHöhe(), 0 );
-        z->drawBild( 0, 0, bgB->getBreite(), bgB->getHöhe(), *bgB );
+        z->neuBild( bgB->getBreite(), bgB->getHeight(), 0 );
+        z->drawBild( 0, 0, bgB->getBreite(), bgB->getHeight(), *bgB );
         msMausBgB->set( z, i );
     }
     else
     {
-        msMausBgB->z( i )->neuBild( bgB->getBreite(), bgB->getHöhe(), 0 );
-        msMausBgB->z( i )->drawBild( 0, 0, bgB->getBreite(), bgB->getHöhe(), *bgB );
+        msMausBgB->z( i )->neuBild( bgB->getBreite(), bgB->getHeight(), 0 );
+        msMausBgB->z( i )->drawBild( 0, 0, bgB->getBreite(), bgB->getHeight(), *bgB );
     }
     bgB->release();
     rend = 1;
@@ -681,7 +681,7 @@ void AuswahlBox::setMsMausAlphaFeldFarbe( int i, int afF ) // Multistyle Maus Al
     rend = 1;
 }
 
-void AuswahlBox::setMsMausAlphaFeldStärke( int i, int afSt ) // Multistyle Maus AlphaFeld stärke setzen
+void AuswahlBox::setMsMausAlphaFeldStrength( int i, int afSt ) // Multistyle Maus AlphaFeld stärke setzen
 {
     if( hatStyleNicht( Style::MultiStyled ) || i >= anzahl )
         return;
@@ -689,7 +689,7 @@ void AuswahlBox::setMsMausAlphaFeldSt
         msMausAf = new RCArray< AlphaFeld >();
     if( !msMausAf->z( i ) )
         msMausAf->set( new AlphaFeld(), i );
-    msMausAf->z( i )->setStärke( afSt );
+    msMausAf->z( i )->setStrength( afSt );
     rend = 1;
 }
 
@@ -722,23 +722,23 @@ void AuswahlBox::scrollZuEintrag( int i ) // liste scrollen
         if( hatStyle( Style::MultiStyled ) )
         {
             for( int j = 0; j < i; ++j )
-                scrollPos += members->z( j ) ? members->z( j )->getHöhe() : 0;
+                scrollPos += members->z( j ) ? members->z( j )->getHeight() : 0;
         }
         else
-            scrollPos += i * eintragHöhe;
+            scrollPos += i * eintragHeight;
         vertikalScrollBar->scroll( scrollPos );
         rend = 1;
     }
 }
 
-void AuswahlBox::setMaxAuskappHöhe( int maxHöhe ) // höhe der Liste beim ausklappen
+void AuswahlBox::setMaxAuskappHeight( int maxHeight ) // höhe der Liste beim ausklappen
 {
-    ausklapMaxHöhe = maxHöhe;
+    ausklapMaxHeight = maxHeight;
 }
 
-void AuswahlBox::setEintragHöhe( int höhe ) // setzt die Höhe der Einträge
+void AuswahlBox::setEintragHeight( int height ) // setzt die Höhe der Einträge
 {
-    eintragHöhe = höhe;
+    eintragHeight = height;
 }
 
 void AuswahlBox::addMsStyle( int i, __int64 abStyle ) // Multistyle style hinzufügen
@@ -774,7 +774,7 @@ void AuswahlBox::setMsStyle( int i, __int64 abStyle )
     rend = 1;
 }
 
-void AuswahlBox::löscheMsStyle( int i, __int64 abStyle ) // Multistyle style entfernen
+void AuswahlBox::removeMsStyle( int i, __int64 abStyle ) // Multistyle style entfernen
 {
     if( hatStyleNicht( Style::MultiStyled ) || i >= anzahl )
         return;
@@ -802,42 +802,42 @@ bool AuswahlBox::tick( double tickVal ) // tick
     this->tickval += tickVal * 300;
     int val = ( int )this->tickval;
     if( val < 1 )
-        return __super::tick( tickVal );
+        return ZeichnungHintergrund::tick( tickVal );
     this->tickval -= val;
-    int maxHöhe = rahmen ? rahmen->getRBreite() : 0;
+    int maxHeight = rahmen ? rahmen->getRBreite() : 0;
     if( hatStyleNicht( Style::MultiStyled ) )
-        maxHöhe += anzahl * eintragHöhe;
+        maxHeight += anzahl * eintragHeight;
     else
         for( int i = 0; i < anzahl; ++i )
-            maxHöhe += members->z( i ) ? members->z( i )->getHöhe() : 0;
-    if( maxHöhe > ausklapMaxHöhe )
+            maxHeight += members->z( i ) ? members->z( i )->getHeight() : 0;
+    if( maxHeight > ausklapMaxHeight )
     {
         if( hatStyle( Style::VScroll ) && vertikalScrollBar )
         {
             scrollAnzeigen = 1;
-            vertikalScrollBar->update( maxHöhe, ausklapMaxHöhe );
+            vertikalScrollBar->update( maxHeight, ausklapMaxHeight );
         }
-        maxHöhe = ausklapMaxHöhe;
+        maxHeight = ausklapMaxHeight;
     }
     else
         scrollAnzeigen = 0;
     if( ausgeklappt )
     {
-        if( ausklappHöhe < maxHöhe )
+        if( ausklappHeight < maxHeight )
         {
-            ausklappHöhe += val;
-            if( ausklappHöhe > maxHöhe )
-                ausklappHöhe = maxHöhe;
+            ausklappHeight += val;
+            if( ausklappHeight > maxHeight )
+                ausklappHeight = maxHeight;
             rend = 1;
         }
     }
     else
     {
-        if( ausklappHöhe > 0 )
+        if( ausklappHeight > 0 )
         {
-            ausklappHöhe -= val;
-            if( ausklappHöhe < 0 )
-                ausklappHöhe = 0;
+            ausklappHeight -= val;
+            if( ausklappHeight < 0 )
+                ausklappHeight = 0;
             rend = 1;
         }
     }
@@ -848,13 +848,11 @@ bool AuswahlBox::tick( double tickVal ) // tick
         else
             members->z( i )->tick( tickVal );
     }
-    return __super::tick( tickVal );
+    return ZeichnungHintergrund::tick( tickVal );
 }
 
 void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
 {
-    if( me.id == ME_DScroll )
-        int i = 0;
     mausEintrag = -1;
     if( hatStyleNicht( Style::Sichtbar ) || hatStyleNicht( Style::Erlaubt ) )
     {
@@ -865,7 +863,7 @@ void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
     }
     bool removeFokus = 0;
     bool nmakc = me.verarbeitet == 0;
-    if( me.verarbeitet || !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y + ausklappHöhe ) )
+    if( me.verarbeitet || !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y + ausklappHeight ) )
     {
         if( mausIn )
         {
@@ -873,7 +871,7 @@ void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
                 toolTip->setMausIn( 0 );
             mausIn = 0;
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -882,12 +880,12 @@ void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
         }
         removeFokus = 1;
     }
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y + ausklappHöhe ) && me.id != ME_Verlässt )
+    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y + ausklappHeight ) && me.id != ME_Leaves )
     {
         if( removeFokus && me.id == ME_RLinks )
         {
             if( Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
-                löscheStyle( Style::Fokus );
+                removeStyle( Style::Fokus );
             ausgeklappt = 0;
             me.mx -= pos.x, me.my -= pos.y;
             if( nmakc && me.verarbeitet && nMak )
@@ -898,7 +896,7 @@ void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
             toolTip->setMausIn( 0 );
         return;
     }
-    if( !mausIn && me.id != ME_Verlässt )
+    if( !mausIn && me.id != ME_Leaves )
     {
         mausIn = 1;
         if( toolTip )
@@ -934,7 +932,7 @@ void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
                 scrollZuEintrag( mausEintrag );
         }
         if( removeFokus && me.id == ME_RLinks )
-            löscheStyle( Style::Fokus );
+            removeStyle( Style::Fokus );
         if( !me.verarbeitet && hatStyleNicht( Style::Fokus ) && me.id == ME_RLinks )
             addStyle( Style::Fokus );
         if( hatStyle( Style::VScroll ) && vertikalScrollBar && ausgeklappt && scrollAnzeigen )
@@ -942,7 +940,7 @@ void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
             int rbr = 0;
             if( rahmen && hatStyle( Style::Rahmen ) )
                 rbr = rahmen->getRBreite();
-            if( ( ( me.mx > gr.x - 15 - rbr && me.my > gr.y ) || me.id == ME_UScroll || me.id == ME_DScroll ) && me.id != ME_Betritt && me.id != ME_Verlässt )
+            if( ( ( me.mx > gr.x - 15 - rbr && me.my > gr.y ) || me.id == ME_UScroll || me.id == ME_DScroll ) && me.id != ME_Betritt && me.id != ME_Leaves )
             {
                 vertikalScrollBar->doMausMessage( gr.x - rbr - 15, gr.y, 15, vertikalScrollBar->getScrollData()->anzeige, me );
                 me.verarbeitet = 1;
@@ -956,27 +954,27 @@ void AuswahlBox::doMausEreignis( MausEreignis &me ) // Maus
             {
                 for( int i = 0; i < anzahl; ++i )
                 {
-                    if( tmp > 0 && tmp < ( members->z( i ) ? members->z( i )->getHöhe() : 0 ) )
+                    if( tmp > 0 && tmp < ( members->z( i ) ? members->z( i )->getHeight() : 0 ) )
                     {
                         eintr = i;
                         break;
                     }
-                    tmp -= members->z( i ) ? members->z( i )->getHöhe() : 0;
+                    tmp -= members->z( i ) ? members->z( i )->getHeight() : 0;
                 }
             }
             else
             {
                 for( int i = 0; i < anzahl; ++i )
                 {
-                    if( tmp > 0 && tmp < eintragHöhe )
+                    if( tmp > 0 && tmp < eintragHeight )
                     {
                         eintr = i;
                         break;
                     }
-                    tmp -= eintragHöhe;
+                    tmp -= eintragHeight;
                 }
             }
-            if( ausgeklappt && me.mx > 0 && me.mx < gr.x && me.my > gr.y && me.my < gr.y + ausklappHöhe )
+            if( ausgeklappt && me.mx > 0 && me.mx < gr.x && me.my > gr.y && me.my < gr.y + ausklappHeight )
             {
                 if( eintr >= 0 )
                 {
@@ -1041,8 +1039,8 @@ void AuswahlBox::render( Bild &zRObj ) // zeichnet nach zRObj
     {
         lockZeichnung();
         int br = gr.x;
-        int hö = gr.y + ausklappHöhe;
-        if( ( ausklappHöhe && !zRObj.setDrawOptionsErzwingen( pos.x, pos.y, br, hö ) ) || ( !ausklappHöhe && !zRObj.setDrawOptions( pos.x, pos.y, br, hö ) ) )
+        int hi = gr.y + ausklappHeight;
+        if( ( ausklappHeight && !zRObj.setDrawOptionsErzwingen( pos.x, pos.y, br, hi ) ) || ( !ausklappHeight && !zRObj.setDrawOptions( pos.x, pos.y, br, hi ) ) )
         {
             unlockZeichnung();
             return;
@@ -1050,11 +1048,11 @@ void AuswahlBox::render( Bild &zRObj ) // zeichnet nach zRObj
         int rbr = 0;
         if( hatStyle( Style::Rahmen ) && rahmen ) // Rahmen zeichnen
         {
-            rahmen->setGröße( br, hö );
+            rahmen->setSize( br, hi );
             rahmen->render( zRObj );
             rbr = rahmen->getRBreite();
         }
-        if( ( ausklappHöhe && !zRObj.setDrawOptionsErzwingen( rbr, rbr, br - rbr * 2, hö - rbr * 2 ) ) || ( !ausklappHöhe && !zRObj.setDrawOptions( rbr, rbr, br - rbr * 2, hö - rbr * 2 ) ) )
+        if( ( ausklappHeight && !zRObj.setDrawOptionsErzwingen( rbr, rbr, br - rbr * 2, hi - rbr * 2 ) ) || ( !ausklappHeight && !zRObj.setDrawOptions( rbr, rbr, br - rbr * 2, hi - rbr * 2 ) ) )
         {
             zRObj.releaseDrawOptions();
             unlockZeichnung();
@@ -1063,25 +1061,25 @@ void AuswahlBox::render( Bild &zRObj ) // zeichnet nach zRObj
         if( hatStyle( Style::Hintergrund ) )
         {
             if( hatStyle( Style::HAlpha ) )
-                zRObj.alphaRegion( 0, 0, br, hö, hintergrundFarbe );
+                zRObj.alphaRegion( 0, 0, br, hi, hintergrundFarbe );
             else
-                zRObj.füllRegion( 0, 0, br, hö, hintergrundFarbe );
+                zRObj.fillRegion( 0, 0, br, hi, hintergrundFarbe );
             if( hatStyle( Style::HBild ) && hintergrundBild )
             {
                 if( hatStyle( Style::HAlpha ) )
-                    zRObj.alphaBild( 0, 0, br, hö, *hintergrundBild );
+                    zRObj.alphaBild( 0, 0, br, hi, *hintergrundBild );
                 else
-                    zRObj.drawBild( 0, 0, br, hö, *hintergrundBild );
+                    zRObj.drawBild( 0, 0, br, hi, *hintergrundBild );
             }
         }
         if( hatStyle( Style::Buffered ) && hintergrundFeld )
         {
-            hintergrundFeld->setGröße( br - rbr * 2, hö - rbr * 2 );
+            hintergrundFeld->setSize( br - rbr * 2, hi - rbr * 2 );
             hintergrundFeld->render( zRObj );
         }
         if( ausfahren ) // Ausklapp Knopf zeichnen
         {
-            ausfahren->setGröße( gr.y - rbr * 2, gr.y - rbr * 2 );
+            ausfahren->setSize( gr.y - rbr * 2, gr.y - rbr * 2 );
             ausfahren->setPosition( gr.x - rbr - ausfahren->getBreite(), rbr );
             ausfahren->render( zRObj );
         }
@@ -1186,11 +1184,11 @@ void AuswahlBox::render( Bild &zRObj ) // zeichnet nach zRObj
                         tf->setStyle( TextFeld::Style::Rahmen, hatMsStyle( auswahl, Style::AuswahlRahmen ) );
                     }
                 }
-                int tmpHö = tf->getHöhe();
+                int tmpHi = tf->getHeight();
                 tf->setPosition( 0, 0 );
-                tf->setGröße( gr.x - rbr * 2 - ( ausfahren ? ausfahren->getBreite() : 0 ), gr.y - rbr * 2 );
+                tf->setSize( gr.x - rbr * 2 - ( ausfahren ? ausfahren->getBreite() : 0 ), gr.y - rbr * 2 );
                 tf->render( zRObj );
-                tf->setGröße( tf->getBreite(), tmpHö );
+                tf->setSize( tf->getBreite(), tmpHi );
                 if( hatStyleNicht( Style::MultiStyled ) || !msStyle )
                 {
                     if( hatStyle( Style::AuswahlBuffer ) )
@@ -1253,25 +1251,24 @@ void AuswahlBox::render( Bild &zRObj ) // zeichnet nach zRObj
         }
         if( members )
         {
-            if( vsb && ausklappHöhe )
+            if( vsb && ausklappHeight )
             {
                 br -= 15;
-                vertikalScrollBar->getScrollData()->anzeige = ausklappHöhe - rbr;
-                vertikalScrollBar->render( br - rbr, gr.y, 15, ausklappHöhe - rbr, zRObj );
+                vertikalScrollBar->getScrollData()->anzeige = ausklappHeight - rbr;
+                vertikalScrollBar->render( br - rbr, gr.y, 15, ausklappHeight - rbr, zRObj );
             }
-            if( ( ausklappHöhe && !zRObj.setDrawOptionsErzwingen( 0, gr.y, br - rbr, hö - rbr - gr.y ) ) || ( !ausklappHöhe && !zRObj.setDrawOptions( 0, gr.y, br - rbr, hö - rbr - gr.y ) ) )
+            if( ( ausklappHeight && !zRObj.setDrawOptionsErzwingen( 0, gr.y, br - rbr, hi - rbr - gr.y ) ) || ( !ausklappHeight && !zRObj.setDrawOptions( 0, gr.y, br - rbr, hi - rbr - gr.y ) ) )
             {
                 zRObj.releaseDrawOptions();
                 zRObj.releaseDrawOptions();
                 unlockZeichnung();
                 return;
             }
-            int maxHöhe = 0;
+            int maxHeight = 0;
             int dy = 0;
             if( vsb )
                 dy -= vertikalScrollBar->getScroll();
-            int mdy = hö - rbr;
-            RCArray< TextFeld > *tmpA = members;
+            int mdy = hi - rbr;
             anzahl = members->getEintragAnzahl();
             for( int i = 0; i < anzahl; ++i )
             {
@@ -1279,8 +1276,8 @@ void AuswahlBox::render( Bild &zRObj ) // zeichnet nach zRObj
                 if( dy >= mdy && !vsb )
                     break;
                 tf->setPosition( 0, dy );
-                tf->setGröße( br - rbr * 2, tf->getHöhe() );
-                maxHöhe += tf->getHöhe();
+                tf->setSize( br - rbr * 2, tf->getHeight() );
+                maxHeight += tf->getHeight();
                 bool selected = auswahl == i;
                 AlphaFeld *tmpBuffer = 0;
                 bool tmpB = 0;
@@ -1556,10 +1553,10 @@ void AuswahlBox::render( Bild &zRObj ) // zeichnet nach zRObj
                         }
                     }
                 }
-                dy += tf->getHöhe();
+                dy += tf->getHeight();
             }
             if( vertikalScrollBar )
-                vertikalScrollBar->getScrollData()->max = maxHöhe;
+                vertikalScrollBar->getScrollData()->max = maxHeight;
             zRObj.releaseDrawOptions();
         }
         zRObj.releaseDrawOptions();
@@ -1634,16 +1631,16 @@ bool AuswahlBox::istAusgeklappt() const // pr
     return ausgeklappt;
 }
 
-int AuswahlBox::getMaxHöhe() const // gibt die maximale Höhe der Liste zurück
+int AuswahlBox::getMaxHeight() const // gibt die maximale Höhe der Liste zurück
 {
-    if( !hatStyle( Style::MaxHöhe ) )
+    if( !hatStyle( Style::MaxHeight ) )
         return 0;
-    return ausklapMaxHöhe;
+    return ausklapMaxHeight;
 }
 
-int AuswahlBox::getEintragHöhe() const // gibt die Höhe der Einträge zurück
+int AuswahlBox::getEintragHeight() const // gibt die Höhe der Einträge zurück
 {
-    return eintragHöhe;
+    return eintragHeight;
 }
 
 Knopf *AuswahlBox::getAusklappKnopf() const // gibt den aus-/einklapp Knopf zurück
@@ -1723,13 +1720,13 @@ int AuswahlBox::getEintragAlphaFeldFarbe( int i ) const // gibt die Eintrag Alph
     return members->z( i )->getAlphaFeldFarbe();
 }
 
-int AuswahlBox::getEintragAlphaFeldStärke( int i ) const // gibt die Eintrag AlphaFeld stärke zurück
+int AuswahlBox::getEintragAlphaFeldStrength( int i ) const // gibt die Eintrag AlphaFeld stärke zurück
 {
     if( !hatStyle( Style::MultiStyled ) )
         return 0;
     if( !members->z( i ) )
         return 0;
-    return members->z( i )->getAlphaFeldStärke();
+    return members->z( i )->getAlphaFeldStrength();
 }
 
 int AuswahlBox::getEintragHintergrundFarbe( int i ) const // gibt die Eintrag Hintergrund Farbe zurück
@@ -1808,11 +1805,11 @@ int AuswahlBox::getAuswAlphaFeldFarbe() const // gibt die Auswahl AlphaFeld Farb
     return auswAf ? auswAf->getFarbe() : 0;
 }
 
-int AuswahlBox::getAuswAlphaFeldStärke() const // gibt die Auswahl AlphaFeld stärke zurück
+int AuswahlBox::getAuswAlphaFeldStrength() const // gibt die Auswahl AlphaFeld stärke zurück
 {
     if( hatStyle( Style::MultiStyled ) )
         return 0;
-    return auswAf ? auswAf->getStärke() : 0;
+    return auswAf ? auswAf->getStrength() : 0;
 }
 
 int AuswahlBox::getAuswHintergrundFarbe() const // gibt die Auswahl Hintergrund Farbe zurück
@@ -1899,13 +1896,13 @@ int AuswahlBox::getMsAuswAlphaFeldFarbe( int i ) const // gibt die Multistyle Au
     return msAuswAf->z( i ) ? msAuswAf->z( i )->getFarbe() : 0;
 }
 
-int AuswahlBox::getMsAuswAlphaFeldStärke( int i ) const // gibt die Multistyle Auswahl AlphaFeld stärke zurück
+int AuswahlBox::getMsAuswAlphaFeldStrength( int i ) const // gibt die Multistyle Auswahl AlphaFeld stärke zurück
 {
     if( !hatStyle( Style::MultiStyled ) )
         return 0;
     if( !msAuswAf )
         return 0;
-    return msAuswAf->z( i ) ? msAuswAf->z( i )->getStärke() : 0;
+    return msAuswAf->z( i ) ? msAuswAf->z( i )->getStrength() : 0;
 }
 
 int AuswahlBox::getMsAuswHintergrundFarbe( int i ) const // gibt die Multistyle Auswahl Hintergrund Farbe zurück
@@ -1984,11 +1981,11 @@ int AuswahlBox::getMausAlphaFeldFarbe() const // gibt die Maus AlphaFeld Farbe z
     return mausAf ? mausAf->getFarbe() : 0;
 }
 
-int AuswahlBox::getMausAlphaFeldStärke() const // gibt die Maus AlphaFeld stärke zurück
+int AuswahlBox::getMausAlphaFeldStrength() const // gibt die Maus AlphaFeld stärke zurück
 {
     if( hatStyle( Style::MultiStyled ) )
         return 0;
-    return mausAf ? mausAf->getStärke() : 0;
+    return mausAf ? mausAf->getStrength() : 0;
 }
 
 int AuswahlBox::getMausHintergrundFarbe() const // gibt die Maus Hintergrund Farbe zurück
@@ -2075,13 +2072,13 @@ int AuswahlBox::getMsMausAlphaFeldFarbe( int i ) const // gibt die Multistyle Ma
     return msMausAf->z( i ) ? msMausAf->z( i )->getFarbe() : 0;
 }
 
-int AuswahlBox::getMsMausAlphaFeldStärke( int i ) const // gibt die Multistyle Maus AlphaFeld stärke zurück
+int AuswahlBox::getMsMausAlphaFeldStrength( int i ) const // gibt die Multistyle Maus AlphaFeld stärke zurück
 {
     if( !hatStyle( Style::MultiStyled ) )
         return 0;
     if( !msMausAf )
         return 0;
-    return msMausAf->z( i ) ? msMausAf->z( i )->getStärke() : 0;
+    return msMausAf->z( i ) ? msMausAf->z( i )->getStrength() : 0;
 }
 
 int AuswahlBox::getMsMausHintergrundFarbe( int i ) const // gibt die Multistyle Maus Hintergrund Farbe zurück
@@ -2129,7 +2126,7 @@ Zeichnung *AuswahlBox::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
 {
     AuswahlBox *obj = new AuswahlBox();
     obj->setPosition( pos );
-    obj->setGröße( gr );
+    obj->setSize( gr );
     obj->setMausEreignisParameter( makParam );
     obj->setTastaturEreignisParameter( takParam );
     obj->setMausEreignis( Mak );
@@ -2162,8 +2159,8 @@ Zeichnung *AuswahlBox::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
         obj->setMausHintergrundBild( mausBgB->getThis() );
     if( mausAf )
         obj->setMausAlphaFeldZ( (AlphaFeld*)mausAf->dublizieren() );
-    obj->setMaxAuskappHöhe( ausklapMaxHöhe );
-    obj->setEintragHöhe( eintragHöhe );
+    obj->setMaxAuskappHeight( ausklapMaxHeight );
+    obj->setEintragHeight( eintragHeight );
     for( int i = 0; i < anzahl; ++i )
     {
         if( members->z( i ) )

+ 24 - 24
AuswahlBox.h

@@ -32,7 +32,7 @@ namespace Framework
             const static __int64 AuswahlBuffer = 0x000100000; // Wenn dieser Flag gesetzt ist, bekommt der Wert, der gerade ausgewählt ist einen Farbübergang
             const static __int64 AuswahlRahmen = 0x000200000; // Wenn dieser Flag gesetzt ist, bekommt der Wert, der gerade ausgewählt ist einen Rahmen
             const static __int64 MultiStyled = 0x000400000; // Wenn dieser Flag gesetzt ist, hat jeder Wert seine eigenen Hintergründe unt Rahmen und nicht alle die selben
-            const static __int64 MaxHöhe = 0x004000000; // Legt eine maximale Höhe der ausgeklappten Liste fest. Es erscheint automatisch eine Scrollbar wenn mehr Elemente da sind als sichtbar sein können
+            const static __int64 MaxHeight = 0x004000000; // Legt eine maximale Höhe der ausgeklappten Liste fest. Es erscheint automatisch eine Scrollbar wenn mehr Elemente da sind als sichtbar sein können
             const static __int64 MausHintergrund = 0x008000000; // Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drau zeigt, einen Hintergrund
             const static __int64 MausHBild = 0x010000000; // Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drauf zeigt, ein Hintergrundbild
             const static __int64 MausHAlpha = 0x020000000; // Wenn dieser Flag gesetzt ist, hat ein Element, wo die Maus drauf zeigt, einen transparenten Hintergrund
@@ -41,7 +41,7 @@ namespace Framework
             //const int NachObenAusklappen	= 0x100000000;
             //const int AutoAusklappRichtung	= 0x200000000;
 
-            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
+            const static __int64 Normal = Sichtbar | Erlaubt | Rahmen | FeldRahmen | AuswahlBuffer | AuswahlRahmen | MaxHeight | VScroll | MausRahmen | MausBuffer; // Normaler Style: Sichtbar, Erlaubt, Rahmen, FeldRahmen, AuswahlBuffer, AuswahlRahmen, MaxHöhe, VScroll, MausRahmen, MausBuffer
         };
     private:
         Schrift *schrift;
@@ -67,9 +67,9 @@ namespace Framework
         int anzahl;
         int auswahl;
         bool ausgeklappt;
-        int ausklappHöhe;
-        int ausklapMaxHöhe;
-        int eintragHöhe;
+        int ausklappHeight;
+        int ausklapMaxHeight;
+        int eintragHeight;
         double tickval;
         int mausEintrag;
         bool scrollAnzeigen;
@@ -81,7 +81,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) AuswahlBox();
         // Destruktor 
-        __declspec( dllexport ) ~AuswahlBox();
+        __declspec( dllexport ) virtual ~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 );
@@ -114,7 +114,7 @@ namespace Framework
         __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 removeEintrag( 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 );
@@ -153,7 +153,7 @@ namespace Framework
         // 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 setEintragAlphaFeldStrength( 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 );
@@ -180,7 +180,7 @@ namespace Framework
         __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 setAuswAlphaFeldStrength( 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
@@ -216,7 +216,7 @@ namespace Framework
         // 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 );
+        __declspec( dllexport ) void setMsAuswAlphaFeldStrength( 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 );
@@ -243,7 +243,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setMausAlphaFeldStrength( 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
@@ -279,7 +279,7 @@ namespace Framework
         // 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 );
+        __declspec( dllexport ) void setMsMausAlphaFeldStrength( int i, int afSt );
         // Wählt ein Element aus
         //  i: Der Index des Elements
         __declspec( dllexport ) void setAuswahl( int i );
@@ -291,11 +291,11 @@ namespace Framework
         //  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 );
+        //  maxHeight: Die maximale Höhe in Pixeln
+        __declspec( dllexport ) void setMaxAuskappHeight( int maxHeight );
         // Setzt die Höhe der Einträge
-        //  höhe: Die Höhe in Pixeln
-        __declspec( dllexport ) void setEintragHöhe( int höhe );
+        //  height: Die Höhe in Pixeln
+        __declspec( dllexport ) void setEintragHeight( int height );
         // 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
@@ -312,7 +312,7 @@ namespace Framework
         // 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 );
+        __declspec( dllexport ) void removeMsStyle( 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
@@ -351,9 +351,9 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getMaxHeight() const;
         // Gibt die Höhe eines Eintrags zurück
-        __declspec( dllexport ) int getEintragHöhe() const;
+        __declspec( dllexport ) int getEintragHeight() 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
@@ -381,7 +381,7 @@ namespace Framework
         __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;
+        __declspec( dllexport ) int getEintragAlphaFeldStrength( 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;
@@ -406,7 +406,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getAuswAlphaFeldStrength() 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
@@ -436,7 +436,7 @@ namespace Framework
         __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;
+        __declspec( dllexport ) int getMsAuswAlphaFeldStrength( 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;
@@ -461,7 +461,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getMausAlphaFeldStrength() 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
@@ -491,7 +491,7 @@ namespace Framework
         __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;
+        __declspec( dllexport ) int getMsMausAlphaFeldStrength( 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;

+ 4 - 1
Betriebssystem.h

@@ -42,6 +42,7 @@
 #include <stdlib.h>
 #include <pthread.h>
 #include <stdio.h>
+#include <string.h>
 #ifndef CRITICAL_SECTION_CLASS
 #define CRITICAL_SECTION_CLASS
 class CriticalSection
@@ -53,7 +54,8 @@ public:
         pthread_mutexattr_init( &attr );
         pthread_mutexattr_settype( &attr, PTHREAD_MUTEX_RECURSIVE );
         pthread_mutex_init( &mutex, &attr );
-    }
+    } // TODO dsfgdslgkjhlas
+	// HACK dsgdshgah
     ~CriticalSection()
     {
         pthread_mutex_destroy( &mutex );
@@ -79,6 +81,7 @@ class CriticalSection;
 #define LeaveCriticalSection( x )      ( *( x ) )->Leave()
 #include <unistd.h>
 #define Sleep( x )   usleep( (x) * 1000 )
+#define ZeroMemory( Destination, Length ) memset( ( Destination ), 0, ( Length ) )
 
 #endif
 

+ 1935 - 1935
Bild.cpp

@@ -33,224 +33,224 @@ using namespace Framework;
 // Inhalt der Bild Klasse aus Bild.h
 // Konstruktor 
 Bild::Bild( bool options )
-    : fc( 0 ),
-    delFc( 1 ),
-    größe( 0, 0 ),
-    ref( 1 ),
-    drawOff( options ? new Punkt[ 2000 ] : new Punkt[ 1 ] ),
-    dPosA( options ? new Punkt[ 2000 ] : new Punkt[ 1 ] ),
-    dGrößeA( options ? new Punkt[ 2000 ] : new Punkt[ 1 ] ),
-    doa( 0 ),
-    alpha( options ? new unsigned char[ 1000 ] : new unsigned char[ 1 ] ),
-    alphaAnzahl( 0 ),
-    rend( 0 ),
-    alpha3D( 0 )
-{
-    alpha[ 0 ] = 0;
+	: fc( 0 ),
+	delFc( 1 ),
+	size( 0, 0 ),
+	ref( 1 ),
+	drawOff( options ? new Punkt[ 2000 ] : new Punkt[ 1 ] ),
+	dPosA( options ? new Punkt[ 2000 ] : new Punkt[ 1 ] ),
+	dSizeA( options ? new Punkt[ 2000 ] : new Punkt[ 1 ] ),
+	doa( 0 ),
+	alpha( options ? new unsigned char[ 1000 ] : new unsigned char[ 1 ] ),
+	alphaAnzahl( 0 ),
+	rend( 0 ),
+	alpha3D( 0 )
+{
+	alpha[ 0 ] = 0;
 }
 
 // Destruktor 
 Bild::~Bild()
 {
-    if( delFc )
-    {
-        delete[] fc;
-        fc = 0;
-    }
-    delete[] dPosA;
-    delete[] dGrößeA;
-    delete[] alpha;
-    delete[] drawOff;
+	if( delFc )
+	{
+		delete[] fc;
+		fc = 0;
+	}
+	delete[] dPosA;
+	delete[] dSizeA;
+	delete[] alpha;
+	delete[] drawOff;
 }
 
 // privat
 inline void Bild::alphaPixelP( int x, int y, int f )
 {
-    alphaPixelP( fc[ x + y * größe.x ], f );
+	alphaPixelP( fc[ x + y * size.x ], f );
 }
 
 inline void Bild::alphaPixelP( int &fc, int colorb )
 {
-    int alpha = ( ( colorb >> 24 ) & 0xFF );
-    int na = ( 0x100 - alpha );
-    fc = ( ( ( ( ( na * ( fc & 0xFF00FF ) ) >> 8 ) + ( ( alpha * ( colorb & 0xFF00FF ) ) >> 8 ) ) & 0xFF00FF ) |
-        ( ( ( ( na * ( fc & 0x00FF00 ) ) >> 8 ) + ( ( alpha * ( colorb & 0x00FF00 ) ) >> 8 ) ) & 0x00FF00 ) |
-           ( ( fc & 0xFF000000 ) ) ) * ( fc != 0 || !alpha3D ) | ( fc == 0 && alpha3D ) * colorb;
-    //unsigned char *fc1 = (unsigned char*)&fc[ i ];
-    //unsigned char *fc2 = (unsigned char*)&colorb;
-    //unsigned char na = ~fc2[ 3 ];
-    //fc1[ 3 ] = fc2[ 3 ];
-    //fc1[ 2 ] = (unsigned char)( ( fc2[ 2 ] * fc2[ 3 ] + fc1[ 2 ] * na ) / 255 );
-    //fc1[ 1 ] = (unsigned char)( ( fc2[ 1 ] * fc2[ 3 ] + fc1[ 1 ] * na ) / 255 );
-    //fc1[ 0 ] = (unsigned char)( ( fc2[ 0 ] * fc2[ 3 ] + fc1[ 0 ] * na ) / 255 );
-}
-
-char Bild::getOutCode( Punkt& p ) const
-{
-    char ret = 0;
-    if( p.x < dPosA[ doa ].x )
-        ret |= 1;
-    else if( p.x >= dGrößeA[ doa ].x )
-        ret |= 2;
-    if( p.y < dPosA[ doa ].y )
-        ret |= 4;
-    else if( p.y >= dGrößeA[ doa ].y )
-        ret |= 8;
-    return ret;
+	int alpha = ( ( colorb >> 24 ) & 0xFF );
+	int na = ( 0x100 - alpha );
+	fc = ( ( ( ( ( na * ( fc & 0xFF00FF ) ) >> 8 ) + ( ( alpha * ( colorb & 0xFF00FF ) ) >> 8 ) ) & 0xFF00FF ) |
+		( ( ( ( na * ( fc & 0x00FF00 ) ) >> 8 ) + ( ( alpha * ( colorb & 0x00FF00 ) ) >> 8 ) ) & 0x00FF00 ) |
+		   ( ( fc & 0xFF000000 ) ) ) * ( fc != 0 || !alpha3D ) | ( fc == 0 && alpha3D ) * colorb;
+	//unsigned char *fc1 = (unsigned char*)&fc[ i ];
+	//unsigned char *fc2 = (unsigned char*)&colorb;
+	//unsigned char na = ~fc2[ 3 ];
+	//fc1[ 3 ] = fc2[ 3 ];
+	//fc1[ 2 ] = (unsigned char)( ( fc2[ 2 ] * fc2[ 3 ] + fc1[ 2 ] * na ) / 255 );
+	//fc1[ 1 ] = (unsigned char)( ( fc2[ 1 ] * fc2[ 3 ] + fc1[ 1 ] * na ) / 255 );
+	//fc1[ 0 ] = (unsigned char)( ( fc2[ 0 ] * fc2[ 3 ] + fc1[ 0 ] * na ) / 255 );
+}
+
+char Bild::getOutCode( Punkt p ) const
+{
+	char ret = 0;
+	if( p.x < dPosA[ doa ].x )
+		ret = 1;
+	if( p.x >= dSizeA[ doa ].x )
+		ret = 2;
+	if( p.y < dPosA[ doa ].y )
+		ret |= 4;
+	if( p.y >= dSizeA[ doa ].y )
+		ret |= 8;
+	return ret;
 }
 
 void Bild::drawFlatDreieck( int y1, int y2, float m1, float b1, float m2, float b2, int farbe )
 {
-    const int yStart = max( y1, dPosA[ doa ].y );
-    const int yEnd = min( y2, dGrößeA[ doa ].y );
-    for( int y = yStart; y < yEnd; y++ )
-    {
-        const int xStart = max( (int)( m1 * y + b1 + 0.5f ), dPosA[ doa ].x );
-        const int xEnd = min( (int)( m2 * y + b2 + 0.5f ), dGrößeA[ doa ].x );
-        for( int x = xStart; x < xEnd; x++ )
-            fc[ x + y * größe.x ] = farbe;
-    }
+	const int yStart = max( y1, dPosA[ doa ].y );
+	const int yEnd = min( y2, dSizeA[ doa ].y );
+	for( int y = yStart; y < yEnd; y++ )
+	{
+		const int xStart = max( (int)( m1 * (float)y + b1 + 0.5f ), dPosA[ doa ].x );
+		const int xEnd = min( (int)( m2 * (float)y + b2 + 0.5f ), dSizeA[ doa ].x );
+		for( int x = xStart; x < xEnd; x++ )
+			fc[ x + y * size.x ] = farbe;
+	}
 }
 
 void Bild::drawFlatDreieckTextur( int y1, int y2, double m1, double b1, double m2, double b2, double tx1, double ty1, double tx2, double ty2,
-                                  double tx_1o, double ty_1o, double tx_2o, double ty_2o, double txf, double tyf, Bild &textur )
+								  double tx_1o, double ty_1o, double tx_2o, double ty_2o, double txf, double tyf, Bild &textur )
 {
-    const double yStart = max( y1, dPosA[ doa ].y );
-    const double yEnd = min( y2, dGrößeA[ doa ].y );
-    double tx_1 = tx1 + tx_1o * ( yStart - y1 ), ty_1 = ty1 + ty_1o * ( yStart - y1 ), tx_2 = tx2 + tx_2o * ( yStart - y1 ), ty_2 = ty2 + ty_2o * ( yStart - y1 );
-    for( double y = yStart; y < yEnd; y++, tx_1 += tx_1o, ty_1 += ty_1o, tx_2 += tx_2o, ty_2 += ty_2o )
-    {
-        const double xStart = m1 * y + b1;
-        const double xEnd = m2 * y + b2;
-        drawLinieHTextur( Vec2< double >( xStart, y ), xEnd - xStart, Vec2< double >( tx_1, ty_1 ), Vec2< double >( tx_2, ty_2 ), txf, tyf, textur );
-    }
+	const double yStart = max( y1, dPosA[ doa ].y );
+	const double yEnd = min( y2, dSizeA[ doa ].y );
+	double tx_1 = tx1 + tx_1o * ( yStart - y1 ), ty_1 = ty1 + ty_1o * ( yStart - y1 ), tx_2 = tx2 + tx_2o * ( yStart - y1 ), ty_2 = ty2 + ty_2o * ( yStart - y1 );
+	for( double y = yStart; y < yEnd; y++, tx_1 += tx_1o, ty_1 += ty_1o, tx_2 += tx_2o, ty_2 += ty_2o )
+	{
+		const double xStart = m1 * y + b1;
+		const double xEnd = m2 * y + b2;
+		drawLinieHTextur( Vec2< double >( xStart, y ), xEnd - xStart, Vec2< double >( tx_1, ty_1 ), Vec2< double >( tx_2, ty_2 ), txf, tyf, textur );
+	}
 }
 
 void Bild::drawFlatDreieckAlpha( int y1, int y2, float m1, float b1, float m2, float b2, int farbe )
 {
-    const int yStart = max( (int)( y1 + 0.5 ), dPosA[ doa ].y );
-    const int yEnd = min( (int)( y2 + 0.5 ), dGrößeA[ doa ].y );
-    for( int y = yStart; y < yEnd; y++ )
-    {
-        const int xStart = max( (int)( m1 * ( (float)y + 0.5f ) + b1 + 0.5f ), dPosA[ doa ].x );
-        const int xEnd = min( (int)( m2 * ( (float)y + 0.5 ) + b2 + 0.5f ), dGrößeA[ doa ].x );
-        for( int x = xStart; x < xEnd; x++ )
-            alphaPixelP( fc[ x + y * größe.x ], farbe );
-    }
+	const int yStart = max( (int)( y1 + 0.5 ), dPosA[ doa ].y );
+	const int yEnd = min( (int)( y2 + 0.5 ), dSizeA[ doa ].y );
+	for( int y = yStart; y < yEnd; y++ )
+	{
+		const int xStart = max( (int)( m1 * ( (float)y + 0.5f ) + b1 + 0.5f ), dPosA[ doa ].x );
+		const int xEnd = min( (int)( m2 * ( (float)y + 0.5 ) + b2 + 0.5f ), dSizeA[ doa ].x );
+		for( int x = xStart; x < xEnd; x++ )
+			alphaPixelP( fc[ x + y * size.x ], farbe );
+	}
 }
 
 void Bild::drawFlatDreieckTexturAlpha( int y1, int y2, double m1, double b1, double m2, double b2, double tx1, double ty1, double tx2, double ty2,
-                                       double tx_1o, double ty_1o, double tx_2o, double ty_2o, double txf, double tyf, Bild &textur )
-{
-    const double yStart = max( y1, dPosA[ doa ].y );
-    const double yEnd = min( y2, dGrößeA[ doa ].y );
-    double tx_1 = tx1 + tx_1o * ( yStart - y1 ), ty_1 = ty1 + ty_1o * ( yStart - y1 ), tx_2 = tx2 + tx_2o * ( yStart - y1 ), ty_2 = ty2 + ty_2o * ( yStart - y1 );
-    for( double y = yStart; y < yEnd; y++, tx_1 += tx_1o, ty_1 += ty_1o, tx_2 += tx_2o, ty_2 += ty_2o )
-    {
-        const double xStart = m1 * y + b1;
-        const double xEnd = m2 * y + b2;
-        drawLinieHTexturAlpha( Vec2< double >( xStart, y ), xEnd - xStart, Vec2< double >( tx_1, ty_1 ), Vec2< double >( tx_2, ty_2 ), txf, tyf, textur );
-    }
-}
-
-void Bild::drawLinieHTextur( Vec2< double > p, double län, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur ) // zeichnet eine horizontale Linie
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        drawLinieHTexturAlpha( p, län, ta, tb, txo, tyo, textur );
-        return;
-    }
-    if( län < 0 )
-    {
-        p.x += län;
-        län = -län;
-        ta.Swap( tb );
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    if( p.y < dpy || p.y >= dgy )
-        return;
-    double off = 0;
-    if( p.x < dpx )
-    {
-        off = dpx - p.x;
-n -= dpx - p.x;
-        if( län <= 0 )
-            return;
-        p.x = dpx;
-    }
-    if( p.x + län >= dgx )
-    {
-        län -= p.x - dgx + län;
-        if( län <= 0 )
-            return;
-    }
-    int br = größe.x;
-    int *fc = this->fc + (int)( p.x + (int)p.y * br );
-    double x = ta.x + txo * off, y = ta.y + tyo * off;
-    int *buffer = textur.getBuffer();
-    int txtBr = textur.getBreite();
-    for( int i = 0; i < län; ++i, ++fc )
-    {
-        *fc = buffer[ (int)( (int)( x + 0.5 ) + (int)( y + 0.5 ) * txtBr ) ];
-        x += txo, y += tyo;
-    }
-    rend = 1;
-}
-
-void Bild::drawLinieHTexturAlpha( Vec2< double > p, double län, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur ) // zeichnet eine horizontale Linie
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( län < 0 )
-    {
-        p.x += län;
-        län = -län;
-        ta.Swap( tb );
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    if( p.y < dpy || p.y >= dgy )
-        return;
-    double off = 0;
-    if( p.x < dpx )
-    {
-        off = dpx - p.x;
-n -= dpx - p.x;
-        if( län <= 0 )
-            return;
-        p.x = dpx;
-    }
-    if( p.x + län >= dgx )
-    {
-        län -= p.x - dgx + län;
-        if( län <= 0 )
-            return;
-    }
-    int br = größe.x;
-    int *fc = this->fc + (int)( p.x + (int)p.y * br );
-    double x = ta.x + txo * off, y = ta.y + tyo * off;
-    int *buffer = textur.getBuffer();
-    int txtBr = textur.getBreite();
-    int f;
-    for( int i = 0; i < län; ++i, ++fc )
-    {
-        f = buffer[ (int)( (int)( x + 0.5 ) + (int)( y + 0.5 ) * txtBr ) ];
-        if( alpha[ alphaAnzahl ] )
-        {
-            unsigned char *cf = (unsigned char*)&f;
-            cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-        }
-        alphaPixelP( *fc, f );
-        x += txo, y += tyo;
-    }
-    rend = 1;
+									   double tx_1o, double ty_1o, double tx_2o, double ty_2o, double txf, double tyf, Bild &textur )
+{
+	const double yStart = max( y1, dPosA[ doa ].y );
+	const double yEnd = min( y2, dSizeA[ doa ].y );
+	double tx_1 = tx1 + tx_1o * ( yStart - y1 ), ty_1 = ty1 + ty_1o * ( yStart - y1 ), tx_2 = tx2 + tx_2o * ( yStart - y1 ), ty_2 = ty2 + ty_2o * ( yStart - y1 );
+	for( double y = yStart; y < yEnd; y++, tx_1 += tx_1o, ty_1 += ty_1o, tx_2 += tx_2o, ty_2 += ty_2o )
+	{
+		const double xStart = m1 * y + b1;
+		const double xEnd = m2 * y + b2;
+		drawLinieHTexturAlpha( Vec2< double >( xStart, y ), xEnd - xStart, Vec2< double >( tx_1, ty_1 ), Vec2< double >( tx_2, ty_2 ), txf, tyf, textur );
+	}
+}
+
+void Bild::drawLinieHTextur( Vec2< double > p, double len, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur ) // zeichnet eine horizontale Linie
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		drawLinieHTexturAlpha( p, len, ta, tb, txo, tyo, textur );
+		return;
+	}
+	if( len < 0 )
+	{
+		p.x += len;
+		len = -len;
+		ta.Swap( tb );
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	if( p.y < dpy || p.y >= dgy )
+		return;
+	double off = 0;
+	if( p.x < dpx )
+	{
+		off = dpx - p.x;
+		len -= dpx - p.x;
+		if( len <= 0 )
+			return;
+		p.x = dpx;
+	}
+	if( p.x + len >= dgx )
+	{
+		len -= p.x - dgx + len;
+		if( len <= 0 )
+			return;
+	}
+	int br = size.x;
+	int *fc = this->fc + (int)( p.x + (int)p.y * br );
+	double x = ta.x + txo * off, y = ta.y + tyo * off;
+	int *buffer = textur.getBuffer();
+	int txtBr = textur.getBreite();
+	for( int i = 0; i < len; ++i, ++fc )
+	{
+		*fc = buffer[ (int)( (int)( x + 0.5 ) + (int)( y + 0.5 ) * txtBr ) ];
+		x += txo, y += tyo;
+	}
+	rend = 1;
+}
+
+void Bild::drawLinieHTexturAlpha( Vec2< double > p, double len, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur ) // zeichnet eine horizontale Linie
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( len < 0 )
+	{
+		p.x += len;
+		len = -len;
+		ta.Swap( tb );
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	if( p.y < dpy || p.y >= dgy )
+		return;
+	double off = 0;
+	if( p.x < dpx )
+	{
+		off = dpx - p.x;
+		len -= dpx - p.x;
+		if( len <= 0 )
+			return;
+		p.x = dpx;
+	}
+	if( p.x + len >= dgx )
+	{
+		len -= p.x - dgx + len;
+		if( len <= 0 )
+			return;
+	}
+	int br = size.x;
+	int *fc = this->fc + (int)( p.x + (int)p.y * br );
+	double x = ta.x + txo * off, y = ta.y + tyo * off;
+	int *buffer = textur.getBuffer();
+	int txtBr = textur.getBreite();
+	int f;
+	for( int i = 0; i < len; ++i, ++fc )
+	{
+		f = buffer[ (int)( (int)( x + 0.5 ) + (int)( y + 0.5 ) * txtBr ) ];
+		if( alpha[ alphaAnzahl ] )
+		{
+			unsigned char *cf = (unsigned char*)&f;
+			cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+		}
+		alphaPixelP( *fc, f );
+		x += txo, y += tyo;
+	}
+	rend = 1;
 }
 
 // nicht constant
@@ -259,1708 +259,1708 @@ void Bild::drawLinieHTexturAlpha( Vec2< double > p, double l
 // Das ist sinnvoll für die Verwendung im 3DBildschirm, wo das Gezeichnette Bild später mittels Alpha Blending angezeigt wird
 void Bild::setAlpha3D( bool erlaubt )
 {
-    alpha3D = erlaubt;
+	alpha3D = erlaubt;
 }
 
 void Bild::setAlpha( unsigned char alpha ) // setzt die Transparenz der nachfolgenden Zeichnunge
 {
-    int last = this->alpha[ alphaAnzahl ];
-    ++alphaAnzahl;
-    assert( alphaAnzahl < 1000 );
-    this->alpha[ alphaAnzahl ] = ( 255 - alpha ) > last ? ( 255 - alpha ) : last;
+	int last = this->alpha[ alphaAnzahl ];
+	++alphaAnzahl;
+	assert( alphaAnzahl < 1000 );
+	this->alpha[ alphaAnzahl ] = (unsigned char)( ( 255 - alpha ) > last ? ( 255 - alpha ) : last );
 }
 
 void Bild::releaseAlpha() // Löscht alpha
 {
-    --alphaAnzahl;
+	--alphaAnzahl;
 }
 
-void Bild::setPixelBuffer( int *buffer, bool deleteBuffer, int breite, int höhe ) // setzt den Zeiger auf die Pixel des Bildes
+void Bild::setPixelBuffer( int *buffer, bool deleteBuffer, int breite, int height ) // setzt den Zeiger auf die Pixel des Bildes
 {
-    if( delFc )
-        delete[]fc;
-    fc = buffer;
-    delFc = deleteBuffer;
-    größe.x = breite;
-    größe.y = höhe;
-    rend = 1;
+	if( delFc )
+		delete[]fc;
+	fc = buffer;
+	delFc = deleteBuffer;
+	size.x = breite;
+	size.y = height;
+	rend = 1;
 }
 
-void Bild::neuBild( int breite, int höhe, int füllFarbe )
+void Bild::neuBild( int breite, int height, int fillColor )
 {
-    if( fc && delFc )
-        delete[] fc;
-    größe.x = breite;
-    größe.y = höhe;
-    fc = new int[ größe.x * größe.y ];
-    setFarbe( füllFarbe );
-    drawOff[ 0 ].x = 0;
-    drawOff[ 0 ].y = 0;
-    dPosA[ 0 ].x = 0;
-    dPosA[ 0 ].y = 0;
-    dGrößeA[ 0 ] = größe;
-    alphaAnzahl = 0;
-    alpha[ 0 ] = 0;
-    doa = 0;
-    rend = 1;
+	if( fc && delFc )
+		delete[] fc;
+	size.x = breite;
+	size.y = height;
+	fc = new int[ size.x * size.y ];
+	setFarbe( fillColor );
+	drawOff[ 0 ].x = 0;
+	drawOff[ 0 ].y = 0;
+	dPosA[ 0 ].x = 0;
+	dPosA[ 0 ].y = 0;
+	dSizeA[ 0 ] = size;
+	alphaAnzahl = 0;
+	alpha[ 0 ] = 0;
+	doa = 0;
+	rend = 1;
 }
 
 void Bild::setFarbe( int f )
 {
-    if( ( f & 0xFF ) == ( ( f >> 8 ) & 0xFF ) && ( f & 0xFF ) == ( ( f >> 16 ) & 0xFF ) && ( f & 0xFF ) == ( ( f >> 24 ) & 0xFF ) )
-        memset( fc, f, größe.x * größe.y * 4 );
-    else
-    {
-        for( int *i = fc, *end = i + größe.x * größe.y; i < end; i++ )
-            *i = f;
-    }
-    rend = 1;
-}
-
-void Bild::füllRegion( int x, int y, int b, int h, int ff )
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        alphaRegion( x, y, b, h, ff );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + b < dpx || y + h < dpy || x > dgx || y > dgy )
-        return;
-    if( x < dpx )
-    {
-        b -= dpx - x;
-        x = dpx;
-    }
-    if( y < dpy )
-    {
-        h -= dpy - y;
-        y = dpy;
-    }
-    b = ( x + b ) >= dgx ? ( dgx - x ) : b;
-    h = ( y + h ) >= dgy ? ( dgy - y ) : h;
-    int *pixel = fc + y * größe.x + x;
-    int *rowEnd = pixel + b;
-    for( int i = 0; i < h; pixel += größe.x - b, ++i, rowEnd += größe.x )
-    {
-        for( ; pixel < rowEnd; ++pixel )
-            *pixel = ff;
-    }
-    rend = 1;
+	if( ( f & 0xFF ) == ( ( f >> 8 ) & 0xFF ) && ( f & 0xFF ) == ( ( f >> 16 ) & 0xFF ) && ( f & 0xFF ) == ( ( f >> 24 ) & 0xFF ) )
+		memset( fc, f, size.x * size.y * 4 );
+	else
+	{
+		for( int *i = fc, *end = i + size.x * size.y; i < end; i++ )
+			*i = f;
+	}
+	rend = 1;
+}
+
+void Bild::fillRegion( int x, int y, int b, int h, int ff )
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		alphaRegion( x, y, b, h, ff );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + b < dpx || y + h < dpy || x > dgx || y > dgy )
+		return;
+	if( x < dpx )
+	{
+		b -= dpx - x;
+		x = dpx;
+	}
+	if( y < dpy )
+	{
+		h -= dpy - y;
+		y = dpy;
+	}
+	b = ( x + b ) >= dgx ? ( dgx - x ) : b;
+	h = ( y + h ) >= dgy ? ( dgy - y ) : h;
+	int *pixel = fc + y * size.x + x;
+	int *rowEnd = pixel + b;
+	for( int i = 0; i < h; pixel += size.x - b, ++i, rowEnd += size.x )
+	{
+		for( ; pixel < rowEnd; ++pixel )
+			*pixel = ff;
+	}
+	rend = 1;
 }
 
 void Bild::alphaRegion( int x, int y, int b, int h, int ff )
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + b < dpx || y + h < dpy || x > dgx || y > dgy )
-        return;
-    if( x < dpx )
-    {
-        b -= dpx - x;
-        x = dpx;
-    }
-    if( y < dpy )
-    {
-        h -= dpy - y;
-        y = dpy;
-    }
-    b = ( x + b ) >= dgx ? ( dgx - x ) : b;
-    h = ( y + h ) >= dgy ? ( dgy - y ) : h;
-    if( alpha[ alphaAnzahl ] )
-    {
-        unsigned char *cf = (unsigned char*)&ff;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-    }
-    int *pixel = fc + y * größe.x + x;
-    int *rowEnd = pixel + b;
-    int alpha = ( ( ff >> 24 ) & 0xFF );
-    int na = ( 0x100 - alpha );
-    int i1 = ( alpha * ( ff & 0xFF00FF ) ) >> 8;
-    int i2 = ( alpha * ( ff & 0x00FF00 ) ) >> 8;
-    for( int i = 0; i < h; pixel += größe.x - b, ++i, rowEnd += größe.x )
-    {
-        for( ; pixel < rowEnd; ++pixel )
-        {
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( ( *pixel & 0xFF000000 ) ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * ff;
-        }
-    }
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + b < dpx || y + h < dpy || x > dgx || y > dgy )
+		return;
+	if( x < dpx )
+	{
+		b -= dpx - x;
+		x = dpx;
+	}
+	if( y < dpy )
+	{
+		h -= dpy - y;
+		y = dpy;
+	}
+	b = ( x + b ) >= dgx ? ( dgx - x ) : b;
+	h = ( y + h ) >= dgy ? ( dgy - y ) : h;
+	if( alpha[ alphaAnzahl ] )
+	{
+		unsigned char *cf = (unsigned char*)&ff;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+	}
+	int *pixel = fc + y * size.x + x;
+	int *rowEnd = pixel + b;
+	int alpha = ( ( ff >> 24 ) & 0xFF );
+	int na = ( 0x100 - alpha );
+	int i1 = ( alpha * ( ff & 0xFF00FF ) ) >> 8;
+	int i2 = ( alpha * ( ff & 0x00FF00 ) ) >> 8;
+	for( int i = 0; i < h; pixel += size.x - b, ++i, rowEnd += size.x )
+	{
+		for( ; pixel < rowEnd; ++pixel )
+		{
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( ( *pixel & 0xFF000000 ) ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * ff;
+		}
+	}
+	rend = 1;
 }
 
 void Bild::alphaPixel( int i, int f )
 {
-    if( !alpha[ alphaAnzahl ] )
-        alphaPixelP( fc[ i ], f );
-    if( alpha[ alphaAnzahl ] < 0xFF )
-    {
-        unsigned char *cf = (unsigned char*)&f;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-        alphaPixelP( fc[ i ], f );
-        rend = 1;
-    }
+	if( !alpha[ alphaAnzahl ] )
+		alphaPixelP( fc[ i ], f );
+	if( alpha[ alphaAnzahl ] < 0xFF )
+	{
+		unsigned char *cf = (unsigned char*)&f;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+		alphaPixelP( fc[ i ], f );
+		rend = 1;
+	}
 }
 
 void Bild::alphaPixel( int x, int y, int f )
 {
-    if( !alpha[ alphaAnzahl ] )
-        alphaPixelP( fc[ x + y * größe.x ], f );
-    if( alpha[ alphaAnzahl ] < 0xFF )
-    {
-        unsigned char *cf = (unsigned char*)&f;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-        alphaPixelP( fc[ x + y * größe.x ], f );
-        rend = 1;
-    }
+	if( !alpha[ alphaAnzahl ] )
+		alphaPixelP( fc[ x + y * size.x ], f );
+	if( alpha[ alphaAnzahl ] < 0xFF )
+	{
+		unsigned char *cf = (unsigned char*)&f;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+		alphaPixelP( fc[ x + y * size.x ], f );
+		rend = 1;
+	}
 }
 
 void Bild::alphaPixelDP( int x, int y, int f )
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    if( x < dpx || y < dpy || x > dgx || y > dgy )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        unsigned char *cf = (unsigned char*)&f;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-    }
-    alphaPixelP( fc[ x + y * größe.x ], f );
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	if( x < dpx || y < dpy || x > dgx || y > dgy )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		unsigned char *cf = (unsigned char*)&f;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+	}
+	alphaPixelP( fc[ x + y * size.x ], f );
+	rend = 1;
 }
 
 void Bild::alphaPixelDP( int i, int f )
 {
-    int x = i % größe.x;
-    int y = i / größe.x;
-    alphaPixelDP( x, y, f );
-    rend = 1;
+	int x = i % size.x;
+	int y = i / size.x;
+	alphaPixelDP( x, y, f );
+	rend = 1;
 }
 
 void Bild::setPixelDP( int x, int y, int f )
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        alphaPixelDP( x, y, f );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    if( x < dpx || y < dpy || x > dgx || y > dgy )
-        return;
-    fc[ x + y * größe.x ] = f;
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		alphaPixelDP( x, y, f );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	if( x < dpx || y < dpy || x > dgx || y > dgy )
+		return;
+	fc[ x + y * size.x ] = f;
+	rend = 1;
 }
 
 void Bild::setPixelDP( int i, int f )
 {
-    int x = i % größe.x;
-    int y = i / größe.x;
-    setPixelDP( x, y, f );
-    rend = 1;
-}
-
-void Bild::drawLinieH( int x, int y, int län, int f ) // zeichnet eine horizontale Linie
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        drawLinieHAlpha( x, y, län, f );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( y < dpy || y >= dgy )
-        return;
-    if( x < dpx )
-    {
-n -= dpx - x;
-        if( län <= 0 )
-            return;
-        x = dpx;
-    }
-    if( x + län >= dgx )
-    {
-        län -= x - dgx + län;
-        if( län <= 0 )
-            return;
-    }
-    int br = größe.x;
-    int *fc = this->fc + x + y * br;
-    int pval = län < 0 ? -1 : 1;
-    län = län > 0 ? län : -län;
-    for( int i = 0; i < län; ++i, fc += pval )
-        *fc = f;
-    rend = 1;
-}
-
-void Bild::drawLinieV( int x, int y, int län, int f ) // zeichnet eine vertikale Linie
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        drawLinieVAlpha( x, y, län, f );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x < dpx || x >= dgx )
-        return;
-    if( y < dpy )
-    {
-n -= dpy - y;
-        if( län <= 0 )
-            return;
-        y = dpy;
-    }
-    if( y + län >= dgy )
-    {
-        län -= y - dgy + län;
-        if( län < 0 )
-            return;
-    }
-    int br = größe.x;
-    int *fc = this->fc + x + y * br;
-    int pval = län < 0 ? -br : br;
-    län = län > 0 ? län : -län;
-    for( int i = 0; i < län; ++i, fc += pval )
-        *fc = f;
-    rend = 1;
-}
-
-void Bild::drawLinieHAlpha( int x, int y, int län, int f ) // zeichnet eine horizontale Linie
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( y < dpy || y >= dgy )
-        return;
-    if( x < dpx )
-    {
-n -= dpx - x;
-        if( län <= 0 )
-            return;
-        x = dpx;
-    }
-    if( x + län >= dgx )
-    {
-        län -= x - dgx + län;
-        if( län <= 0 )
-            return;
-    }
-    int br = größe.x;
-    int pval = län < 0 ? -1 : 1;
-    län = län > 0 ? län : -län;
-    int end = 0;
-    if( alpha[ alphaAnzahl ] )
-    {
-        unsigned char *cf = (unsigned char*)&f;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-    }
-    int alpha = ( ( f >> 24 ) & 0xFF );
-    int na = ( 0x100 - alpha );
-    int i1 = ( alpha * ( f & 0xFF00FF ) ) >> 8;
-    int i2 = ( alpha * ( f & 0x00FF00 ) ) >> 8;
-    for( int i = x + y * br; end < län; ++end, i += pval )
-    {
-        fc[ i ] = ( ( ( ( ( na * ( fc[ i ] & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-            ( ( ( ( na * ( fc[ i ] & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                    ( ( fc[ i ] & 0xFF000000 ) ) ) * ( fc[ i ] != 0 || !alpha3D ) | ( fc[ i ] == 0 && alpha3D ) * f;
-    }
-    rend = 1;
-}
-
-void Bild::drawLinieVAlpha( int x, int y, int län, int f ) // zeichnet eine vertikale Linie
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x < dpx || x >= dgx )
-        return;
-    if( y < dpy )
-    {
-n -= dpy - y;
-        if( län <= 0 )
-            return;
-        y = dpy;
-    }
-    if( y + län >= dgy )
-    {
-        län -= y - dgy + län;
-        if( län < 0 )
-            return;
-    }
-    int br = größe.x;
-    int pval = län < 0 ? -br : br;
-    län = län > 0 ? län : -län;
-    int end = 0;
-    if( alpha[ alphaAnzahl ] )
-    {
-        unsigned char *cf = (unsigned char*)&f;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-    }
-    int alpha = ( ( f >> 24 ) & 0xFF );
-    int na = ( 0x100 - alpha );
-    int i1 = ( alpha * ( f & 0xFF00FF ) ) >> 8;
-    int i2 = ( alpha * ( f & 0x00FF00 ) ) >> 8;
-    for( int i = x + y * br; end < län; ++end, i += pval )
-    {
-        fc[ i ] = ( ( ( ( ( na * ( fc[ i ] & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-            ( ( ( ( na * ( fc[ i ] & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                    ( fc[ i ] & 0xFF000000 ) ) * ( fc[ i ] != 0 || !alpha3D ) | ( fc[ i ] == 0 && alpha3D ) * f;
-    }
-    rend = 1;
+	int x = i % size.x;
+	int y = i / size.x;
+	setPixelDP( x, y, f );
+	rend = 1;
+}
+
+void Bild::drawLinieH( int x, int y, int len, int f ) // zeichnet eine horizontale Linie
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		drawLinieHAlpha( x, y, len, f );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( y < dpy || y >= dgy )
+		return;
+	if( x < dpx )
+	{
+		len -= dpx - x;
+		if( len <= 0 )
+			return;
+		x = dpx;
+	}
+	if( x + len >= dgx )
+	{
+		len -= x - dgx + len;
+		if( len <= 0 )
+			return;
+	}
+	int br = size.x;
+	int *fc = this->fc + x + y * br;
+	int pval = len < 0 ? -1 : 1;
+	len = len > 0 ? len : -len;
+	for( int i = 0; i < len; ++i, fc += pval )
+		*fc = f;
+	rend = 1;
+}
+
+void Bild::drawLinieV( int x, int y, int len, int f ) // zeichnet eine vertikale Linie
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		drawLinieVAlpha( x, y, len, f );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x < dpx || x >= dgx )
+		return;
+	if( y < dpy )
+	{
+		len -= dpy - y;
+		if( len <= 0 )
+			return;
+		y = dpy;
+	}
+	if( y + len >= dgy )
+	{
+		len -= y - dgy + len;
+		if( len < 0 )
+			return;
+	}
+	int br = size.x;
+	int *fc = this->fc + x + y * br;
+	int pval = len < 0 ? -br : br;
+	len = len > 0 ? len : -len;
+	for( int i = 0; i < len; ++i, fc += pval )
+		*fc = f;
+	rend = 1;
+}
+
+void Bild::drawLinieHAlpha( int x, int y, int len, int f ) // zeichnet eine horizontale Linie
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( y < dpy || y >= dgy )
+		return;
+	if( x < dpx )
+	{
+		len -= dpx - x;
+		if( len <= 0 )
+			return;
+		x = dpx;
+	}
+	if( x + len >= dgx )
+	{
+		len -= x - dgx + len;
+		if( len <= 0 )
+			return;
+	}
+	int br = size.x;
+	int pval = len < 0 ? -1 : 1;
+	len = len > 0 ? len : -len;
+	int end = 0;
+	if( alpha[ alphaAnzahl ] )
+	{
+		unsigned char *cf = (unsigned char*)&f;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+	}
+	int alpha = ( ( f >> 24 ) & 0xFF );
+	int na = ( 0x100 - alpha );
+	int i1 = ( alpha * ( f & 0xFF00FF ) ) >> 8;
+	int i2 = ( alpha * ( f & 0x00FF00 ) ) >> 8;
+	for( int i = x + y * br; end < len; ++end, i += pval )
+	{
+		fc[ i ] = ( ( ( ( ( na * ( fc[ i ] & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+			( ( ( ( na * ( fc[ i ] & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					( ( fc[ i ] & 0xFF000000 ) ) ) * ( fc[ i ] != 0 || !alpha3D ) | ( fc[ i ] == 0 && alpha3D ) * f;
+	}
+	rend = 1;
+}
+
+void Bild::drawLinieVAlpha( int x, int y, int len, int f ) // zeichnet eine vertikale Linie
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x < dpx || x >= dgx )
+		return;
+	if( y < dpy )
+	{
+		len -= dpy - y;
+		if( len <= 0 )
+			return;
+		y = dpy;
+	}
+	if( y + len >= dgy )
+	{
+		len -= y - dgy + len;
+		if( len < 0 )
+			return;
+	}
+	int br = size.x;
+	int pval = len < 0 ? -br : br;
+	len = len > 0 ? len : -len;
+	int end = 0;
+	if( alpha[ alphaAnzahl ] )
+	{
+		unsigned char *cf = (unsigned char*)&f;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+	}
+	int alpha = ( ( f >> 24 ) & 0xFF );
+	int na = ( 0x100 - alpha );
+	int i1 = ( alpha * ( f & 0xFF00FF ) ) >> 8;
+	int i2 = ( alpha * ( f & 0x00FF00 ) ) >> 8;
+	for( int i = x + y * br; end < len; ++end, i += pval )
+	{
+		fc[ i ] = ( ( ( ( ( na * ( fc[ i ] & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+			( ( ( ( na * ( fc[ i ] & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					( fc[ i ] & 0xFF000000 ) ) * ( fc[ i ] != 0 || !alpha3D ) | ( fc[ i ] == 0 && alpha3D ) * f;
+	}
+	rend = 1;
 }
 
 void Bild::drawLinie( Punkt a, Punkt b, int fc ) // zeichnet eine Linie von Punkt( x1, y1 ) nach Punke( x2, y2 )
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        drawLinieAlpha( a, b, fc );
-        return;
-    }
-    a += drawOff[ doa ];
-    b += drawOff[ doa ];
-    char outCode1 = getOutCode( a );
-    char outCode2 = getOutCode( b );
-    bool ok = 0;
-    while( 1 )
-    {
-        int xMax = dGrößeA[ doa ].x - 1;
-        int yMax = dGrößeA[ doa ].y - 1;
-        if( !( outCode1 | outCode2 ) )
-        {
-            ok = 1;
-            break;
-        }
-        else if( outCode1 & outCode2 )
-            break;
-        else
-        {
-            int x, y;
-            char outCodeOut = outCode1 ? outCode1 : outCode2;
-            if( outCodeOut & 8 )
-            {
-                x = (int)( a.x + ( b.x - a.x ) * ( yMax - a.y ) / ( b.y - a.y ) + 0.5 );
-                y = yMax;
-            }
-            else if( outCodeOut & 4 )
-            {
-                x = (int)( a.x + ( b.x - a.x ) * ( dPosA[ doa ].y - a.y ) / ( b.y - a.y ) + 0.5 );
-                y = dPosA[ doa ].y;
-            }
-            else if( outCodeOut & 2 )
-            {
-                y = (int)( a.y + ( b.y - a.y ) * ( xMax - a.x ) / ( b.x - a.x ) + 0.5 );
-                x = xMax;
-            }
-            else if( outCodeOut & 1 )
-            {
-                y = (int)( a.y + ( b.y - a.y ) * ( dPosA[ doa ].x - a.x ) / ( b.x - a.x ) + 0.5 );
-                x = dPosA[ doa ].x;
-            }
-            if( outCodeOut == outCode1 )
-            {
-                a.x = x;
-                a.y = y;
-                outCode1 = getOutCode( a );
-            }
-            else
-            {
-                b.x = x;
-                b.y = y;
-                outCode2 = getOutCode( b );
-            }
-        }
-    }
-    if( ok )
-    {
-        int xlän = b.x - a.x, axlän = abs( xlän );
-        int ylän = b.y - a.y, aylän = abs( ylän );
-        double xf = (double)xlän / ( aylän ? aylän : 1 );
-        double yf = (double)ylän / ( axlän ? axlän : 1 );
-        if( axlän > aylän )
-            xf = xf < 0 ? -1 : 1;
-        else
-            yf = yf < 0 ? -1 : 1;
-        double x = (double)a.x, y = (double)a.y;
-        int maxP = (int)( sqrt( xlän * xlän + ylän * ylän ) + 0.5 );
-        int count = 0;
-        while( !( (int)( x + 0.5 ) == b.x && (int)( y + 0.5 ) == b.y ) && count < maxP )
-        {
-            ++count;
-            this->fc[ (int)( (int)( x + 0.5 ) + (int)( y + 0.5 ) * größe.x ) ] = fc;
-            x += xf, y += yf;
-        }
-        rend = 1;
-    }
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		drawLinieAlpha( a, b, fc );
+		return;
+	}
+	a += drawOff[ doa ];
+	b += drawOff[ doa ];
+	char outCode1 = getOutCode( a );
+	char outCode2 = getOutCode( b );
+	bool ok = 0;
+	while( 1 )
+	{
+		int xMax = dSizeA[ doa ].x - 1;
+		int yMax = dSizeA[ doa ].y - 1;
+		if( !( outCode1 | outCode2 ) )
+		{
+			ok = 1;
+			break;
+		}
+		else if( outCode1 & outCode2 )
+			break;
+		else
+		{
+			int x = 0, y = 0;
+			char outCodeOut = outCode1 ? outCode1 : outCode2;
+			if( outCodeOut & 8 )
+			{
+				x = (int)( a.x + ( b.x - a.x ) * ( yMax - a.y ) / ( b.y - a.y ) + 0.5 );
+				y = yMax;
+			}
+			else if( outCodeOut & 4 )
+			{
+				x = (int)( a.x + ( b.x - a.x ) * ( dPosA[ doa ].y - a.y ) / ( b.y - a.y ) + 0.5 );
+				y = dPosA[ doa ].y;
+			}
+			else if( outCodeOut & 2 )
+			{
+				y = (int)( a.y + ( b.y - a.y ) * ( xMax - a.x ) / ( b.x - a.x ) + 0.5 );
+				x = xMax;
+			}
+			else if( outCodeOut & 1 )
+			{
+				y = (int)( a.y + ( b.y - a.y ) * ( dPosA[ doa ].x - a.x ) / ( b.x - a.x ) + 0.5 );
+				x = dPosA[ doa ].x;
+			}
+			if( outCodeOut == outCode1 )
+			{
+				a.x = x;
+				a.y = y;
+				outCode1 = getOutCode( a );
+			}
+			else
+			{
+				b.x = x;
+				b.y = y;
+				outCode2 = getOutCode( b );
+			}
+		}
+	}
+	if( ok )
+	{
+		int xlen = b.x - a.x, axlen = abs( xlen );
+		int ylen = b.y - a.y, aylen = abs( ylen );
+		double xf = (double)xlen / ( aylen ? aylen : 1 );
+		double yf = (double)ylen / ( axlen ? axlen : 1 );
+		if( axlen > aylen )
+			xf = xf < 0 ? -1 : 1;
+		else
+			yf = yf < 0 ? -1 : 1;
+		double x = (double)a.x, y = (double)a.y;
+		int maxP = (int)( sqrt( xlen * xlen + ylen * ylen ) + 0.5 );
+		int count = 0;
+		while( !( (int)( x + 0.5 ) == b.x && (int)( y + 0.5 ) == b.y ) && count < maxP )
+		{
+			++count;
+			this->fc[ (int)( (int)( x + 0.5 ) + (int)( y + 0.5 ) * size.x ) ] = fc;
+			x += xf, y += yf;
+		}
+		rend = 1;
+	}
 }
 
 void Bild::drawLinieAlpha( Punkt a, Punkt b, int fc )
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    a += drawOff[ doa ];
-    b += drawOff[ doa ];
-    char outCode1 = getOutCode( a );
-    char outCode2 = getOutCode( b );
-    bool ok = 0;
-    while( 1 )
-    {
-        int xMax = dGrößeA[ doa ].x - 1;
-        int yMax = dGrößeA[ doa ].y - 1;
-        if( !( outCode1 | outCode2 ) )
-        {
-            ok = 1;
-            break;
-        }
-        else if( outCode1 & outCode2 )
-            break;
-        else
-        {
-            int x, y;
-            char outCodeOut = outCode1 ? outCode1 : outCode2;
-            if( outCodeOut & 8 )
-            {
-                x = (int)( a.x + ( b.x - a.x ) * ( yMax - a.y ) / ( b.y - a.y ) + 0.5 );
-                y = yMax;
-            }
-            else if( outCodeOut & 4 )
-            {
-                x = (int)( a.x + ( b.x - a.x ) * ( dPosA[ doa ].y - a.y ) / ( b.y - a.y ) + 0.5 );
-                y = dPosA[ doa ].y;
-            }
-            else if( outCodeOut & 2 )
-            {
-                y = (int)( a.y + ( b.y - a.y ) * ( xMax - a.x ) / ( b.x - a.x ) + 0.5 );
-                x = xMax;
-            }
-            else if( outCodeOut & 1 )
-            {
-                y = (int)( a.y + ( b.y - a.y ) * ( dPosA[ doa ].x - a.x ) / ( b.x - a.x ) + 0.5 );
-                x = dPosA[ doa ].x;
-            }
-            if( outCodeOut == outCode1 )
-            {
-                a.x = x;
-                a.y = y;
-                outCode1 = getOutCode( a );
-            }
-            else
-            {
-                b.x = x;
-                b.y = y;
-                outCode2 = getOutCode( b );
-            }
-        }
-    }
-    if( ok )
-    {
-        int xlän = b.x - a.x, axlän = abs( xlän );
-        int ylän = b.y - a.y, aylän = abs( ylän );
-        double xf = (double)xlän / ( aylän ? aylän : 1 );
-        double yf = (double)ylän / ( axlän ? axlän : 1 );
-        if( axlän > aylän )
-            xf = xf < 0 ? -1 : 1;
-        else
-            yf = yf < 0 ? -1 : 1;
-        double x = (double)a.x, y = (double)a.y;
-        if( alpha[ alphaAnzahl ] )
-        {
-            unsigned char *cf = (unsigned char*)&fc;
-            cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-        }
-        int maxP = (int)( sqrt( xlän * xlän + ylän * ylän ) + 0.5 );
-        int count = 0;
-        int alpha = ( ( fc >> 24 ) & 0xFF );
-        int na = ( 0x100 - alpha );
-        int i1 = ( alpha * ( fc & 0xFF00FF ) ) >> 8;
-        int i2 = ( alpha * ( fc & 0x00FF00 ) ) >> 8;
-        while( !( (int)( x + 0.5 ) == b.x && (int)( y + 0.5 ) == b.y ) && count < maxP )
-        {
-            ++count;
-            int &pixel = this->fc[ (int)( x + 0.5 ) + (int)( y + 0.5 ) * größe.x ];
-            pixel = ( ( ( ( ( na * ( pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                      ( pixel & 0xFF000000 ) ) * ( pixel != 0 || !alpha3D ) | ( pixel == 0 && alpha3D ) * fc;
-            x += xf, y += yf;
-        }
-        rend = 1;
-    }
-}
-
-void Bild::füllKreis( int xOff, int yOff, int r, int fc ) // zeichnet einen Kreis um Punkt( xOff, yOff ) mit radius r
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    for( int i = r; i > 0; i-- )
-        drawKreis( xOff, yOff, i, fc );
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	a += drawOff[ doa ];
+	b += drawOff[ doa ];
+	char outCode1 = getOutCode( a );
+	char outCode2 = getOutCode( b );
+	bool ok = 0;
+	while( 1 )
+	{
+		int xMax = dSizeA[ doa ].x - 1;
+		int yMax = dSizeA[ doa ].y - 1;
+		if( !( outCode1 | outCode2 ) )
+		{
+			ok = 1;
+			break;
+		}
+		else if( outCode1 & outCode2 )
+			break;
+		else
+		{
+			int x = 0, y = 0;
+			char outCodeOut = outCode1 ? outCode1 : outCode2;
+			if( outCodeOut & 8 )
+			{
+				x = (int)( a.x + ( b.x - a.x ) * ( yMax - a.y ) / ( b.y - a.y ) + 0.5 );
+				y = yMax;
+			}
+			else if( outCodeOut & 4 )
+			{
+				x = (int)( a.x + ( b.x - a.x ) * ( dPosA[ doa ].y - a.y ) / ( b.y - a.y ) + 0.5 );
+				y = dPosA[ doa ].y;
+			}
+			else if( outCodeOut & 2 )
+			{
+				y = (int)( a.y + ( b.y - a.y ) * ( xMax - a.x ) / ( b.x - a.x ) + 0.5 );
+				x = xMax;
+			}
+			else if( outCodeOut & 1 )
+			{
+				y = (int)( a.y + ( b.y - a.y ) * ( dPosA[ doa ].x - a.x ) / ( b.x - a.x ) + 0.5 );
+				x = dPosA[ doa ].x;
+			}
+			if( outCodeOut == outCode1 )
+			{
+				a.x = x;
+				a.y = y;
+				outCode1 = getOutCode( a );
+			}
+			else
+			{
+				b.x = x;
+				b.y = y;
+				outCode2 = getOutCode( b );
+			}
+		}
+	}
+	if( ok )
+	{
+		int xlen = b.x - a.x, axlen = abs( xlen );
+		int ylen = b.y - a.y, aylen = abs( ylen );
+		double xf = (double)xlen / ( aylen ? aylen : 1 );
+		double yf = (double)ylen / ( axlen ? axlen : 1 );
+		if( axlen > aylen )
+			xf = xf < 0 ? -1 : 1;
+		else
+			yf = yf < 0 ? -1 : 1;
+		double x = (double)a.x, y = (double)a.y;
+		if( alpha[ alphaAnzahl ] )
+		{
+			unsigned char *cf = (unsigned char*)&fc;
+			cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+		}
+		int maxP = (int)( sqrt( xlen * xlen + ylen * ylen ) + 0.5 );
+		int count = 0;
+		int alpha = ( ( fc >> 24 ) & 0xFF );
+		int na = ( 0x100 - alpha );
+		int i1 = ( alpha * ( fc & 0xFF00FF ) ) >> 8;
+		int i2 = ( alpha * ( fc & 0x00FF00 ) ) >> 8;
+		while( !( (int)( x + 0.5 ) == b.x && (int)( y + 0.5 ) == b.y ) && count < maxP )
+		{
+			++count;
+			int &pixel = this->fc[ (int)( x + 0.5 ) + (int)( y + 0.5 ) * size.x ];
+			pixel = ( ( ( ( ( na * ( pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					  ( pixel & 0xFF000000 ) ) * ( pixel != 0 || !alpha3D ) | ( pixel == 0 && alpha3D ) * fc;
+			x += xf, y += yf;
+		}
+		rend = 1;
+	}
+}
+
+void Bild::fillCircle( int xOff, int yOff, int r, int fc ) // zeichnet einen Kreis um Punkt( xOff, yOff ) mit radius r
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	for( int i = r; i > 0; i-- )
+		drawKreis( xOff, yOff, i, fc );
 }
 
 void Bild::drawKreis( int xOff, int yOff, int r, int fc ) // zeichnet einen Kreis um Punkt( xOff, yOff ) mit radius r
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        drawKreisAlpha( xOff, yOff, r, fc );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    xOff += drawOff[ doa ].x;
-    yOff += drawOff[ doa ].y;
-    if( xOff + r < dpx || xOff - r >= dgx || yOff + r < dpy || yOff - r >= dgy )
-        return;
-    for( int a = 0; a < r; ++a )
-    {
-        int b = (int)( sqrt( (long)( r * r - a * a ) ) + 0.5 );
-        if( xOff + a < dgx && xOff + a > dpx && yOff + b < dgy && yOff + b > dpy )
-            this->fc[ xOff + a + ( yOff + b ) * größe.x ] = fc;
-        if( xOff - a < dgx && xOff - a > dpx && yOff + b < dgy && yOff + b > dpy )
-            this->fc[ xOff - a + ( yOff + b ) * größe.x ] = fc;
-        if( xOff + a < dgx && xOff + a > dpx && yOff - b < dgy && yOff - b > dpy )
-            this->fc[ xOff + a + ( yOff - b ) * größe.x ] = fc;
-        if( xOff - a < dgx && xOff - a > dpx && yOff - b < dgy && yOff - b > dpy )
-            this->fc[ xOff - a + ( yOff - b ) * größe.x ] = fc;
-        if( xOff + b < dgx && xOff + b > dpx && yOff + a < dgy && yOff + a > dpy )
-            this->fc[ xOff + b + ( yOff + a ) * größe.x ] = fc;
-        if( xOff - b < dgx && xOff - b > dpx && yOff + a < dgy && yOff + a > dpy )
-            this->fc[ xOff - b + ( yOff + a ) * größe.x ] = fc;
-        if( xOff + b < dgx && xOff + b > dpx && yOff - a < dgy && yOff - a > dpy )
-            this->fc[ xOff + b + ( yOff - a ) * größe.x ] = fc;
-        if( xOff - b < dgx && xOff - b > dpx && yOff - a < dgy && yOff - a > dpy )
-            this->fc[ xOff - b + ( yOff - a ) * größe.x ] = fc;
-    }
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		drawKreisAlpha( xOff, yOff, r, fc );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	xOff += drawOff[ doa ].x;
+	yOff += drawOff[ doa ].y;
+	if( xOff + r < dpx || xOff - r >= dgx || yOff + r < dpy || yOff - r >= dgy )
+		return;
+	for( int a = 0; a < r; ++a )
+	{
+		int b = (int)( sqrt( (long)( r * r - a * a ) ) + 0.5 );
+		if( xOff + a < dgx && xOff + a > dpx && yOff + b < dgy && yOff + b > dpy )
+			this->fc[ xOff + a + ( yOff + b ) * size.x ] = fc;
+		if( xOff - a < dgx && xOff - a > dpx && yOff + b < dgy && yOff + b > dpy )
+			this->fc[ xOff - a + ( yOff + b ) * size.x ] = fc;
+		if( xOff + a < dgx && xOff + a > dpx && yOff - b < dgy && yOff - b > dpy )
+			this->fc[ xOff + a + ( yOff - b ) * size.x ] = fc;
+		if( xOff - a < dgx && xOff - a > dpx && yOff - b < dgy && yOff - b > dpy )
+			this->fc[ xOff - a + ( yOff - b ) * size.x ] = fc;
+		if( xOff + b < dgx && xOff + b > dpx && yOff + a < dgy && yOff + a > dpy )
+			this->fc[ xOff + b + ( yOff + a ) * size.x ] = fc;
+		if( xOff - b < dgx && xOff - b > dpx && yOff + a < dgy && yOff + a > dpy )
+			this->fc[ xOff - b + ( yOff + a ) * size.x ] = fc;
+		if( xOff + b < dgx && xOff + b > dpx && yOff - a < dgy && yOff - a > dpy )
+			this->fc[ xOff + b + ( yOff - a ) * size.x ] = fc;
+		if( xOff - b < dgx && xOff - b > dpx && yOff - a < dgy && yOff - a > dpy )
+			this->fc[ xOff - b + ( yOff - a ) * size.x ] = fc;
+	}
+	rend = 1;
 }
 
 void Bild::drawKreisAlpha( int xOff, int yOff, int r, int fc )
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    xOff += drawOff[ doa ].x;
-    yOff += drawOff[ doa ].y;
-    if( xOff + r < dpx || xOff - r >= dgx || yOff + r < dpy || yOff - r >= dgy )
-        return;
-    if( alpha[ alphaAnzahl ] < 0xFF )
-    {
-        unsigned char *cf = (unsigned char*)&fc;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-    }
-    int alpha = ( ( fc >> 24 ) & 0xFF );
-    int na = ( 0x100 - alpha );
-    int i1 = ( alpha * ( fc & 0xFF00FF ) ) >> 8;
-    int i2 = ( alpha * ( fc & 0x00FF00 ) ) >> 8;
-    for( int a = 0; a < r; ++a )
-    {
-        int b = (int)( sqrt( (long)( r * r - a * a ) ) + 0.5 );
-        int *pixel = 0;
-        if( xOff + a < dgx && xOff + a > dpx && yOff + b < dgy && yOff + b > dpy )
-        {
-            pixel = &this->fc[ xOff + a + ( yOff + b ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-        if( xOff - a < dgx && xOff - a > dpx && yOff + b < dgy && yOff + b > dpy )
-        {
-            pixel = &this->fc[ xOff - a + ( yOff + b ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-        if( xOff + a < dgx && xOff + a > dpx && yOff - b < dgy && yOff - b > dpy )
-        {
-            pixel = &this->fc[ xOff + a + ( yOff - b ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-        if( xOff - a < dgx && xOff - a > dpx && yOff - b < dgy && yOff - b > dpy )
-        {
-            pixel = &this->fc[ xOff - a + ( yOff - b ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-        if( xOff + b < dgx && xOff + b > dpx && yOff + a < dgy && yOff + a > dpy )
-        {
-            pixel = &this->fc[ xOff + b + ( yOff + a ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-        if( xOff - b < dgx && xOff - b > dpx && yOff + a < dgy && yOff + a > dpy )
-        {
-            pixel = &this->fc[ xOff - b + ( yOff + a ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-        if( xOff + b < dgx && xOff + b > dpx && yOff - a < dgy && yOff - a > dpy )
-        {
-            pixel = &this->fc[ xOff + b + ( yOff - a ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-        if( xOff - b < dgx && xOff - b > dpx && yOff - a < dgy && yOff - a > dpy )
-        {
-            pixel = &this->fc[ xOff - b + ( yOff - a ) * größe.x ];
-            *pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
-                ( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
-                       ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
-        }
-    }
-    rend = 1;
-}
-
-void Bild::drawBild( int x, int y, int br, int hö, Bild &zBild ) // zeichet zBild
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        alphaBild( x, y, br, hö, zBild );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + br < dpx || y + hö < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getHöhe() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + br, dgx );
-    dgy = minInt( y + hö, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    int xx, ygr, ygr2;
-    for( int yy = yst2; yy < dgy; ++yy )
-    {
-        ygr = yy * größe.x;
-        ygr2 = ( yy - yst2 + yst ) * bb;
-        for( xx = xst2; xx < dgx; ++xx )
-            fc[ xx + ygr ] = ff[ ( xx - xst2 + xst ) + ygr2 ];
-    }
-    rend = 1;
-}
-
-void Bild::alphaBild( int x, int y, int br, int hö, Bild &zBild )
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + br < dpx || y + hö < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getHöhe() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + br, dgx );
-    dgy = minInt( y + hö, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    if( !alpha[ alphaAnzahl ] )
-    {
-        int xx, ygr, ygr2;
-        for( int yy = yst2; yy < dgy; ++yy )
-        {
-            ygr = yy * größe.x;
-            ygr2 = ( yy - yst2 + yst ) * bb;
-            for( xx = xst2; xx < dgx; ++xx )
-                alphaPixelP( fc[ xx + ygr ], ff[ ( xx - xst2 + xst ) + ygr2 ] );
-        }
-    }
-    else
-    {
-        int xx, ygr, ygr2;
-        for( int yy = yst2; yy < dgy; ++yy )
-        {
-            ygr = yy * größe.x;
-            ygr2 = ( yy - yst2 + yst ) * bb;
-            for( xx = xst2; xx < dgx; ++xx )
-            {
-                int fc = ff[ ( xx - xst2 + xst ) + ygr2 ];
-                unsigned char *cf = (unsigned char*)&fc;
-                cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-                alphaPixelP( this->fc[ xx + ygr ], fc );
-            }
-        }
-    }
-    rend = 1;
-}
-
-void Bild::drawBild90( int x, int y, int br, int hö, Bild &zBild ) // Zeichnet ein um 90 Grad nach rchts gedrehtes Bild
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        alphaBild90( x, y, br, hö, zBild );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + hö < dpx || y + br < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getHöhe() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + hö, dgx );
-    dgy = minInt( y + br, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    int yy, xbb;
-    for( int xx = xst2; xx < dgx; ++xx )
-    {
-        xbb = ( zBild.getHöhe() - ( xx - xst2 + xst + 1 ) ) * bb;
-        for( yy = yst2; yy < dgy; ++yy )
-            fc[ xx + yy * größe.x ] = ff[ ( yy - yst2 + yst ) + xbb ];
-    }
-    rend = 1;
-}
-
-void Bild::alphaBild90( int x, int y, int br, int hö, Bild &zBild )
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + hö < dpx || y + br < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getHöhe() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + hö, dgx );
-    dgy = minInt( y + br, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    if( !alpha[ alphaAnzahl ] )
-    {
-        int yy, xbb;
-        for( int xx = xst2; xx < dgx; ++xx )
-        {
-            xbb = ( zBild.getHöhe() - ( xx - xst2 + xst + 1 ) ) * bb;
-            for( yy = yst2; yy < dgy; ++yy )
-                alphaPixelP( xx, yy, ff[ ( yy - yst2 + yst ) + xbb ] );
-        }
-    }
-    else
-    {
-        int yy, xbb;
-        for( int xx = xst2; xx < dgx; ++xx )
-        {
-            xbb = ( zBild.getHöhe() - ( xx - xst2 + xst + 1 ) ) * bb;
-            for( yy = yst2; yy < dgy; ++yy )
-            {
-                int fc = ff[ ( yy - yst2 + yst ) + xbb ];
-                unsigned char *cf = (unsigned char*)&fc;
-                cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-                alphaPixelP( xx, yy, fc );
-            }
-        }
-    }
-    rend = 1;
-}
-
-void Bild::drawBild180( int x, int y, int br, int hö, Bild &zBild ) // Zeichnet ein um 180 Grad nach rchts gedrehtes Bild
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        alphaBild180( x, y, br, hö, zBild );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + br < dpx || y + hö < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getHöhe() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + br, dgx );
-    dgy = minInt( y + hö, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    int xx, ygr, ybb;
-    for( int yy = yst2; yy < dgy; ++yy )
-    {
-        ygr = yy * größe.x;
-        ybb = ( zBild.getHöhe() - ( yy - yst2 + yst + 1 ) ) * bb;
-        for( xx = xst2; xx < dgx; ++xx )
-            fc[ xx + ygr ] = ff[ ( bb - ( xx - xst2 + xst + 1 ) ) + ybb ];
-    }
-    rend = 1;
-}
-
-void Bild::alphaBild180( int x, int y, int br, int hö, Bild &zBild )
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + br < dpx || y + hö < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getHöhe() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + br, dgx );
-    dgy = minInt( y + hö, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    if( !alpha[ alphaAnzahl ] )
-    {
-        int xx, ygr, ybb;
-        for( int yy = yst2; yy < dgy; ++yy )
-        {
-            ygr = yy * größe.x;
-            ybb = ( zBild.getHöhe() - ( yy - yst2 + yst + 1 ) ) * bb;
-            for( xx = xst2; xx < dgx; ++xx )
-                alphaPixelP( fc[ xx + ygr ], ff[ ( bb - ( xx - xst2 + xst + 1 ) ) + ybb ] );
-        }
-    }
-    else
-    {
-        int xx, ygr, ybb;
-        for( int yy = yst2; yy < dgy; ++yy )
-        {
-            ygr = yy * größe.x;
-            ybb = ( zBild.getHöhe() - ( yy - yst2 + yst + 1 ) ) * bb;
-            for( xx = xst2; xx < dgx; ++xx )
-            {
-                int fc = ff[ ( bb - ( xx - xst2 + xst + 1 ) ) + ybb ];
-                unsigned char *cf = (unsigned char*)&fc;
-                cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-                alphaPixelP( this->fc[ xx + ygr ], fc );
-            }
-        }
-    }
-    rend = 1;
-}
-
-void Bild::drawBild270( int x, int y, int br, int hö, Bild &zBild ) // Zeichnet ein um 270 Grad nach rchts gedrehtes Bild
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        alphaBild270( x, y, br, hö, zBild );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + hö < dpx || y + br < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getHöhe() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + hö, dgx );
-    dgy = minInt( y + br, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    int yy, xbb;
-    for( int xx = xst2; xx < dgx; ++xx )
-    {
-        xbb = ( xx - xst2 + xst ) * bb;
-        for( yy = yst2; yy < dgy; ++yy )
-            fc[ xx + yy * größe.x ] = ff[ ( bb - ( yy - yst2 + yst + 1 ) ) + xbb ];
-    }
-    rend = 1;
-}
-
-void Bild::alphaBild270( int x, int y, int br, int hö, Bild &zBild )
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + hö < dpx || y + br < dpy || x > dgx || y > dgy )
-        return;
-    br = minInt( br, zBild.getBreite() );
-    hö = minInt( hö, zBild.getBreite() );
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + hö, dgx );
-    dgy = minInt( y + br, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    if( !alpha[ alphaAnzahl ] )
-    {
-        int yy, xbb;
-        for( int xx = xst2; xx < dgx; ++xx )
-        {
-            xbb = ( xx - xst2 + xst ) * bb;
-            for( yy = yst2; yy < dgy; ++yy )
-                alphaPixelP( xx, yy, ff[ ( bb - ( yy - yst2 + yst + 1 ) ) + xbb ] );
-        }
-    }
-    else
-    {
-        int yy, xbb;
-        for( int xx = xst2; xx < dgx; ++xx )
-        {
-            xbb = ( xx - xst2 + xst ) * bb;
-            for( yy = yst2; yy < dgy; ++yy )
-            {
-                int fc = ff[ ( bb - ( yy - yst2 + yst + 1 ) ) + xbb ];
-                unsigned char *cf = (unsigned char*)&fc;
-                cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-                alphaPixelP( xx, yy, fc );
-            }
-        }
-    }
-    rend = 1;
-}
-
-void Bild::drawBildSkall( int x, int y, int br, int hö, Bild &zBild ) // zeichet zBild Skalliert
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        alphaBildSkall( x, y, br, hö, zBild );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + br < dpx || y + hö < dpy || x > dgx || y > dgy )
-        return;
-    double xo = zBild.getBreite() / (double)br;
-    double yo = zBild.getHöhe() / (double)hö;
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + br, dgx );
-    dgy = minInt( y + hö, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    int xx, ygr, ygr2;
-    double xb = 0, yb = yst * yo;
-    for( int yy = yst2; yy < dgy; ++yy, yb += yo )
-    {
-        ygr = yy * größe.x;
-        ygr2 = (int)( ( yy - yst2 + yst ) * yo ) * bb;
-        for( xx = xst2, xb = xst * xo; xx < dgx; ++xx, xb += xo )
-            fc[ xx + ygr ] = ff[ (int)xb + ygr2 ];
-    }
-    rend = 1;
-}
-
-void Bild::alphaBildSkall( int x, int y, int br, int hö, Bild &zBild )
-{
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    x += drawOff[ doa ].x;
-    y += drawOff[ doa ].y;
-    if( x + br < dpx || y + hö < dpy || x > dgx || y > dgy )
-        return;
-    double xo = zBild.getBreite() / (double)br;
-    double yo = zBild.getHöhe() / (double)hö;
-    int xst = maxInt( dpx - x, 0 );
-    int yst = maxInt( dpy - y, 0 );
-    int xst2 = maxInt( x, dpx );
-    int yst2 = maxInt( y, dpy );
-    dgx = minInt( x + br, dgx );
-    dgy = minInt( y + hö, dgy );
-    int bb = zBild.getBreite();
-    int *ff = zBild.getBuffer();
-    int xx, ygr, ygr2;
-    double xb = 0;
-    for( int yy = yst2; yy < dgy; ++yy )
-    {
-        ygr = yy * größe.x;
-        ygr2 = (int)( ( yy - yst2 + yst ) * yo ) * bb;
-        for( xx = xst2, xb = xst * xo; xx < dgx; ++xx, xb += xo )
-        {
-            int f = ff[ (int)xb + ygr2 ];
-            unsigned char *cf = (unsigned char*)&f;
-            cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-            alphaPixelP( fc[ xx + ygr ], f );
-        }
-    }
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	xOff += drawOff[ doa ].x;
+	yOff += drawOff[ doa ].y;
+	if( xOff + r < dpx || xOff - r >= dgx || yOff + r < dpy || yOff - r >= dgy )
+		return;
+	if( alpha[ alphaAnzahl ] < 0xFF )
+	{
+		unsigned char *cf = (unsigned char*)&fc;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+	}
+	int alpha = ( ( fc >> 24 ) & 0xFF );
+	int na = ( 0x100 - alpha );
+	int i1 = ( alpha * ( fc & 0xFF00FF ) ) >> 8;
+	int i2 = ( alpha * ( fc & 0x00FF00 ) ) >> 8;
+	for( int a = 0; a < r; ++a )
+	{
+		int b = (int)( sqrt( (long)( r * r - a * a ) ) + 0.5 );
+		int *pixel = 0;
+		if( xOff + a < dgx && xOff + a > dpx && yOff + b < dgy && yOff + b > dpy )
+		{
+			pixel = &this->fc[ xOff + a + ( yOff + b ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+		if( xOff - a < dgx && xOff - a > dpx && yOff + b < dgy && yOff + b > dpy )
+		{
+			pixel = &this->fc[ xOff - a + ( yOff + b ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+		if( xOff + a < dgx && xOff + a > dpx && yOff - b < dgy && yOff - b > dpy )
+		{
+			pixel = &this->fc[ xOff + a + ( yOff - b ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+		if( xOff - a < dgx && xOff - a > dpx && yOff - b < dgy && yOff - b > dpy )
+		{
+			pixel = &this->fc[ xOff - a + ( yOff - b ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+		if( xOff + b < dgx && xOff + b > dpx && yOff + a < dgy && yOff + a > dpy )
+		{
+			pixel = &this->fc[ xOff + b + ( yOff + a ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+		if( xOff - b < dgx && xOff - b > dpx && yOff + a < dgy && yOff + a > dpy )
+		{
+			pixel = &this->fc[ xOff - b + ( yOff + a ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+		if( xOff + b < dgx && xOff + b > dpx && yOff - a < dgy && yOff - a > dpy )
+		{
+			pixel = &this->fc[ xOff + b + ( yOff - a ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+		if( xOff - b < dgx && xOff - b > dpx && yOff - a < dgy && yOff - a > dpy )
+		{
+			pixel = &this->fc[ xOff - b + ( yOff - a ) * size.x ];
+			*pixel = ( ( ( ( ( na * ( *pixel & 0xFF00FF ) ) >> 8 ) + i1 ) & 0xFF00FF ) |
+				( ( ( ( na * ( *pixel & 0x00FF00 ) ) >> 8 ) + i2 ) & 0x00FF00 ) |
+					   ( *pixel & 0xFF000000 ) ) * ( *pixel != 0 || !alpha3D ) | ( *pixel == 0 && alpha3D ) * fc;
+		}
+	}
+	rend = 1;
+}
+
+void Bild::drawBild( int x, int y, int br, int hi, Bild &zBild ) // zeichet zBild
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		alphaBild( x, y, br, hi, zBild );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + br < dpx || y + hi < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getHeight() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + br, dgx );
+	dgy = minInt( y + hi, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	int xx, ygr, ygr2;
+	for( int yy = yst2; yy < dgy; ++yy )
+	{
+		ygr = yy * size.x;
+		ygr2 = ( yy - yst2 + yst ) * bb;
+		for( xx = xst2; xx < dgx; ++xx )
+			fc[ xx + ygr ] = ff[ ( xx - xst2 + xst ) + ygr2 ];
+	}
+	rend = 1;
+}
+
+void Bild::alphaBild( int x, int y, int br, int hi, Bild &zBild )
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + br < dpx || y + hi < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getHeight() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + br, dgx );
+	dgy = minInt( y + hi, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	if( !alpha[ alphaAnzahl ] )
+	{
+		int xx, ygr, ygr2;
+		for( int yy = yst2; yy < dgy; ++yy )
+		{
+			ygr = yy * size.x;
+			ygr2 = ( yy - yst2 + yst ) * bb;
+			for( xx = xst2; xx < dgx; ++xx )
+				alphaPixelP( fc[ xx + ygr ], ff[ ( xx - xst2 + xst ) + ygr2 ] );
+		}
+	}
+	else
+	{
+		int xx, ygr, ygr2;
+		for( int yy = yst2; yy < dgy; ++yy )
+		{
+			ygr = yy * size.x;
+			ygr2 = ( yy - yst2 + yst ) * bb;
+			for( xx = xst2; xx < dgx; ++xx )
+			{
+				int fc = ff[ ( xx - xst2 + xst ) + ygr2 ];
+				unsigned char *cf = (unsigned char*)&fc;
+				cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+				alphaPixelP( this->fc[ xx + ygr ], fc );
+			}
+		}
+	}
+	rend = 1;
+}
+
+void Bild::drawBild90( int x, int y, int br, int hi, Bild &zBild ) // Zeichnet ein um 90 Grad nach rchts gedrehtes Bild
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		alphaBild90( x, y, br, hi, zBild );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + hi < dpx || y + br < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getHeight() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + hi, dgx );
+	dgy = minInt( y + br, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	int yy, xbb;
+	for( int xx = xst2; xx < dgx; ++xx )
+	{
+		xbb = ( zBild.getHeight() - ( xx - xst2 + xst + 1 ) ) * bb;
+		for( yy = yst2; yy < dgy; ++yy )
+			fc[ xx + yy * size.x ] = ff[ ( yy - yst2 + yst ) + xbb ];
+	}
+	rend = 1;
+}
+
+void Bild::alphaBild90( int x, int y, int br, int hi, Bild &zBild )
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + hi < dpx || y + br < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getHeight() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + hi, dgx );
+	dgy = minInt( y + br, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	if( !alpha[ alphaAnzahl ] )
+	{
+		int yy, xbb;
+		for( int xx = xst2; xx < dgx; ++xx )
+		{
+			xbb = ( zBild.getHeight() - ( xx - xst2 + xst + 1 ) ) * bb;
+			for( yy = yst2; yy < dgy; ++yy )
+				alphaPixelP( xx, yy, ff[ ( yy - yst2 + yst ) + xbb ] );
+		}
+	}
+	else
+	{
+		int yy, xbb;
+		for( int xx = xst2; xx < dgx; ++xx )
+		{
+			xbb = ( zBild.getHeight() - ( xx - xst2 + xst + 1 ) ) * bb;
+			for( yy = yst2; yy < dgy; ++yy )
+			{
+				int fc = ff[ ( yy - yst2 + yst ) + xbb ];
+				unsigned char *cf = (unsigned char*)&fc;
+				cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+				alphaPixelP( xx, yy, fc );
+			}
+		}
+	}
+	rend = 1;
+}
+
+void Bild::drawBild180( int x, int y, int br, int hi, Bild &zBild ) // Zeichnet ein um 180 Grad nach rchts gedrehtes Bild
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		alphaBild180( x, y, br, hi, zBild );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + br < dpx || y + hi < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getHeight() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + br, dgx );
+	dgy = minInt( y + hi, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	int xx, ygr, ybb;
+	for( int yy = yst2; yy < dgy; ++yy )
+	{
+		ygr = yy * size.x;
+		ybb = ( zBild.getHeight() - ( yy - yst2 + yst + 1 ) ) * bb;
+		for( xx = xst2; xx < dgx; ++xx )
+			fc[ xx + ygr ] = ff[ ( bb - ( xx - xst2 + xst + 1 ) ) + ybb ];
+	}
+	rend = 1;
+}
+
+void Bild::alphaBild180( int x, int y, int br, int hi, Bild &zBild )
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + br < dpx || y + hi < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getHeight() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + br, dgx );
+	dgy = minInt( y + hi, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	if( !alpha[ alphaAnzahl ] )
+	{
+		int xx, ygr, ybb;
+		for( int yy = yst2; yy < dgy; ++yy )
+		{
+			ygr = yy * size.x;
+			ybb = ( zBild.getHeight() - ( yy - yst2 + yst + 1 ) ) * bb;
+			for( xx = xst2; xx < dgx; ++xx )
+				alphaPixelP( fc[ xx + ygr ], ff[ ( bb - ( xx - xst2 + xst + 1 ) ) + ybb ] );
+		}
+	}
+	else
+	{
+		int xx, ygr, ybb;
+		for( int yy = yst2; yy < dgy; ++yy )
+		{
+			ygr = yy * size.x;
+			ybb = ( zBild.getHeight() - ( yy - yst2 + yst + 1 ) ) * bb;
+			for( xx = xst2; xx < dgx; ++xx )
+			{
+				int fc = ff[ ( bb - ( xx - xst2 + xst + 1 ) ) + ybb ];
+				unsigned char *cf = (unsigned char*)&fc;
+				cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+				alphaPixelP( this->fc[ xx + ygr ], fc );
+			}
+		}
+	}
+	rend = 1;
+}
+
+void Bild::drawBild270( int x, int y, int br, int hi, Bild &zBild ) // Zeichnet ein um 270 Grad nach rchts gedrehtes Bild
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		alphaBild270( x, y, br, hi, zBild );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + hi < dpx || y + br < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getHeight() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + hi, dgx );
+	dgy = minInt( y + br, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	int yy, xbb;
+	for( int xx = xst2; xx < dgx; ++xx )
+	{
+		xbb = ( xx - xst2 + xst ) * bb;
+		for( yy = yst2; yy < dgy; ++yy )
+			fc[ xx + yy * size.x ] = ff[ ( bb - ( yy - yst2 + yst + 1 ) ) + xbb ];
+	}
+	rend = 1;
+}
+
+void Bild::alphaBild270( int x, int y, int br, int hi, Bild &zBild )
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + hi < dpx || y + br < dpy || x > dgx || y > dgy )
+		return;
+	br = minInt( br, zBild.getBreite() );
+	hi = minInt( hi, zBild.getBreite() );
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + hi, dgx );
+	dgy = minInt( y + br, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	if( !alpha[ alphaAnzahl ] )
+	{
+		int yy, xbb;
+		for( int xx = xst2; xx < dgx; ++xx )
+		{
+			xbb = ( xx - xst2 + xst ) * bb;
+			for( yy = yst2; yy < dgy; ++yy )
+				alphaPixelP( xx, yy, ff[ ( bb - ( yy - yst2 + yst + 1 ) ) + xbb ] );
+		}
+	}
+	else
+	{
+		int yy, xbb;
+		for( int xx = xst2; xx < dgx; ++xx )
+		{
+			xbb = ( xx - xst2 + xst ) * bb;
+			for( yy = yst2; yy < dgy; ++yy )
+			{
+				int fc = ff[ ( bb - ( yy - yst2 + yst + 1 ) ) + xbb ];
+				unsigned char *cf = (unsigned char*)&fc;
+				cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+				alphaPixelP( xx, yy, fc );
+			}
+		}
+	}
+	rend = 1;
+}
+
+void Bild::drawBildSkall( int x, int y, int br, int hi, Bild &zBild ) // zeichet zBild Skalliert
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		alphaBildSkall( x, y, br, hi, zBild );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + br < dpx || y + hi < dpy || x > dgx || y > dgy )
+		return;
+	double xo = zBild.getBreite() / (double)br;
+	double yo = zBild.getHeight() / (double)hi;
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + br, dgx );
+	dgy = minInt( y + hi, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	int xx, ygr, ygr2;
+	double xb = 0, yb = yst * yo;
+	for( int yy = yst2; yy < dgy; ++yy, yb += yo )
+	{
+		ygr = yy * size.x;
+		ygr2 = (int)( ( yy - yst2 + yst ) * yo ) * bb;
+		for( xx = xst2, xb = xst * xo; xx < dgx; ++xx, xb += xo )
+			fc[ xx + ygr ] = ff[ (int)xb + ygr2 ];
+	}
+	rend = 1;
+}
+
+void Bild::alphaBildSkall( int x, int y, int br, int hi, Bild &zBild )
+{
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	x += drawOff[ doa ].x;
+	y += drawOff[ doa ].y;
+	if( x + br < dpx || y + hi < dpy || x > dgx || y > dgy )
+		return;
+	double xo = zBild.getBreite() / (double)br;
+	double yo = zBild.getHeight() / (double)hi;
+	int xst = maxInt( dpx - x, 0 );
+	int yst = maxInt( dpy - y, 0 );
+	int xst2 = maxInt( x, dpx );
+	int yst2 = maxInt( y, dpy );
+	dgx = minInt( x + br, dgx );
+	dgy = minInt( y + hi, dgy );
+	int bb = zBild.getBreite();
+	int *ff = zBild.getBuffer();
+	int xx, ygr, ygr2;
+	double xb = 0;
+	for( int yy = yst2; yy < dgy; ++yy )
+	{
+		ygr = yy * size.x;
+		ygr2 = (int)( ( yy - yst2 + yst ) * yo ) * bb;
+		for( xx = xst2, xb = xst * xo; xx < dgx; ++xx, xb += xo )
+		{
+			int f = ff[ (int)xb + ygr2 ];
+			unsigned char *cf = (unsigned char*)&f;
+			cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+			alphaPixelP( fc[ xx + ygr ], f );
+		}
+	}
+	rend = 1;
 }
 
 void Bild::drawDreieck( Punkt a, Punkt b, Punkt c, int farbe ) // füllt eine Dreieck aus
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        drawDreieckAlpha( a, b, c, farbe );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    a += drawOff[ doa ];
-    b += drawOff[ doa ];
-    c += drawOff[ doa ];
-    if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
-        ( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
-        return;
-    if( b.y < a.y )
-        a.Swap( b );
-    if( c.y < b.y )
-        b.Swap( c );
-    if( b.y < a.y )
-        a.Swap( b );
-    if( a.y == b.y )
-    {
-        if( b.x < a.x )
-            a.Swap( b );
-        const float m2 = (float)( a.x - c.x ) / ( a.y - c.y );
-        const float m3 = (float)( b.x - c.x ) / ( b.y - c.y );
-        float b2 = a.x - m2 * a.y;
-        float b3 = b.x - m3 * b.y;
-        drawFlatDreieck( b.y, c.y, m2, b2, m3, b3, farbe );
-    }
-    else if( b.y == c.y )
-    {
-        if( c.x < b.x )
-            b.Swap( c );
-        const float m1 = (float)( a.x - b.x ) / ( a.y - b.y );
-        const float m2 = (float)( a.x - c.x ) / ( a.y - c.y );
-        float b1 = a.x - m1 * a.y;
-        float b2 = a.x - m2 * a.y;
-        drawFlatDreieck( a.y, b.y, m1, b1, m2, b2, farbe );
-    }
-    else
-    {
-        const float m1 = (float)( a.x - b.x ) / ( a.y - b.y );
-        const float m2 = (float)( a.x - c.x ) / ( a.y - c.y );
-        const float m3 = (float)( b.x - c.x ) / ( b.y - c.y );
-        float b1 = a.x - m1 * a.y;
-        float b2 = a.x - m2 * a.y;
-        float b3 = b.x - m3 * b.y;
-        const float qx = m2 * b.y + b2;
-        if( qx < b.x )
-        {
-            drawFlatDreieck( a.y, b.y, m2, b2, m1, b1, farbe );
-            drawFlatDreieck( b.y, c.y, m2, b2, m3, b3, farbe );
-        }
-        else
-        {
-            drawFlatDreieck( a.y, b.y, m1, b1, m2, b2, farbe );
-            drawFlatDreieck( b.y, c.y, m3, b3, m2, b2, farbe );
-        }
-    }
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		drawDreieckAlpha( a, b, c, farbe );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	a += drawOff[ doa ];
+	b += drawOff[ doa ];
+	c += drawOff[ doa ];
+	if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
+		( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
+		return;
+	if( b.y < a.y )
+		a.Swap( b );
+	if( c.y < b.y )
+		b.Swap( c );
+	if( b.y < a.y )
+		a.Swap( b );
+	if( a.y == b.y )
+	{
+		if( b.x < a.x )
+			a.Swap( b );
+		const float m2 = (float)( a.x - c.x ) / (float)( a.y - c.y );
+		const float m3 = (float)( b.x - c.x ) / (float)( b.y - c.y );
+		float b2 = (float)a.x - m2 * (float)a.y;
+		float b3 = (float)b.x - m3 * (float)b.y;
+		drawFlatDreieck( b.y, c.y, m2, b2, m3, b3, farbe );
+	}
+	else if( b.y == c.y )
+	{
+		if( c.x < b.x )
+			b.Swap( c );
+		const float m1 = (float)( a.x - b.x ) / (float)( a.y - b.y );
+		const float m2 = (float)( a.x - c.x ) / (float)( a.y - c.y );
+		float b1 = (float)a.x - m1 * (float)a.y;
+		float b2 = (float)a.x - m2 * (float)a.y;
+		drawFlatDreieck( a.y, b.y, m1, b1, m2, b2, farbe );
+	}
+	else
+	{
+		const float m1 = (float)( a.x - b.x ) / (float)( a.y - b.y );
+		const float m2 = (float)( a.x - c.x ) / (float)( a.y - c.y );
+		const float m3 = (float)( b.x - c.x ) / (float)( b.y - c.y );
+		float b1 = (float)a.x - m1 * (float)a.y;
+		float b2 = (float)a.x - m2 * (float)a.y;
+		float b3 = (float)b.x - m3 * (float)b.y;
+		const float qx = m2 * (float)b.y + b2;
+		if( qx < b.x )
+		{
+			drawFlatDreieck( a.y, b.y, m2, b2, m1, b1, farbe );
+			drawFlatDreieck( b.y, c.y, m2, b2, m3, b3, farbe );
+		}
+		else
+		{
+			drawFlatDreieck( a.y, b.y, m1, b1, m2, b2, farbe );
+			drawFlatDreieck( b.y, c.y, m3, b3, m2, b2, farbe );
+		}
+	}
+	rend = 1;
 }
 
 void Bild::drawDreieckTextur( Punkt a, Punkt b, Punkt c, Punkt ta, Punkt tb, Punkt tc, Bild &textur ) // füllt eine Dreieck aus
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        drawDreieckTexturAlpha( a, b, c, ta, tb, tc, textur );
-        return;
-    }
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    a += drawOff[ doa ];
-    b += drawOff[ doa ];
-    c += drawOff[ doa ];
-    if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
-        ( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
-        return;
-    if( b.y < a.y )
-    {
-        a.Swap( b );
-        ta.Swap( tb );
-    }
-    if( c.y < b.y )
-    {
-        b.Swap( c );
-        tb.Swap( tc );
-    }
-    if( b.y < a.y )
-    {
-        a.Swap( b );
-        ta.Swap( tb );
-    }
-    const double m1 = (double)( a.x - b.x ) / ( a.y - b.y );
-    const double m2 = (double)( a.x - c.x ) / ( a.y - c.y );
-    const double m3 = (double)( b.x - c.x ) / ( b.y - c.y );
-    double b1 = a.x - m1 * a.y;
-    double b2 = a.x - m2 * a.y;
-    double b3 = b.x - m3 * b.y;
-    const double qx = m2 * b.y + b2;
-    if( qx < b.x )
-    {
-        double tx1o, ty1o, tx2o, ty2o;
-        if( c.y - a.y )
-        {
-            tx1o = (double)( tc.x - ta.x ) / ( c.y - a.y );
-            ty1o = (double)( tc.y - ta.y ) / ( c.y - a.y );
-        }
-        else
-        {
-            tx1o = 0;
-            ty1o = 0;
-        }
-        if( b.y - a.y )
-        {
-            tx2o = (double)( tb.x - ta.x ) / ( b.y - a.y );
-            ty2o = (double)( tb.y - ta.y ) / ( b.y - a.y );
-        }
-        else
-        {
-            tx2o = 0;
-            ty2o = 0;
-        }
-        Vec2< double > q( ta.x + tx1o * ( b.y - a.y ), ta.y + ty1o * ( b.y - a.y ) );
-        double txf, tyf;
-        if( b.x - qx )
-        {
-            txf = ( tb.x - q.x ) / ( b.x - qx );
-            tyf = ( tb.y - q.y ) / ( b.x - qx );
-        }
-        else
-        {
-            txf = 0;
-            tyf = 0;
-        }
-        drawFlatDreieckTextur( a.y, b.y, m2, b2, m1, b1, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-        if( c.y - b.y )
-        {
-            tx2o = (double)( tc.x - tb.x ) / ( c.y - b.y );
-            ty2o = (double)( tc.y - tb.y ) / ( c.y - b.y );
-        }
-        else
-        {
-            tx2o = 0;
-            ty2o = 0;
-        }
-        drawFlatDreieckTextur( b.y, c.y, m2, b2, m3, b3, q.x, q.y, tb.x, tb.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-    }
-    else
-    {
-        double tx1o, ty1o, tx2o, ty2o;
-        if( b.y - a.y )
-        {
-            tx1o = (double)( tb.x - ta.x ) / ( b.y - a.y );
-            ty1o = (double)( tb.y - ta.y ) / ( b.y - a.y );
-        }
-        else
-        {
-            tx1o = 0;
-            ty1o = 0;
-        }
-        if( c.y - a.y )
-        {
-            tx2o = (double)( tc.x - ta.x ) / ( c.y - a.y );
-            ty2o = (double)( tc.y - ta.y ) / ( c.y - a.y );
-        }
-        else
-        {
-            tx2o = 0;
-            ty2o = 0;
-        }
-        Vec2< double > q( ta.x + tx2o * ( b.y - a.y ), ta.y + ty2o * ( b.y - a.y ) );
-        double txf, tyf;
-        if( qx - b.x )
-        {
-            txf = ( q.x - tb.x ) / ( qx - b.x );
-            tyf = ( q.y - tb.y ) / ( qx - b.x );
-        }
-        else
-        {
-            txf = 0;
-            tyf = 0;
-        }
-        drawFlatDreieckTextur( a.y, b.y, m1, b1, m2, b2, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-        if( c.y - b.y )
-        {
-            tx1o = (double)( tc.x - tb.x ) / ( c.y - b.y );
-            ty1o = (double)( tc.y - tb.y ) / ( c.y - b.y );
-        }
-        else
-        {
-            tx1o = 0;
-            ty1o = 0;
-        }
-        drawFlatDreieckTextur( b.y, c.y, m3, b3, m2, b2, tb.x, tb.y, q.x, q.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-    }
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		drawDreieckTexturAlpha( a, b, c, ta, tb, tc, textur );
+		return;
+	}
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	a += drawOff[ doa ];
+	b += drawOff[ doa ];
+	c += drawOff[ doa ];
+	if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
+		( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
+		return;
+	if( b.y < a.y )
+	{
+		a.Swap( b );
+		ta.Swap( tb );
+	}
+	if( c.y < b.y )
+	{
+		b.Swap( c );
+		tb.Swap( tc );
+	}
+	if( b.y < a.y )
+	{
+		a.Swap( b );
+		ta.Swap( tb );
+	}
+	const double m1 = (double)( a.x - b.x ) / ( a.y - b.y );
+	const double m2 = (double)( a.x - c.x ) / ( a.y - c.y );
+	const double m3 = (double)( b.x - c.x ) / ( b.y - c.y );
+	double b1 = a.x - m1 * a.y;
+	double b2 = a.x - m2 * a.y;
+	double b3 = b.x - m3 * b.y;
+	const double qx = m2 * b.y + b2;
+	if( qx < b.x )
+	{
+		double tx1o, ty1o, tx2o, ty2o;
+		if( c.y - a.y )
+		{
+			tx1o = (double)( tc.x - ta.x ) / ( c.y - a.y );
+			ty1o = (double)( tc.y - ta.y ) / ( c.y - a.y );
+		}
+		else
+		{
+			tx1o = 0;
+			ty1o = 0;
+		}
+		if( b.y - a.y )
+		{
+			tx2o = (double)( tb.x - ta.x ) / ( b.y - a.y );
+			ty2o = (double)( tb.y - ta.y ) / ( b.y - a.y );
+		}
+		else
+		{
+			tx2o = 0;
+			ty2o = 0;
+		}
+		Vec2< double > q( ta.x + tx1o * ( b.y - a.y ), ta.y + ty1o * ( b.y - a.y ) );
+		double txf, tyf;
+		if( b.x - qx )
+		{
+			txf = ( tb.x - q.x ) / ( b.x - qx );
+			tyf = ( tb.y - q.y ) / ( b.x - qx );
+		}
+		else
+		{
+			txf = 0;
+			tyf = 0;
+		}
+		drawFlatDreieckTextur( a.y, b.y, m2, b2, m1, b1, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+		if( c.y - b.y )
+		{
+			tx2o = (double)( tc.x - tb.x ) / ( c.y - b.y );
+			ty2o = (double)( tc.y - tb.y ) / ( c.y - b.y );
+		}
+		else
+		{
+			tx2o = 0;
+			ty2o = 0;
+		}
+		drawFlatDreieckTextur( b.y, c.y, m2, b2, m3, b3, q.x, q.y, tb.x, tb.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+	}
+	else
+	{
+		double tx1o, ty1o, tx2o, ty2o;
+		if( b.y - a.y )
+		{
+			tx1o = (double)( tb.x - ta.x ) / ( b.y - a.y );
+			ty1o = (double)( tb.y - ta.y ) / ( b.y - a.y );
+		}
+		else
+		{
+			tx1o = 0;
+			ty1o = 0;
+		}
+		if( c.y - a.y )
+		{
+			tx2o = (double)( tc.x - ta.x ) / ( c.y - a.y );
+			ty2o = (double)( tc.y - ta.y ) / ( c.y - a.y );
+		}
+		else
+		{
+			tx2o = 0;
+			ty2o = 0;
+		}
+		Vec2< double > q( ta.x + tx2o * ( b.y - a.y ), ta.y + ty2o * ( b.y - a.y ) );
+		double txf, tyf;
+		if( qx - b.x )
+		{
+			txf = ( q.x - tb.x ) / ( qx - b.x );
+			tyf = ( q.y - tb.y ) / ( qx - b.x );
+		}
+		else
+		{
+			txf = 0;
+			tyf = 0;
+		}
+		drawFlatDreieckTextur( a.y, b.y, m1, b1, m2, b2, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+		if( c.y - b.y )
+		{
+			tx1o = (double)( tc.x - tb.x ) / ( c.y - b.y );
+			ty1o = (double)( tc.y - tb.y ) / ( c.y - b.y );
+		}
+		else
+		{
+			tx1o = 0;
+			ty1o = 0;
+		}
+		drawFlatDreieckTextur( b.y, c.y, m3, b3, m2, b2, tb.x, tb.y, q.x, q.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+	}
+	rend = 1;
 }
 
 void Bild::drawDreieckAlpha( Punkt a, Punkt b, Punkt c, int farbe ) // füllt eine Dreieck aus
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    a += drawOff[ doa ];
-    b += drawOff[ doa ];
-    c += drawOff[ doa ];
-    if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
-        ( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
-        return;
-    if( alpha[ alphaAnzahl ] )
-    {
-        unsigned char *cf = (unsigned char*)&farbe;
-        cf[ 3 ] = ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] );
-    }
-    if( b.y < a.y )
-        a.Swap( b );
-    if( c.y < b.y )
-        b.Swap( c );
-    if( b.y < a.y )
-        a.Swap( b );
-    if( a.y == b.y )
-    {
-        if( b.x < a.x )
-            a.Swap( b );
-        const float m2 = (float)( a.x - c.x ) / ( a.y - c.y );
-        const float m3 = (float)( b.x - c.x ) / ( b.y - c.y );
-        float b2 = a.x - m2 * a.y;
-        float b3 = b.x - m3 * b.y;
-        drawFlatDreieckAlpha( b.y, c.y, m2, b2, m3, b3, farbe );
-    }
-    else if( b.y == c.y )
-    {
-        if( c.x < b.x )
-            b.Swap( c );
-        const float m1 = (float)( a.x - b.x ) / ( a.y - b.y );
-        const float m2 = (float)( a.x - c.x ) / ( a.y - c.y );
-        float b1 = a.x - m1 * a.y;
-        float b2 = a.x - m2 * a.y;
-        drawFlatDreieckAlpha( a.y, b.y, m1, b1, m2, b2, farbe );
-    }
-    else
-    {
-        const float m1 = (float)( a.x - b.x ) / ( a.y - b.y );
-        const float m2 = (float)( a.x - c.x ) / ( a.y - c.y );
-        const float m3 = (float)( b.x - c.x ) / ( b.y - c.y );
-        float b1 = a.x - m1 * a.y;
-        float b2 = a.x - m2 * a.y;
-        float b3 = b.x - m3 * b.y;
-        const float qx = m2 * b.y + b2;
-        if( qx < b.x )
-        {
-            drawFlatDreieckAlpha( a.y, b.y, m2, b2, m1, b1, farbe );
-            drawFlatDreieckAlpha( b.y, c.y, m2, b2, m3, b3, farbe );
-        }
-        else
-        {
-            drawFlatDreieckAlpha( a.y, b.y, m1, b1, m2, b2, farbe );
-            drawFlatDreieckAlpha( b.y, c.y, m3, b3, m2, b2, farbe );
-        }
-    }
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	a += drawOff[ doa ];
+	b += drawOff[ doa ];
+	c += drawOff[ doa ];
+	if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
+		( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
+		return;
+	if( alpha[ alphaAnzahl ] )
+	{
+		unsigned char *cf = (unsigned char*)&farbe;
+		cf[ 3 ] = (unsigned char)( ( cf[ 3 ] > alpha[ alphaAnzahl ] ) * ( cf[ 3 ] - alpha[ alphaAnzahl ] ) );
+	}
+	if( b.y < a.y )
+		a.Swap( b );
+	if( c.y < b.y )
+		b.Swap( c );
+	if( b.y < a.y )
+		a.Swap( b );
+	if( a.y == b.y )
+	{
+		if( b.x < a.x )
+			a.Swap( b );
+		const float m2 = (float)( a.x - c.x ) / (float)( a.y - c.y );
+		const float m3 = (float)( b.x - c.x ) / (float)( b.y - c.y );
+		float b2 = (float)a.x - m2 * (float)a.y;
+		float b3 = (float)b.x - m3 * (float)b.y;
+		drawFlatDreieckAlpha( b.y, c.y, m2, b2, m3, b3, farbe );
+	}
+	else if( b.y == c.y )
+	{
+		if( c.x < b.x )
+			b.Swap( c );
+		const float m1 = (float)( a.x - b.x ) / (float)( a.y - b.y );
+		const float m2 = (float)( a.x - c.x ) / (float)( a.y - c.y );
+		float b1 = (float)a.x - m1 * (float)a.y;
+		float b2 = (float)a.x - m2 * (float)a.y;
+		drawFlatDreieckAlpha( a.y, b.y, m1, b1, m2, b2, farbe );
+	}
+	else
+	{
+		const float m1 = (float)( a.x - b.x ) / (float)( a.y - b.y );
+		const float m2 = (float)( a.x - c.x ) / (float)( a.y - c.y );
+		const float m3 = (float)( b.x - c.x ) / (float)( b.y - c.y );
+		float b1 = (float)a.x - m1 * (float)a.y;
+		float b2 = (float)a.x - m2 * (float)a.y;
+		float b3 = (float)b.x - m3 * (float)b.y;
+		const float qx = m2 * (float)b.y + b2;
+		if( qx < b.x )
+		{
+			drawFlatDreieckAlpha( a.y, b.y, m2, b2, m1, b1, farbe );
+			drawFlatDreieckAlpha( b.y, c.y, m2, b2, m3, b3, farbe );
+		}
+		else
+		{
+			drawFlatDreieckAlpha( a.y, b.y, m1, b1, m2, b2, farbe );
+			drawFlatDreieckAlpha( b.y, c.y, m3, b3, m2, b2, farbe );
+		}
+	}
+	rend = 1;
 }
 
 void Bild::drawDreieckTexturAlpha( Punkt a, Punkt b, Punkt c, Punkt ta, Punkt tb, Punkt tc, Bild &textur ) // füllt eine Dreieck aus
 {
-    if( alpha[ alphaAnzahl ] == 0xFF )
-        return;
-    int dpx = dPosA[ doa ].x;
-    int dpy = dPosA[ doa ].y;
-    int dgx = dGrößeA[ doa ].x;
-    int dgy = dGrößeA[ doa ].y;
-    a += drawOff[ doa ];
-    b += drawOff[ doa ];
-    c += drawOff[ doa ];
-    if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
-        ( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
-        return;
-    if( b.y < a.y )
-    {
-        a.Swap( b );
-        ta.Swap( tb );
-    }
-    if( c.y < b.y )
-    {
-        b.Swap( c );
-        tb.Swap( tc );
-    }
-    if( b.y < a.y )
-    {
-        a.Swap( b );
-        ta.Swap( tb );
-    }
-    const double m1 = (double)( a.x - b.x ) / ( a.y - b.y );
-    const double m2 = (double)( a.x - c.x ) / ( a.y - c.y );
-    const double m3 = (double)( b.x - c.x ) / ( b.y - c.y );
-    double b1 = a.x - m1 * a.y;
-    double b2 = a.x - m2 * a.y;
-    double b3 = b.x - m3 * b.y;
-    const double qx = m2 * b.y + b2;
-    if( qx < b.x )
-    {
-        double tx1o, ty1o, tx2o, ty2o;
-        if( c.y - a.y )
-        {
-            tx1o = (double)( tc.x - ta.x ) / ( c.y - a.y );
-            ty1o = (double)( tc.y - ta.y ) / ( c.y - a.y );
-        }
-        else
-        {
-            tx1o = 0;
-            ty1o = 0;
-        }
-        if( b.y - a.y )
-        {
-            tx2o = (double)( tb.x - ta.x ) / ( b.y - a.y );
-            ty2o = (double)( tb.y - ta.y ) / ( b.y - a.y );
-        }
-        else
-        {
-            tx2o = 0;
-            ty2o = 0;
-        }
-        Vec2< double > q( ta.x + tx1o * ( b.y - a.y ), ta.y + ty1o * ( b.y - a.y ) );
-        double txf, tyf;
-        if( b.x - qx )
-        {
-            txf = ( tb.x - q.x ) / ( b.x - qx );
-            tyf = ( tb.y - q.y ) / ( b.x - qx );
-        }
-        else
-        {
-            txf = 0;
-            tyf = 0;
-        }
-        drawFlatDreieckTexturAlpha( a.y, b.y, m2, b2, m1, b1, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-        if( c.y - b.y )
-        {
-            tx2o = (double)( tc.x - tb.x ) / ( c.y - b.y );
-            ty2o = (double)( tc.y - tb.y ) / ( c.y - b.y );
-        }
-        else
-        {
-            tx2o = 0;
-            ty2o = 0;
-        }
-        drawFlatDreieckTexturAlpha( b.y, c.y, m2, b2, m3, b3, q.x, q.y, tb.x, tb.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-    }
-    else
-    {
-        double tx1o, ty1o, tx2o, ty2o;
-        if( b.y - a.y )
-        {
-            tx1o = (double)( tb.x - ta.x ) / ( b.y - a.y );
-            ty1o = (double)( tb.y - ta.y ) / ( b.y - a.y );
-        }
-        else
-        {
-            tx1o = 0;
-            ty1o = 0;
-        }
-        if( c.y - a.y )
-        {
-            tx2o = (double)( tc.x - ta.x ) / ( c.y - a.y );
-            ty2o = (double)( tc.y - ta.y ) / ( c.y - a.y );
-        }
-        else
-        {
-            tx2o = 0;
-            ty2o = 0;
-        }
-        Vec2< double > q( ta.x + tx2o * ( b.y - a.y ), ta.y + ty2o * ( b.y - a.y ) );
-        double txf, tyf;
-        if( qx - b.x )
-        {
-            txf = ( q.x - tb.x ) / ( qx - b.x );
-            tyf = ( q.y - tb.y ) / ( qx - b.x );
-        }
-        else
-        {
-            txf = 0;
-            tyf = 0;
-        }
-        drawFlatDreieckTexturAlpha( a.y, b.y, m1, b1, m2, b2, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-        if( c.y - b.y )
-        {
-            tx1o = (double)( tc.x - tb.x ) / ( c.y - b.y );
-            ty1o = (double)( tc.y - tb.y ) / ( c.y - b.y );
-        }
-        else
-        {
-            tx1o = 0;
-            ty1o = 0;
-        }
-        drawFlatDreieckTexturAlpha( b.y, c.y, m3, b3, m2, b2, tb.x, tb.y, q.x, q.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
-    }
-    rend = 1;
+	if( alpha[ alphaAnzahl ] == 0xFF )
+		return;
+	int dpx = dPosA[ doa ].x;
+	int dpy = dPosA[ doa ].y;
+	int dgx = dSizeA[ doa ].x;
+	int dgy = dSizeA[ doa ].y;
+	a += drawOff[ doa ];
+	b += drawOff[ doa ];
+	c += drawOff[ doa ];
+	if( ( a.x < dpx && b.x < dpx && c.x < dpx ) || ( a.y < dpy && b.y < dpy && c.y < dpy ) ||
+		( a.x > dgx && b.x > dgx && c.x > dgx ) || ( a.y > dgy && b.y > dgy && c.y > dgy ) )
+		return;
+	if( b.y < a.y )
+	{
+		a.Swap( b );
+		ta.Swap( tb );
+	}
+	if( c.y < b.y )
+	{
+		b.Swap( c );
+		tb.Swap( tc );
+	}
+	if( b.y < a.y )
+	{
+		a.Swap( b );
+		ta.Swap( tb );
+	}
+	const double m1 = (double)( a.x - b.x ) / ( a.y - b.y );
+	const double m2 = (double)( a.x - c.x ) / ( a.y - c.y );
+	const double m3 = (double)( b.x - c.x ) / ( b.y - c.y );
+	double b1 = a.x - m1 * a.y;
+	double b2 = a.x - m2 * a.y;
+	double b3 = b.x - m3 * b.y;
+	const double qx = m2 * b.y + b2;
+	if( qx < b.x )
+	{
+		double tx1o, ty1o, tx2o, ty2o;
+		if( c.y - a.y )
+		{
+			tx1o = (double)( tc.x - ta.x ) / ( c.y - a.y );
+			ty1o = (double)( tc.y - ta.y ) / ( c.y - a.y );
+		}
+		else
+		{
+			tx1o = 0;
+			ty1o = 0;
+		}
+		if( b.y - a.y )
+		{
+			tx2o = (double)( tb.x - ta.x ) / ( b.y - a.y );
+			ty2o = (double)( tb.y - ta.y ) / ( b.y - a.y );
+		}
+		else
+		{
+			tx2o = 0;
+			ty2o = 0;
+		}
+		Vec2< double > q( ta.x + tx1o * ( b.y - a.y ), ta.y + ty1o * ( b.y - a.y ) );
+		double txf, tyf;
+		if( b.x - qx )
+		{
+			txf = ( tb.x - q.x ) / ( b.x - qx );
+			tyf = ( tb.y - q.y ) / ( b.x - qx );
+		}
+		else
+		{
+			txf = 0;
+			tyf = 0;
+		}
+		drawFlatDreieckTexturAlpha( a.y, b.y, m2, b2, m1, b1, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+		if( c.y - b.y )
+		{
+			tx2o = (double)( tc.x - tb.x ) / ( c.y - b.y );
+			ty2o = (double)( tc.y - tb.y ) / ( c.y - b.y );
+		}
+		else
+		{
+			tx2o = 0;
+			ty2o = 0;
+		}
+		drawFlatDreieckTexturAlpha( b.y, c.y, m2, b2, m3, b3, q.x, q.y, tb.x, tb.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+	}
+	else
+	{
+		double tx1o, ty1o, tx2o, ty2o;
+		if( b.y - a.y )
+		{
+			tx1o = (double)( tb.x - ta.x ) / ( b.y - a.y );
+			ty1o = (double)( tb.y - ta.y ) / ( b.y - a.y );
+		}
+		else
+		{
+			tx1o = 0;
+			ty1o = 0;
+		}
+		if( c.y - a.y )
+		{
+			tx2o = (double)( tc.x - ta.x ) / ( c.y - a.y );
+			ty2o = (double)( tc.y - ta.y ) / ( c.y - a.y );
+		}
+		else
+		{
+			tx2o = 0;
+			ty2o = 0;
+		}
+		Vec2< double > q( ta.x + tx2o * ( b.y - a.y ), ta.y + ty2o * ( b.y - a.y ) );
+		double txf, tyf;
+		if( qx - b.x )
+		{
+			txf = ( q.x - tb.x ) / ( qx - b.x );
+			tyf = ( q.y - tb.y ) / ( qx - b.x );
+		}
+		else
+		{
+			txf = 0;
+			tyf = 0;
+		}
+		drawFlatDreieckTexturAlpha( a.y, b.y, m1, b1, m2, b2, ta.x, ta.y, ta.x, ta.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+		if( c.y - b.y )
+		{
+			tx1o = (double)( tc.x - tb.x ) / ( c.y - b.y );
+			ty1o = (double)( tc.y - tb.y ) / ( c.y - b.y );
+		}
+		else
+		{
+			tx1o = 0;
+			ty1o = 0;
+		}
+		drawFlatDreieckTexturAlpha( b.y, c.y, m3, b3, m2, b2, tb.x, tb.y, q.x, q.y, tx1o, ty1o, tx2o, ty2o, txf, tyf, textur );
+	}
+	rend = 1;
 }
 
 bool Bild::setDrawOptions( const Punkt &pos, const Punkt &gr ) // setzt die Drawoptionen
 {
-    int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
-    int xx = dPosA[ doa ].x, yy = dPosA[ doa ].y;
-    int bb = dGrößeA[ doa ].x, hh = dGrößeA[ doa ].y;
-    if( dx + pos.x + gr.x < 0 || dy + pos.y + gr.y < 0 || dx + pos.x >= größe.x || dy + pos.y >= größe.y )
-        return 0;
-    if( pos.x + gr.x + dx < xx || pos.y + gr.y + dy < yy || dx + pos.x >= bb || dy + pos.y >= hh )
-        return 0;
-    ++doa;
-    assert( doa < 2000 );
-    dPosA[ doa ].x = maxInt( pos.x + dx, xx );
-    dPosA[ doa ].y = maxInt( pos.y + dy, yy );
-    dGrößeA[ doa ].x = minInt( pos.x + gr.x + dx, bb );
-    dGrößeA[ doa ].y = minInt( pos.y + gr.y + dy, hh );
-    drawOff[ doa ].x = dx + pos.x;
-    drawOff[ doa ].y = dy + pos.y;
-    return 1;
-}
-
-bool Bild::setDrawOptions( int x, int y, int br, int hö )
-{
-    int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
-    int xx = dPosA[ doa ].x, yy = dPosA[ doa ].y;
-    int bb = dGrößeA[ doa ].x, hh = dGrößeA[ doa ].y;
-    if( dx + x + br < 0 || dy + y + hö < 0 || dx + x >= größe.x || dy + y >= größe.y )
-        return 0;
-    if( x + br + dx < xx || y + hö + dy < yy || dx + x >= bb || dy + y >= hh )
-        return 0;
-    ++doa;
-    assert( doa < 2000 );
-    dPosA[ doa ].x = maxInt( x + dx, xx );
-    dPosA[ doa ].y = maxInt( y + dy, yy );
-    dGrößeA[ doa ].x = minInt( x + br + dx, bb );
-    dGrößeA[ doa ].y = minInt( y + hö + dy, hh );
-    drawOff[ doa ].x = dx + x;
-    drawOff[ doa ].y = dy + y;
-    return 1;
+	int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
+	int xx = dPosA[ doa ].x, yy = dPosA[ doa ].y;
+	int bb = dSizeA[ doa ].x, hh = dSizeA[ doa ].y;
+	if( dx + pos.x + gr.x < 0 || dy + pos.y + gr.y < 0 || dx + pos.x >= size.x || dy + pos.y >= size.y )
+		return 0;
+	if( pos.x + gr.x + dx < xx || pos.y + gr.y + dy < yy || dx + pos.x >= bb || dy + pos.y >= hh )
+		return 0;
+	++doa;
+	assert( doa < 2000 );
+	dPosA[ doa ].x = maxInt( pos.x + dx, xx );
+	dPosA[ doa ].y = maxInt( pos.y + dy, yy );
+	dSizeA[ doa ].x = minInt( pos.x + gr.x + dx, bb );
+	dSizeA[ doa ].y = minInt( pos.y + gr.y + dy, hh );
+	drawOff[ doa ].x = dx + pos.x;
+	drawOff[ doa ].y = dy + pos.y;
+	return 1;
+}
+
+bool Bild::setDrawOptions( int x, int y, int br, int hi )
+{
+	int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
+	int xx = dPosA[ doa ].x, yy = dPosA[ doa ].y;
+	int bb = dSizeA[ doa ].x, hh = dSizeA[ doa ].y;
+	if( dx + x + br < 0 || dy + y + hi < 0 || dx + x >= size.x || dy + y >= size.y )
+		return 0;
+	if( x + br + dx < xx || y + hi + dy < yy || dx + x >= bb || dy + y >= hh )
+		return 0;
+	++doa;
+	assert( doa < 2000 );
+	dPosA[ doa ].x = maxInt( x + dx, xx );
+	dPosA[ doa ].y = maxInt( y + dy, yy );
+	dSizeA[ doa ].x = minInt( x + br + dx, bb );
+	dSizeA[ doa ].y = minInt( y + hi + dy, hh );
+	drawOff[ doa ].x = dx + x;
+	drawOff[ doa ].y = dy + y;
+	return 1;
 }
 
 bool Bild::setDrawOptionsErzwingen( const Punkt &pos, const Punkt &gr ) // setzt die Drawoptionen
 {
-    int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
-    if( dx + pos.x + gr.x < 0 || dy + pos.y + gr.y < 0 || dx + pos.x >= größe.x || dy + pos.y >= größe.y )
-        return 0;
-    ++doa;
-    assert( doa < 2000 );
-    dPosA[ doa ].x = maxInt( pos.x + dx, 0 );
-    dPosA[ doa ].y = maxInt( pos.y + dy, 0 );
-    dGrößeA[ doa ].x = minInt( pos.x + gr.x + dx, größe.x );
-    dGrößeA[ doa ].y = minInt( pos.y + gr.y + dy, größe.y );
-    drawOff[ doa ].x = dx + pos.x;
-    drawOff[ doa ].y = dy + pos.y;
-    return 1;
-}
-
-bool Bild::setDrawOptionsErzwingen( int x, int y, int br, int hö ) // setzt die Drawoptionen
-{
-    int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
-    if( dx + x + br < 0 || dy + y + hö < 0 || dx + x >= größe.x || dy + y >= größe.y )
-        return 0;
-    ++doa;
-    assert( doa < 2000 );
-    dPosA[ doa ].x = maxInt( x + dx, 0 );
-    dPosA[ doa ].y = maxInt( y + dy, 0 );
-    dGrößeA[ doa ].x = minInt( x + br + dx, größe.x );
-    dGrößeA[ doa ].y = minInt( y + hö + dy, größe.y );
-    drawOff[ doa ].x = dx + x;
-    drawOff[ doa ].y = dy + y;
-    return 1;
+	int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
+	if( dx + pos.x + gr.x < 0 || dy + pos.y + gr.y < 0 || dx + pos.x >= size.x || dy + pos.y >= size.y )
+		return 0;
+	++doa;
+	assert( doa < 2000 );
+	dPosA[ doa ].x = maxInt( pos.x + dx, 0 );
+	dPosA[ doa ].y = maxInt( pos.y + dy, 0 );
+	dSizeA[ doa ].x = minInt( pos.x + gr.x + dx, size.x );
+	dSizeA[ doa ].y = minInt( pos.y + gr.y + dy, size.y );
+	drawOff[ doa ].x = dx + pos.x;
+	drawOff[ doa ].y = dy + pos.y;
+	return 1;
+}
+
+bool Bild::setDrawOptionsErzwingen( int x, int y, int br, int hi ) // setzt die Drawoptionen
+{
+	int dx = drawOff[ doa ].x, dy = drawOff[ doa ].y;
+	if( dx + x + br < 0 || dy + y + hi < 0 || dx + x >= size.x || dy + y >= size.y )
+		return 0;
+	++doa;
+	assert( doa < 2000 );
+	dPosA[ doa ].x = maxInt( x + dx, 0 );
+	dPosA[ doa ].y = maxInt( y + dy, 0 );
+	dSizeA[ doa ].x = minInt( x + br + dx, size.x );
+	dSizeA[ doa ].y = minInt( y + hi + dy, size.y );
+	drawOff[ doa ].x = dx + x;
+	drawOff[ doa ].y = dy + y;
+	return 1;
 }
 
 void Bild::addScrollOffset( int xOff, int yOff ) // setzt ScrollOffset
 {
-    drawOff[ doa ].x -= xOff;
-    drawOff[ doa ].y -= yOff;
+	drawOff[ doa ].x -= xOff;
+	drawOff[ doa ].y -= yOff;
 }
 
 void Bild::releaseDrawOptions() // setzt die Drawoptionen zurück
 {
-    --doa;
+	--doa;
 }
 
 bool Bild::getRend()
 {
-    bool ret = rend;
-    rend = 0;
-    return ret;
+	bool ret = rend;
+	rend = 0;
+	return ret;
 }
 
 // constant 
 int *Bild::getBuffer()const // gibt buffer zurück
 {
-    return fc;
+	return fc;
 }
 
 int Bild::getPixel( int x, int y ) const
 {
-    if( x < 0 || y < 0 || x >= größe.x || y >= größe.y )
-        return 0;
-    return fc[ x + y * größe.x ];
+	if( x < 0 || y < 0 || x >= size.x || y >= size.y )
+		return 0;
+	return fc[ x + y * size.x ];
 }
 
-const Punkt &Bild::getGröße() const // gibt die Größe zurück
+const Punkt &Bild::getSize() const // gibt die Größe zurück
 {
-    return größe;
+	return size;
 }
 
 int Bild::getBreite() const // gibt die Breite zurück
 {
-    return größe.x;
+	return size.x;
 }
 
-int Bild::getHöhe() const // gibt die Höhe zurück
+int Bild::getHeight() const // gibt die Höhe zurück
 {
-    return größe.y;
+	return size.y;
 }
 
 unsigned char Bild::getAlpha() const // gibt den Alpha wert zurück
 {
-    return 255 - alpha[ alphaAnzahl ];
+	return (unsigned char)( 255 - alpha[ alphaAnzahl ] );
 }
 
 const Punkt &Bild::getDrawPos() const
 {
-    return dPosA[ doa ];
+	return dPosA[ doa ];
 }
 
 const Punkt &Bild::getDrawGr() const
 {
-    return dGrößeA[ doa ];
+	return dSizeA[ doa ];
 }
 
 const Punkt &Bild::getDrawOff() const
 {
-    return drawOff[ doa ];
+	return drawOff[ doa ];
 }
 
 // Reference Counting 
 Bild *Bild::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 Bild *Bild::release()
 {
-    --ref;
-    if( ref < 1 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref < 1 )
+		delete this;
+	return 0;
 }
 
 
@@ -1968,246 +1968,246 @@ Bild *Bild::release()
 // Inhalt der BildZ Klasse aus Bild.h
 // Konstruktor 
 BildZ::BildZ()
-    : ZeichnungHintergrund(),
-    bild( 0 ),
-    ref( 1 )
+	: ZeichnungHintergrund(),
+	bild( 0 ),
+	ref( 1 )
 {
-    style = 0;
-    Mak = _ret1ME;
+	style = 0;
+	Mak = _ret1ME;
 }
 
 // Destruktor 
 BildZ::~BildZ()
 {
-    if( bild )
-        bild->release();
+	if( bild )
+		bild->release();
 }
 
 // nicht constant 
 void BildZ::setBildZ( Bild *b ) // setzt das Bild
 {
-    if( bild )
-        bild->release();
-    bild = b;
-    if( !vertikalScrollBar )
-        vertikalScrollBar = new VScrollBar();
-    if( !horizontalScrollBar )
-        horizontalScrollBar = new HScrollBar();
-    horizontalScrollBar->getScrollData()->max = b->getBreite();
-    vertikalScrollBar->getScrollData()->max = b->getHöhe();
-    rend = 1;
+	if( bild )
+		bild->release();
+	bild = b;
+	if( !vertikalScrollBar )
+		vertikalScrollBar = new VScrollBar();
+	if( !horizontalScrollBar )
+		horizontalScrollBar = new HScrollBar();
+	horizontalScrollBar->getScrollData()->max = b->getBreite();
+	vertikalScrollBar->getScrollData()->max = b->getHeight();
+	rend = 1;
 }
 
 void BildZ::setBild( Bild *b )
 {
-    if( !bild )
-        bild = new Bild();
-    bild->neuBild( b->getBreite(), b->getHöhe(), 0 );
-    bild->drawBild( 0, 0, b->getBreite(), b->getHöhe(), *b );
-    if( !vertikalScrollBar )
-        vertikalScrollBar = new VScrollBar();
-    if( !horizontalScrollBar )
-        horizontalScrollBar = new HScrollBar();
-    horizontalScrollBar->getScrollData()->max = b->getBreite();
-    vertikalScrollBar->getScrollData()->max = b->getHöhe();
-    b->release();
-    rend = 1;
+	if( !bild )
+		bild = new Bild();
+	bild->neuBild( b->getBreite(), b->getHeight(), 0 );
+	bild->drawBild( 0, 0, b->getBreite(), b->getHeight(), *b );
+	if( !vertikalScrollBar )
+		vertikalScrollBar = new VScrollBar();
+	if( !horizontalScrollBar )
+		horizontalScrollBar = new HScrollBar();
+	horizontalScrollBar->getScrollData()->max = b->getBreite();
+	vertikalScrollBar->getScrollData()->max = b->getHeight();
+	b->release();
+	rend = 1;
 }
 
 bool BildZ::tick( double tickVal ) // tick
 {
-    return __super::tick( tickVal );
+	return __super::tick( tickVal );
 }
 
 void BildZ::doMausEreignis( MausEreignis &me ) // ruft Mak auf
 {
-    if( me.verarbeitet || !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) )
-    {
-        if( mausIn )
-        {
-            mausIn = 0;
-            MausEreignis me2;
-            me2.id = ME_Verlässt;
-            me2.mx = me.mx;
-            me2.my = me.my;
-            me2.verarbeitet = 0;
-            doMausEreignis( me2 );
-            return;
-        }
-    }
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt )
-    {
-        return;
-    }
-    if( !mausIn && me.id != ME_Verlässt )
-    {
-        mausIn = 1;
-        MausEreignis me2;
-        me2.id = ME_Betritt;
-        me2.mx = me.mx;
-        me2.my = me.my;
-        me2.verarbeitet = 0;
-        doMausEreignis( me2 );
-    }
-    me.mx -= pos.x;
-    me.my -= pos.y;
-    if( hatStyle( Style::Sichtbar ) )
-    {
-        if( Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
-        {
-            if( me.id != ME_Betritt && me.id != ME_Verlässt )
-            {
-                lockZeichnung();
-                int rbr = 0;
-                if( hatStyle( Style::Rahmen ) && rahmen )
-                    rbr = rahmen->getRBreite();
-                bool vs = hatStyle( Style::VScroll ) && vertikalScrollBar;
-                bool hs = hatStyle( Style::HScroll ) && horizontalScrollBar;
-                if( vs )
-                {
-                    if( hs )
-                        horizontalScrollBar->doMausMessage( rbr, gr.y - rbr - 15, gr.x - rbr * 2 - 15, 15, me );
-                    vertikalScrollBar->doMausMessage( gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me );
-                }
-                else if( hs )
-                    horizontalScrollBar->doMausMessage( rbr, gr.y - rbr - 15, gr.x - rbr * 2, 15, me );
-                unlockZeichnung();
-                if( vs || hs )
-                    me.verarbeitet = 1;
-            }
-        }
-    }
-    me.mx += pos.x;
-    me.my += pos.y;
+	if( me.verarbeitet || !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) )
+	{
+		if( mausIn )
+		{
+			mausIn = 0;
+			MausEreignis me2;
+			me2.id = ME_Leaves;
+			me2.mx = me.mx;
+			me2.my = me.my;
+			me2.verarbeitet = 0;
+			doMausEreignis( me2 );
+			return;
+		}
+	}
+	if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves )
+	{
+		return;
+	}
+	if( !mausIn && me.id != ME_Leaves )
+	{
+		mausIn = 1;
+		MausEreignis me2;
+		me2.id = ME_Betritt;
+		me2.mx = me.mx;
+		me2.my = me.my;
+		me2.verarbeitet = 0;
+		doMausEreignis( me2 );
+	}
+	me.mx -= pos.x;
+	me.my -= pos.y;
+	if( hatStyle( Style::Sichtbar ) )
+	{
+		if( Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
+		{
+			if( me.id != ME_Betritt && me.id != ME_Leaves )
+			{
+				lockZeichnung();
+				int rbr = 0;
+				if( hatStyle( Style::Rahmen ) && rahmen )
+					rbr = rahmen->getRBreite();
+				bool vs = hatStyle( Style::VScroll ) && vertikalScrollBar;
+				bool hs = hatStyle( Style::HScroll ) && horizontalScrollBar;
+				if( vs )
+				{
+					if( hs )
+						horizontalScrollBar->doMausMessage( rbr, gr.y - rbr - 15, gr.x - rbr * 2 - 15, 15, me );
+					vertikalScrollBar->doMausMessage( gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me );
+				}
+				else if( hs )
+					horizontalScrollBar->doMausMessage( rbr, gr.y - rbr - 15, gr.x - rbr * 2, 15, me );
+				unlockZeichnung();
+				if( vs || hs )
+					me.verarbeitet = 1;
+			}
+		}
+	}
+	me.mx += pos.x;
+	me.my += pos.y;
 }
 
 void BildZ::render( Bild &zRObj ) // zeichnet nach zRObj
 {
-    if( hatStyle( Style::Sichtbar ) )
-    {
-        __super::render( zRObj );
-        lockZeichnung();
-        if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
-        {
-            unlockZeichnung();
-            return;
-        }
-        if( bild )
-        {
-            int x = 0;
-            int y = 0;
-            int br = innenGröße.x;
-            int hö = innenGröße.y;
-            if( !( vertikalScrollBar && hatStyle( Style::VScroll ) ) && !( horizontalScrollBar && hatStyle( Style::HScroll ) ) )
-            {
-                if( hatStyle( Style::Alpha ) )
-                    zRObj.alphaBild( x, y, br, hö, *bild );
-                else
-                    zRObj.drawBild( x, y, br, hö, *bild );
-            }
-            else
-            {
-                if( !zRObj.setDrawOptions( x, y, br, hö ) )
-                {
-                    zRObj.releaseDrawOptions();
-                    unlockZeichnung();
-                    return;
-                }
-                if( hatStyle( Style::Alpha ) )
-                    zRObj.alphaBild( -horizontalScrollBar->getScroll(), -vertikalScrollBar->getScroll(), bild->getBreite(), bild->getHöhe(), *bild );
-                else
-                    zRObj.drawBild( -horizontalScrollBar->getScroll(), -vertikalScrollBar->getScroll(), bild->getBreite(), bild->getHöhe(), *bild );
-                zRObj.releaseDrawOptions();
-            }
-        }
-        zRObj.releaseDrawOptions();
-        unlockZeichnung();
-    }
+	if( hatStyle( Style::Sichtbar ) )
+	{
+		__super::render( zRObj );
+		lockZeichnung();
+		if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
+		{
+			unlockZeichnung();
+			return;
+		}
+		if( bild )
+		{
+			int x = 0;
+			int y = 0;
+			int br = innenSize.x;
+			int hö = innenSize.y;
+			if( !( vertikalScrollBar && hatStyle( Style::VScroll ) ) && !( horizontalScrollBar && hatStyle( Style::HScroll ) ) )
+			{
+				if( hatStyle( Style::Alpha ) )
+					zRObj.alphaBild( x, y, br, hö, *bild );
+				else
+					zRObj.drawBild( x, y, br, hö, *bild );
+			}
+			else
+			{
+				if( !zRObj.setDrawOptions( x, y, br, hö ) )
+				{
+					zRObj.releaseDrawOptions();
+					unlockZeichnung();
+					return;
+				}
+				if( hatStyle( Style::Alpha ) )
+					zRObj.alphaBild( -horizontalScrollBar->getScroll(), -vertikalScrollBar->getScroll(), bild->getBreite(), bild->getHeight(), *bild );
+				else
+					zRObj.drawBild( -horizontalScrollBar->getScroll(), -vertikalScrollBar->getScroll(), bild->getBreite(), bild->getHeight(), *bild );
+				zRObj.releaseDrawOptions();
+			}
+		}
+		zRObj.releaseDrawOptions();
+		unlockZeichnung();
+	}
 }
 
 // constant 
 Bild *BildZ::getBild() const // gibt das Bild zurück
 {
-    if( bild )
-        return bild->getThis();
-    return 0;
+	if( bild )
+		return bild->getThis();
+	return 0;
 }
 
 Bild *BildZ::zBild() const
 {
-    return bild;
+	return bild;
 }
 
 Zeichnung *BildZ::dublizieren() const // erstellt eine Kopie des Zeichnungs
 {
-    BildZ *obj = new BildZ();
-    obj->setPosition( pos );
-    obj->setGröße( gr );
-    obj->setMausEreignisParameter( makParam );
-    obj->setTastaturEreignisParameter( takParam );
-    obj->setMausEreignis( Mak );
-    obj->setTastaturEreignis( Tak );
-    if( toolTip )
-        obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
-    obj->setStyle( style );
-    obj->setHintergrundFarbe( hintergrundFarbe );
-    if( hintergrundFeld )
-        obj->setAlphaFeldZ( (AlphaFeld*)hintergrundFeld->dublizieren() );
-    if( rahmen )
-        obj->setLinienRahmenZ( (LRahmen*)rahmen->dublizieren() );
-    if( hintergrundBild )
-        obj->setHintergrundBild( hintergrundBild->getThis() );
-    if( bild )
-        obj->setBild( bild->getThis() );
-    obj->setStyle( style );
-    return obj;
+	BildZ *obj = new BildZ();
+	obj->setPosition( pos );
+	obj->setSize( gr );
+	obj->setMausEreignisParameter( makParam );
+	obj->setTastaturEreignisParameter( takParam );
+	obj->setMausEreignis( Mak );
+	obj->setTastaturEreignis( Tak );
+	if( toolTip )
+		obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
+	obj->setStyle( style );
+	obj->setHintergrundFarbe( hintergrundFarbe );
+	if( hintergrundFeld )
+		obj->setAlphaFeldZ( (AlphaFeld*)hintergrundFeld->dublizieren() );
+	if( rahmen )
+		obj->setLinienRahmenZ( (LRahmen*)rahmen->dublizieren() );
+	if( hintergrundBild )
+		obj->setHintergrundBild( hintergrundBild->getThis() );
+	if( bild )
+		obj->setBild( bild->getThis() );
+	obj->setStyle( style );
+	return obj;
 }
 
 // Reference Counting 
 BildZ *BildZ::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 BildZ *BildZ::release()
 {
-    --ref;
-    if( !ref )
-        delete this;
-    return 0;
+	--ref;
+	if( !ref )
+		delete this;
+	return 0;
 }
 
 
 Bild *Framework::ladeBild( char *pfad, Text *zError )
 {
-    Text p = pfad;
-    Text *txt = p.getTeilText( p.positionVon( '.', p.anzahlVon( '.' ) - 1 ) );
-    if( !( txt->istGleich( ".bmp" ) || txt->istGleich( ".jpg" ) || txt->istGleich( ".gif" ) || txt->istGleich( ".png" ) ) )
-    {
-        zError->setText( "Die Angegebene Datei ist keine gueltige Bilddatei!" );
-        txt->release();
-        return 0;
-    }
-    txt->release();
-    wchar_t *name = new wchar_t[ p.getLänge() + 1 ];
-    for( int i = 0; i < p.getLänge(); i++ )
-        name[ i ] = (wchar_t)p.getText()[ i ];
-    name[ p.getLänge() ] = '\0';
-
-    Gdiplus::Bitmap bitmap( name );
-    Gdiplus::Color pix;
-    delete[]name;
-
-    Bild *ret = new Bild();
-    ret->neuBild( bitmap.GetWidth(), bitmap.GetHeight(), 0 );
-    int *buff = ret->getBuffer();
-    for( unsigned int i = 0; i < bitmap.GetWidth() * bitmap.GetHeight(); i++ )
-    {
-        bitmap.GetPixel( i % bitmap.GetWidth(), i / bitmap.GetWidth(), &pix );
-        buff[ i ] = pix.GetValue();
-    }
-    return ret;
+	Text p = pfad;
+	Text *txt = p.getTeilText( p.positionVon( '.', p.anzahlVon( '.' ) - 1 ) );
+	if( !( txt->istGleich( ".bmp" ) || txt->istGleich( ".jpg" ) || txt->istGleich( ".gif" ) || txt->istGleich( ".png" ) ) )
+	{
+		zError->setText( "Die Angegebene Datei ist keine gueltige Bilddatei!" );
+		txt->release();
+		return 0;
+	}
+	txt->release();
+	wchar_t *name = new wchar_t[ p.getLength() + 1 ];
+	for( int i = 0; i < p.getLength(); i++ )
+		name[ i ] = (wchar_t)p.getText()[ i ];
+	name[ p.getLength() ] = '\0';
+
+	Gdiplus::Bitmap bitmap( name );
+	Gdiplus::Color pix;
+	delete[]name;
+
+	Bild *ret = new Bild();
+	ret->neuBild( bitmap.GetWidth(), bitmap.GetHeight(), 0 );
+	int *buff = ret->getBuffer();
+	for( unsigned int i = 0; i < bitmap.GetWidth() * bitmap.GetHeight(); i++ )
+	{
+		bitmap.GetPixel( i % bitmap.GetWidth(), i / bitmap.GetWidth(), &pix );
+		buff[ i ] = pix.GetValue();
+	}
+	return ret;
 }
 
 #endif

+ 45 - 45
Bild.h

@@ -27,11 +27,11 @@ namespace Framework
     private:
         int *fc;
         bool delFc;
-        Punkt größe;
+        Punkt size;
         int ref;
         Punkt *drawOff;
         Punkt *dPosA;
-        Punkt *dGrößeA;
+        Punkt *dSizeA;
         int doa;
         unsigned char *alpha;
         int alphaAnzahl;
@@ -41,15 +41,15 @@ namespace Framework
         // privat
         inline void alphaPixelP( int x, int y, int f );
         inline void alphaPixelP( int &fc, int f );
-        inline char getOutCode( Punkt& p ) const;
+        inline char getOutCode( Punkt p ) const;
         void drawFlatDreieck( int y1, int y2, float m1, float b1, float m2, float b2, int farbe );
         void drawFlatDreieckTextur( int y1, int y2, double m1, double b1, double m2, double b2, double tx1, double ty1, double tx2, double ty2,
                                     double tx_1o, double ty_1o, double tx_2o, double ty_2o, double txf, double tyf, Bild &textur );
         void drawFlatDreieckAlpha( int y1, int y2, float m1, float b1, float m2, float b2, int farbe );
         void drawFlatDreieckTexturAlpha( int y1, int y2, double m1, double b1, double m2, double b2, double tx1, double ty1, double tx2, double ty2,
                                          double tx_1o, double ty_1o, double tx_2o, double ty_2o, double txf, double tyf, Bild &textur );
-        void drawLinieHTextur( Vec2< double > p, double län, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur );
-        void drawLinieHTexturAlpha( Vec2< double > p, double län, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur );
+        void drawLinieHTextur( Vec2< double > p, double length, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur );
+        void drawLinieHTexturAlpha( Vec2< double > p, double length, Vec2< double > ta, Vec2< double > tb, double txo, double tyo, Bild &textur );
 
     public:
         // Konstruktor
@@ -70,13 +70,13 @@ namespace Framework
         //  buffer: Ein Array mit den A8R8G8B8 Farbwerten
         //  deleteBuffer: 1, fals der Array vom Bild gelöscht werden soll
         //  breite: Die Breite in Pixeln
-        //  höhe: Die Höhe in Pixeln
-        __declspec( dllexport ) void setPixelBuffer( int *buffer, bool deleteBuffer, int breite, int höhe );
+        //  height: Die Höhe in Pixeln
+        __declspec( dllexport ) void setPixelBuffer( int *buffer, bool deleteBuffer, int breite, int height );
         // Erstellt ein neues Bild
         //  breite: Die Breite des Bildes in Pixeln
         //  höhe: Die Höhe des Bildes in Pixeln
-        //  füllFarbe: Die startfarbe, auf die alle Pixel gesetzt werden
-        __declspec( dllexport ) void neuBild( int breite, int höhe, int füllFarbe );
+        //  fillColor: Die startfarbe, auf die alle Pixel gesetzt werden
+        __declspec( dllexport ) void neuBild( int breite, int height, int fillColor );
         // Blendet mittels Alphablending eine Farbe auf einen bestimmten Pixel
         // Beachtet nicht die begrenzung der Zeichnenfläche und das Skroll Offset
         //  x: Die X Koordinate des Pixels
@@ -115,7 +115,7 @@ namespace Framework
         //  b: Die Breite des Rechtecks
         //  h: Die Höhe des Rechtecks
         //  fc: Die Farbe im A8R8G8B8 Format
-        __declspec( dllexport ) void füllRegion( int x, int y, int b, int h, int fc );
+        __declspec( dllexport ) void fillRegion( int x, int y, int b, int h, int fc );
         // Blendet eine Farbe mit Alphablending in einem Rechteck
         //  x: Die X Koordinate
         //  y: Die Y Koordinate
@@ -126,27 +126,27 @@ namespace Framework
         // Zeichnet eine horizontale Linie
         //  x: Die X Koordinate des Startpunktes der Linie
         //  y: Die Y Koordinate des Startpunktes der Linie
-        //  län: Die Länge der Linie
+        //  length: Die Länge der Linie
         //  fc: Die Farbe im A8R8G8B8 Format
-        __declspec( dllexport ) void drawLinieH( int x, int y, int län, int fc );
+        __declspec( dllexport ) void drawLinieH( int x, int y, int length, int fc );
         // Zeichnet eine vertikale Linie
         //  x: Die X Koordinate des Startpunktes der Linie
         //  y: Die Y Koordinate des Startpunktes der Linie
-        //  län: Die Länge der Linie
+        //  length: Die Länge der Linie
         //  fc: Die Farbe im A8R8G8B8 Format
-        __declspec( dllexport ) void drawLinieV( int x, int y, int län, int fc );
+        __declspec( dllexport ) void drawLinieV( int x, int y, int length, int fc );
         // Zeichnet eine horizontale Linie mit Alpha blending
         //  x: Die X Koordinate des Startpunktes der Linie
         //  y: Die Y Koordinate des Startpunktes der Linie
-        //  län: Die Länge der Linie
+        //  length: Die Länge der Linie
         //  fc: Die Farbe im A8R8G8B8 Format
-        __declspec( dllexport ) void drawLinieHAlpha( int x, int y, int län, int fc );
+        __declspec( dllexport ) void drawLinieHAlpha( int x, int y, int length, int fc );
         // Zeichnet eine vertikale Linie mit Alpha Blending
         //  x: Die X Koordinate des Startpunktes der Linie
         //  y: Die Y Koordinate des Startpunktes der Linie
-        //  län: Die Länge der Linie
+        //  length: Die Länge der Linie
         //  fc: Die Farbe im A8R8G8B8 Format
-        __declspec( dllexport ) void drawLinieVAlpha( int x, int y, int län, int fc );
+        __declspec( dllexport ) void drawLinieVAlpha( int x, int y, int length, int fc );
         // Zeichnet eine Linie
         //  a: Der Startpunkt der Linie
         //  b: der Endpunkt der Linie
@@ -162,7 +162,7 @@ namespace Framework
         //  yOff: Die Y Koordinate des Kreismittelpunktes
         //  r: Der Radius des Kreises in Pixeln
         //  fc: Die Farbe im A8R8G8B8 Format
-        __declspec( dllexport ) void füllKreis( int xOff, int yOff, int r, int fc );
+        __declspec( dllexport ) void fillCircle( int xOff, int yOff, int r, int fc );
         // Zeichnet den Umriss eines Kreises
         //  xOff: Die X Koordinate des Kreismittelpunktes
         //  yOff: Die Y Koordinate des Kreismittelpunktes
@@ -179,72 +179,72 @@ namespace Framework
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void drawBild( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void drawBild( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild in ein bestimmtes Feld ohne Skallierung mit alpha blending
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void alphaBild( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void alphaBild( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild um 90 grad nach rechts gedreht in ein bestimmtes Feld ohne Skallierung
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void drawBild90( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void drawBild90( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild um 90 grad nach rechts gedreht in ein bestimmtes Feld ohne Skallierung mit alpha Blending
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void alphaBild90( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void alphaBild90( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild um 180 grad nach rechts gedreht in ein bestimmtes Feld ohne Skallierung
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void drawBild180( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void drawBild180( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild um 180 grad nach rechts gedreht in ein bestimmtes Feld ohne Skallierung mit alpha Blending
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void alphaBild180( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void alphaBild180( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild um 270 grad nach rechts gedreht in ein bestimmtes Feld ohne Skallierung
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void drawBild270( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void drawBild270( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild um 270 grad nach rechts gedreht in ein bestimmtes Feld ohne Skallierung mit alpha Blending
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void alphaBild270( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void alphaBild270( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild in ein bestimmtes Feld mit Skallierung
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void drawBildSkall( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void drawBildSkall( int x, int y, int br, int hi, Bild &zBild );
         // Zeichnet ein Bild in ein bestimmtes Feld mit Skallierung mit Alpha Blending
         //  x: Die X Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  y: Die Y Koordinate der linken oberen Ecke des Rechtecks in dem das Bild gezeichnet werden soll
         //  br: Die Breite des Rechecks in dem das Bild gezeichnet werden soll
-        //  hö: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
+        //  hi: Die Höhe des Rechecks in dem das Bild gezeichnet werden soll
         //  zBild: Das Bild, was gezeichnet werden soll
-        __declspec( dllexport ) void alphaBildSkall( int x, int y, int br, int hö, Bild &zBild );
+        __declspec( dllexport ) void alphaBildSkall( int x, int y, int br, int hi, Bild &zBild );
         // Füllt ein Dreieck mit einer bestimmten Farbe
         //  a: Eine Ecke des Dreiecks
         //  b: Eine Ecke des Dreiecks
@@ -286,9 +286,9 @@ namespace Framework
         //  x: Die X Koordinate der linken oberen Ecke der Zeichenfläche
         //  y: Die X Koordinate der linken oberen Ecke der Zeichenfläche
         //  br: Die Breite der Zeichenfläche
-        //  hö: Die Höhe der Zeichenfläche
+        //  hi: Die Höhe der Zeichenfläche
         //  return: 1, falls die neue Zeichenfläche ganz oder teilweise innerhalb der bestehenden Zeichenfläche ligt. Wenn 0 zurückgegeben wird, wurde die Zeichenfläche nicht gesetzt und es braucht nicht releaseDrawOptions() aufgerufen werden
-        __declspec( dllexport ) bool setDrawOptions( int x, int y, int br, int hö );
+        __declspec( dllexport ) bool setDrawOptions( int x, int y, int br, int hi );
         // Begrenzt die Zeichenfläche in die bis zum nächsten aufruf von releaseDrawOptions() gezeichnet werden kann. Alles außerhalb der Fläche wird automatisch ignoriert.
         // Wenn die Zeichenfläche darf über den Rand einer bestehenden Zeichenfläche hinausragen
         //  pos: Die Koordinaten der linken oberen Ecke der Zeichenfläche
@@ -300,9 +300,9 @@ namespace Framework
         //  x: Die X Koordinate der linken oberen Ecke der Zeichenfläche
         //  y: Die X Koordinate der linken oberen Ecke der Zeichenfläche
         //  br: Die Breite der Zeichenfläche
-        //  hö: Die Höhe der Zeichenfläche
+        //  hi: Die Höhe der Zeichenfläche
         //  return: 1, falls die neue Zeichenfläche ganz oder teilweise innerhalb des Bildes ligt. Wenn 0 zurückgegeben wird, wurde die Zeichenfläche nicht gesetzt und es braucht nicht releaseDrawOptions() aufgerufen werden
-        __declspec( dllexport ) bool setDrawOptionsErzwingen( int x, int y, int br, int hö );
+        __declspec( dllexport ) bool setDrawOptionsErzwingen( int x, int y, int br, int hi );
         // Setzt Koordinaten, die bei den Zeichenfunktionen von den Positionen abgezogen werden
         // Vorher sollte eine Zeichenfläche mit SetDrawOptions gesetzt worden sein. Die Werte werden mit dem aufruf von releaseDrawOptions() wieder zurückgesetzt.
         //  xOff: Ein Wert, der von allen X Koordinaten abgezogen wird
@@ -321,11 +321,11 @@ namespace Framework
         //  y: Die Y Koordinate des Pixels
         __declspec( dllexport ) int getPixel( int x, int y ) const;
         // Gibt die Größe des Bildes zurück
-        __declspec( dllexport ) const Punkt &getGröße() const;
+        __declspec( dllexport ) const Punkt &getSize() const;
         // Gibt die Breite des Bildes zurück
         __declspec( dllexport ) int getBreite() const;
         // Gibt die Höhe des Bildes zurück
-        __declspec( dllexport ) int getHöhe() const;
+        __declspec( dllexport ) int getHeight() const;
         // Gibt den aktuellen mindest Transparenz Wert zurück
         __declspec( dllexport ) unsigned char getAlpha() const;
         // Gibt die Koordinaten der linken oberen Ecke der aktuellen Zeichenfläche zurück

+ 78 - 72
Bildschirm.cpp

@@ -8,23 +8,25 @@
 #include "ToolTip.h"
 #include "MausEreignis.h"
 #include <iostream>
-#include <DirectXMath.h>
-#include <D3Dcompiler.h>
 #include "Datei.h"
-#include "DefaultShader.h"
-#include "comdef.h"
 #include "Zeichnung3D.h"
-#include "Shader.h"
-#include "Kam3D.h"
-#include "Render3D.h"
 #include "Mat3.h"
-#include "DXBuffer.h"
 #include "Model3D.h"
 #include "Textur.h"
 #include "TexturModel.h"
 #include "TexturList.h"
+#ifdef WIN32
+#include "Kam3D.h"
+#include "DefaultShader.h"
+#include <DirectXMath.h>
+#include <D3Dcompiler.h>
 #include <d3d11.h>
 #include <d3d9.h>
+#include "comdef.h"
+#include "DXBuffer.h"
+#include "Shader.h"
+#include "Render3D.h"
+#endif
 
 using namespace Framework;
 
@@ -35,7 +37,7 @@ Bildschirm::Bildschirm( WFenster *f )
     renderB( new Bild( 1 ) ),
     ref( 1 ),
     members( new ZeichnungArray() ),
-    füllFarbe( 0xFF000000 ),
+    fillColor( 0xFF000000 ),
     deckFarbe( 0 ),
     onTop( 0 ),
     renderOnTop( 0 ),
@@ -43,11 +45,11 @@ Bildschirm::Bildschirm( WFenster *f )
     vollbild( 0 ),
     rendering( 0 ),
     renderZeit( new ZeitMesser() ),
-    backBufferGröße( 0, 0 ),
+    backBufferSize( 0, 0 ),
     tips( new RCArray< ToolTip >() ),
     tipAnzahl( 0 ),
     testRend( 1 ),
-    füll( 1 ),
+    fill( 1 ),
     rend( 0 )
 {
     InitializeCriticalSection( &cs );
@@ -59,8 +61,10 @@ Bildschirm::~Bildschirm()
     lock();
     if( renderB )
         renderB->release();
+#ifdef Win32
     if( fenster )
         fenster->release();
+#endif
     delete members;
     tipAnzahl = 0;
     tips->release();
@@ -80,9 +84,9 @@ void Bildschirm::unlock()
     LeaveCriticalSection( &cs );
 }
 
-void Bildschirm::setFüll( bool f )
+void Bildschirm::setFill( bool f )
 {
-    füll = f;
+    fill = f;
 }
 
 void Bildschirm::setTestRend( bool tr ) // legt fest, ob vo rendern auf updates geprüft werden soll
@@ -136,9 +140,9 @@ void Bildschirm::removeMember( Zeichnung *obj ) // Entfernt ein Zeichnung
     unlock();
 }
 
-void Bildschirm::setFüllFarbe( int f ) // setzt die Fill Farbe
+void Bildschirm::setFillFarbe( int f ) // setzt die Fill Farbe
 {
-    füllFarbe = f;
+    fillColor = f;
     rend = 1;
 }
 
@@ -168,34 +172,36 @@ void Bildschirm::tick( double tickval )
     unlock();
 }
 
-void Bildschirm::setBackBufferGröße( int breite, int höhe ) // setzt die Größe des Backbuffers
+void Bildschirm::setBackBufferSize( int breite, int height ) // setzt die Größe des Backbuffers
 {
     lock();
-    backBufferGröße.x = breite;
-    backBufferGröße.y = höhe;
+    backBufferSize.x = breite;
+    backBufferSize.y = height;
     rend = 1;
     unlock();
 }
 
-void Bildschirm::setBackBufferGröße( Punkt &größe )
+void Bildschirm::setBackBufferSize( Punkt &size )
 {
     lock();
-    backBufferGröße = größe;
+    backBufferSize = size;
     rend = 1;
     unlock();
 }
 
 void Bildschirm::doMausEreignis( MausEreignis &me ) // sendet maus Ereignis
 {
-    int fBr = backBufferGröße.x;
-    int fHö = backBufferGröße.y;
-    if( fenster )
-    {
-        fBr = fenster->getKörperBreite();
-        fHö = fenster->getKörperHöhe();
-    }
-    me.mx = (int)( me.mx * backBufferGröße.x / (double)fBr + 0.5 );
-    me.my = (int)( me.my * backBufferGröße.y / (double)fHö + 0.5 );
+    int fBr = backBufferSize.x;
+    int fHi = backBufferSize.y;
+#ifdef WIN32
+	if( fenster )
+	{
+		fBr = fenster->getKörperBreite();
+		fHi = fenster->getKörperHöhe();
+	}
+#endif
+    me.mx = (int)( me.mx * backBufferSize.x / (double)fBr + 0.5 );
+    me.my = (int)( me.my * backBufferSize.y / (double)fHi + 0.5 );
     lock();
     if( !renderOnTop )
     {
@@ -240,7 +246,7 @@ bool Bildschirm::removeToolTip( ToolTip *zTip ) // entfernt ToolTip
         ToolTip *tmp = tips->z( i );
         if( tmp == zTip )
         {
-            tips->lösche( i );
+            tips->remove( i );
             --tipAnzahl;
             gefunden = 1;
             rend = 1;
@@ -267,9 +273,9 @@ ZeichnungArray *Bildschirm::getMembers() const // gibt die Zeichnunge zur
     return members;
 }
 
-int Bildschirm::getFüllFarbe() const // gibt die Füll Farbe zurück
+int Bildschirm::getFillFarbe() const // gibt die Füll Farbe zurück
 {
-    return füllFarbe;
+    return fillColor;
 }
 
 bool Bildschirm::istVolbild() const // gibt zurück, ob vollbild an ist
@@ -277,9 +283,9 @@ bool Bildschirm::istVolbild() const // gibt zur
     return vollbild;
 }
 
-const Punkt &Bildschirm::getBackBufferGröße() const // gibt die Größe des Backbuffers zurück
+const Punkt &Bildschirm::getBackBufferSize() const // gibt die Größe des Backbuffers zurück
 {
-    return backBufferGröße;
+    return backBufferSize;
 }
 
 void Bildschirm::warteAufRendern() const // wartet auf die render Funktion
@@ -310,7 +316,7 @@ Bildschirm *Bildschirm::release()
         delete this;
     return 0;
 }
-
+#ifdef WIN32
 int MonitorEnum( HMONITOR m, HDC dc, LPRECT r, LPARAM p )
 {
     Monitor *mon = new Monitor();
@@ -318,7 +324,7 @@ int MonitorEnum( HMONITOR m, HDC dc, LPRECT r, LPARAM p )
     mon->x = r->left;
     mon->y = r->top;
     mon->breite = r->right - r->left;
-    mon->höhe = r->bottom - r->top;
+    mon->height = r->bottom - r->top;
     ( ( Array< Monitor* >* )p )->add( mon );
     return 1;
 }
@@ -349,7 +355,6 @@ Monitor Framework::getMonitor( int id )
     delete monitore;
     return m;
 }
-
 // Bildschirm2D
 // Konstruktor 
 Bildschirm2D::Bildschirm2D( WFenster *fenster )
@@ -406,14 +411,14 @@ void Bildschirm2D::update() // aktualisiert directX
     d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
     d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
     d3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
-    if( !backBufferGröße.x || !backBufferGröße.y )
-        backBufferGröße = fenster->getKörperGröße();
-    d3dpp.BackBufferHeight = backBufferGröße.y;
-    d3dpp.BackBufferWidth = backBufferGröße.x;
+    if( !backBufferSize.x || !backBufferSize.y )
+        backBufferSize = fenster->getKörperGröße();
+    d3dpp.BackBufferHeight = backBufferSize.y;
+    d3dpp.BackBufferWidth = backBufferSize.x;
     if( renderB )
         renderB->release();
     renderB = new Bild( 1 );
-    renderB->neuBild( backBufferGröße.x, backBufferGröße.y, füllFarbe );
+    renderB->neuBild( backBufferSize.x, backBufferSize.y, fillColor );
 
     result = pDirect3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, fenster->getFensterHandle(),
                                       D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &d3dpp, &pDevice );
@@ -433,11 +438,11 @@ void Bildschirm2D::render() // Zeichnet das Bild
     {
         lock();
         renderZeit->messungStart();
-        if( füll )
-            renderB->setFarbe( füllFarbe );
+        if( fill )
+            renderB->setFarbe( fillColor );
         if( renderZeichnungen )
         {
-            if( renderOnTop && deckFarbe && ( deckFarbe & ( füllFarbe | 0xFF000000 ) ) == deckFarbe )
+            if( renderOnTop && deckFarbe && ( deckFarbe & ( fillColor | 0xFF000000 ) ) == deckFarbe )
             {
                 renderB->setAlpha( 255 - (unsigned char)( deckFarbe >> 24 ) );
                 members->render( *renderB ); // zeichnen nach zwischenbuffer
@@ -447,7 +452,7 @@ void Bildschirm2D::render() // Zeichnet das Bild
             {
                 members->render( *renderB ); // zeichnen nach zwischenbuffer
                 if( renderOnTop && deckFarbe )
-                    renderB->alphaRegion( 0, 0, renderB->getBreite(), renderB->getHöhe(), deckFarbe );
+                    renderB->alphaRegion( 0, 0, renderB->getBreite(), renderB->getHeight(), deckFarbe );
             }
             for( int i = 0; i < tipAnzahl; ++i )
                 tips->z( i )->render( *renderB );
@@ -458,13 +463,13 @@ void Bildschirm2D::render() // Zeichnet das Bild
         unlock();
         // Beginne Bild 
         HRESULT result;
-        if( !füllFarbe )
+        if( !fillColor )
             result = pDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 0 ), 0.0f, 0 );
         result = pBackBuffer->LockRect( backRect, 0, 0 );
         // kopieren zum Bildschrirm 
         int *bgBuff = tmp->getBuffer();
         int tmpBr = sizeof( D3DCOLOR )* tmp->getBreite();
-        for( int y = 0, pitch = 0, bry = 0; y < tmp->getHöhe(); ++y, pitch += backRect->Pitch, bry += tmp->getBreite() )
+        for( int y = 0, pitch = 0, bry = 0; y < tmp->getHeight(); ++y, pitch += backRect->Pitch, bry += tmp->getBreite() )
             memcpy( &( (BYTE *)backRect->pBits )[ pitch ], ( void* )&( bgBuff[ bry ] ), tmpBr );
         // Beende Bild 
         result = pBackBuffer->UnlockRect();
@@ -622,7 +627,7 @@ void Bildschirm3D::removeKamera( Kam3D *zObj ) // Entfernt ein Zeichnung
     {
         if( kameras->z( i ) == zObj )
         {
-            kameras->lösche( i );
+            kameras->remove( i );
             break;
         }
     }
@@ -653,10 +658,10 @@ void Bildschirm3D::update() // aktualisiert directX
     scd.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
     scd.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
     scd.Windowed = !vollbild;
-    if( !backBufferGröße.x || !backBufferGröße.y )
-        backBufferGröße = fenster ? fenster->getKörperGröße() : Punkt( 0, 0 );
-    scd.BufferDesc.Width = backBufferGröße.x;
-    scd.BufferDesc.Height = backBufferGröße.y;                 // windowed/full-screen mode
+    if( !backBufferSize.x || !backBufferSize.y )
+        backBufferSize = fenster ? fenster->getKörperGröße() : Punkt( 0, 0 );
+    scd.BufferDesc.Width = backBufferSize.x;
+    scd.BufferDesc.Height = backBufferSize.y;                 // windowed/full-screen mode
     scd.BufferDesc.RefreshRate.Denominator = 1;
     scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;       // use 32-bit color
                                                               // Discard the back buffer contents after presenting.
@@ -665,7 +670,7 @@ void Bildschirm3D::update() // aktualisiert directX
         renderB->release();
     renderB = new Bild( 1 );
     renderB->setAlpha3D( 1 );
-    renderB->neuBild( backBufferGröße.x, backBufferGröße.y, füllFarbe );
+    renderB->neuBild( backBufferSize.x, backBufferSize.y, fillColor );
 
     D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_11_0;
     D3D_FEATURE_LEVEL support = D3D_FEATURE_LEVEL_11_0;
@@ -698,8 +703,8 @@ void Bildschirm3D::update() // aktualisiert directX
     D3D11_TEXTURE2D_DESC depthBufferDesc;
     ZeroMemory( &depthBufferDesc, sizeof( depthBufferDesc ) );
     // Set up the description of the depth buffer.
-    depthBufferDesc.Width = backBufferGröße.x;
-    depthBufferDesc.Height = backBufferGröße.y;
+    depthBufferDesc.Width = backBufferSize.x;
+    depthBufferDesc.Height = backBufferSize.y;
     depthBufferDesc.MipLevels = 1;
     depthBufferDesc.ArraySize = 1;
     depthBufferDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
@@ -750,8 +755,8 @@ void Bildschirm3D::update() // aktualisiert directX
 
     vp = new D3D11_VIEWPORT();
     memset( vp, 0, sizeof( D3D11_VIEWPORT ) );
-    vp->Width = (float)backBufferGröße.x;
-    vp->Height = (float)backBufferGröße.y;
+    vp->Width = (float)backBufferSize.x;
+    vp->Height = (float)backBufferSize.y;
     vp->MinDepth = 0.0f;
     vp->MaxDepth = 1.0f;
     vp->TopLeftX = 0.0f;
@@ -852,7 +857,7 @@ void Bildschirm3D::update() // aktualisiert directX
     frameworkTextur->setBildZ( renderB->getThis() );
     texturRegister->addTextur( frameworkTextur->getThis(), "f_Render_Bild" );
 
-    texturModel->setGröße( backBufferGröße );
+    texturModel->setSize( backBufferSize );
     texturModel->setTextur( frameworkTextur->getId() );
 
     D3D11_BLEND_DESC blendState;
@@ -928,14 +933,14 @@ void Bildschirm3D::render() // Zeichnet das Bild
         renderZeit->messungStart();
         float color[ 4 ];
         // Setup the color to clear the buffer to.
-        color[ 0 ] = ( ( füllFarbe >> 16 ) & 0xFF ) / 255.f; // R
-        color[ 1 ] = ( ( füllFarbe >> 8 ) & 0xFF ) / 255.f; // G
-        color[ 2 ] = ( füllFarbe & 0xFF ) / 255.f; // B
-        color[ 3 ] = ( ( füllFarbe >> 24 ) & 0xFF ) / 255.f; // A
+        color[ 0 ] = ( ( fillColor >> 16 ) & 0xFF ) / 255.f; // R
+        color[ 1 ] = ( ( fillColor >> 8 ) & 0xFF ) / 255.f; // G
+        color[ 2 ] = ( fillColor & 0xFF ) / 255.f; // B
+        color[ 3 ] = ( ( fillColor >> 24 ) & 0xFF ) / 255.f; // A
         // Clear the back buffer.
         if( rend3D || !testRend || rend )
         {
-            if( füll )
+            if( fill )
             {
                 d3d11Context->ClearRenderTargetView( rtview, color );
                 // Clear the depth buffer.
@@ -956,11 +961,11 @@ void Bildschirm3D::render() // Zeichnet das Bild
 
         if( rend || !testRend )
         {
-            if( füll )
-                renderB->setFarbe( füllFarbe );
+            if( fill )
+                renderB->setFarbe( fillColor );
             if( renderZeichnungen )
             {
-                if( renderOnTop && deckFarbe && ( deckFarbe & ( füllFarbe | 0xFF000000 ) ) == deckFarbe )
+                if( renderOnTop && deckFarbe && ( deckFarbe & ( fillColor | 0xFF000000 ) ) == deckFarbe )
                 {
                     renderB->setAlpha( 255 - (unsigned char)( deckFarbe >> 24 ) );
                     members->render( *renderB ); // zeichnen nach zwischenbuffer
@@ -970,7 +975,7 @@ void Bildschirm3D::render() // Zeichnet das Bild
                 {
                     members->render( *renderB ); // zeichnen nach zwischenbuffer
                     if( renderOnTop && deckFarbe )
-                        renderB->alphaRegion( 0, 0, renderB->getBreite(), renderB->getHöhe(), deckFarbe );
+                        renderB->alphaRegion( 0, 0, renderB->getBreite(), renderB->getHeight(), deckFarbe );
                 }
                 for( int i = 0; i < tipAnzahl; ++i )
                     tips->z( i )->render( *renderB );
@@ -987,9 +992,9 @@ void Bildschirm3D::render() // Zeichnet das Bild
 
         d3d11Context->RSSetViewports( 1, vp );
 
-        float screenAspect = (float)backBufferGröße.x / (float)backBufferGröße.y;
-        Mat4< float > view = view.translation( Vec3< float >( 0.f, 0.f, backBufferGröße.y * 1.2075f ) );
-        renderObj->setKameraMatrix( view, view.projektion( DirectX::XM_PI / 4.0f, screenAspect, 0.1f, 10000.f ), Vec3< float >( 0.f, 0.f, backBufferGröße.y * 1.2075f ) );
+        float screenAspect = (float)backBufferSize.x / (float)backBufferSize.y;
+        Mat4< float > view = view.translation( Vec3< float >( 0.f, 0.f, backBufferSize.y * 1.2075f ) );
+        renderObj->setKameraMatrix( view, view.projektion( DirectX::XM_PI / 4.0f, screenAspect, 0.1f, 10000.f ), Vec3< float >( 0.f, 0.f, backBufferSize.y * 1.2075f ) );
         texturModel->render( renderObj );
 
         result = d3d11SpawChain->Present( 0, 0 );
@@ -1026,4 +1031,5 @@ Bildschirm *Bildschirm3D::release()
     if( !ref )
         delete this;
     return 0;
-}
+}
+#endif

+ 15 - 14
Bildschirm.h

@@ -51,7 +51,7 @@ namespace Framework
     // Eine Struktur, die Informationen über einen Monitor beinhaltet
     struct Monitor
     {
-        int x, y, breite, höhe; // Koordinaten des Monitors und die Auflösung
+        int x, y, breite, height; // Koordinaten des Monitors und die Auflösung
         bool existiert; // Speichert, ob der Monitor wirklich existiert
     };
 
@@ -63,7 +63,7 @@ namespace Framework
         Bild *renderB;
         int ref;
         ZeichnungArray *members;
-        int füllFarbe;
+        int fillColor;
         int deckFarbe;
         Zeichnung *onTop;
         bool renderOnTop;
@@ -71,12 +71,12 @@ namespace Framework
         bool vollbild;
         bool rendering;
         ZeitMesser *renderZeit;
-        Punkt backBufferGröße;
+        Punkt backBufferSize;
         CRITICAL_SECTION cs;
         RCArray< ToolTip > *tips;
         int tipAnzahl;
         bool testRend;
-        bool füll;
+        bool fill;
         bool rend;
 
     public:
@@ -84,7 +84,7 @@ namespace Framework
         //  fenster: Das Fenster, dessen Inhalt verwaltet werden soll
         __declspec( dllexport ) Bildschirm( WFenster *fenster );
         // Destruktor 
-        __declspec( dllexport ) ~Bildschirm();
+        __declspec( dllexport ) virtual ~Bildschirm();
         // Dies ist notwendig, falls mehrere Threads gleichzeitig den Bildschirm benutzen.
         // Wenn lock() von zwei threads aufgerufen wird, wartet der letzte so lange, bis der erste unlock() aufgerufen hat.
         __declspec( dllexport ) virtual void lock();
@@ -93,7 +93,7 @@ namespace Framework
         __declspec( dllexport ) virtual void unlock();
         // Legt fest, ob der Bildschirm nach jedem Bild neu mit einer Farbe ausgefüllt wird (Standartmäßig gesetzt)
         //  f: 1, falls das Bild vor dem Zeichnen zurückgesetzt werden soll
-        __declspec( dllexport ) virtual void setFüll( bool f );
+        __declspec( dllexport ) virtual void setFill( bool f );
         // Aktualisiert die Objekte, mit der die Grafikkarte verwaltet wird
         __declspec( dllexport ) virtual void update() = 0;
         // Legt fest, ob von dem Zeichnen überprüft wird, ob sich das Bild vom letzten unterscheidet (Standartmäßig gesetzt)
@@ -121,7 +121,7 @@ namespace Framework
         __declspec( dllexport ) virtual void render() = 0;
         // Setzt die Farbe, mit der das Bild for dem Zeichnen gefüllt wird, wenn setFüll( 1 ) gesetzt wurde
         //  f: Die Farbe im A8R8G8B8 Format
-        __declspec( dllexport ) virtual void setFüllFarbe( int f );
+        __declspec( dllexport ) virtual void setFillFarbe( int f );
         // Legt fest, ob das Bild im Vollbildmodus präsentiert werden soll. (Standartmäßig nicht gesetzt)
         //  fullscreen: 1, für Vollbildmodus
         __declspec( dllexport ) virtual void setVollbild( bool fullscreen );
@@ -131,11 +131,11 @@ namespace Framework
         __declspec( dllexport ) virtual void tick( double tickval );
         // Setzt die Auflösung des Bildes, das angezeigt wird. Es wird von der Grafikkarte automatisch skalliert, so das es das Fenster ausfüllt
         //  breite: Die Breite des Bildes in Pixeln
-        //  höhe: Die Höhe des Bildes in Pixeln
-        __declspec( dllexport ) virtual void setBackBufferGröße( int breite, int höhe );
+        //  height: Die Höhe des Bildes in Pixeln
+        __declspec( dllexport ) virtual void setBackBufferSize( int breite, int height );
         // Setzt die Auflösung des Bildes, das angezeigt wird. Es wird von der Grafikkarte automatisch skalliert, so das es das Fenster ausfüllt
-        //  größe: Die Breite und Höhe in Pixeln
-        __declspec( dllexport ) virtual void setBackBufferGröße( Punkt &größe );
+        //  size: Die Breite und Höhe in Pixeln
+        __declspec( dllexport ) virtual void setBackBufferSize( Punkt &size );
         // Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
         // Gibt das Ereignis automatisch an alle sich im Bild befindenden Zeichnungen weiter
         //  me: Das Ereignis
@@ -157,11 +157,11 @@ namespace Framework
         // Gibt ein Array von 2D GUI Zeichnungen zurück, die sich im Bild befinden
         __declspec( dllexport ) virtual ZeichnungArray *getMembers() const;
         // Gibt die Farbe im A8R8G8B8 Format zurück, mit der das Bild vor dem Zeichnen befüllt wird
-        __declspec( dllexport ) virtual int getFüllFarbe() const;
+        __declspec( dllexport ) virtual int getFillFarbe() const;
         // Gibt zurück, ob man sich im Vollbildmodus befindet
         __declspec( dllexport ) virtual bool istVolbild() const;
         // Gibt die Auflösung in Pixeln zurück, in der gezeichnet wird
-        __declspec( dllexport ) virtual const Punkt &getBackBufferGröße() const;
+        __declspec( dllexport ) virtual const Punkt &getBackBufferSize() const;
         // Wartet, bis das Zeichnen des aktuellen Bildes abgeschlossen ist
         __declspec( dllexport ) virtual void warteAufRendern() const;
         // Gibt die Zeit in Sekunden zurück, die benötigt wurde, um das letzte Bild zu zeichnen
@@ -173,7 +173,7 @@ namespace Framework
         //  Return: 0
         __declspec( dllexport ) virtual Bildschirm *release();
     };
-
+#ifdef WIN32
     // Diese Klasse verwaltet das Bild auf dem Bildschirm ohne 3D Elemente
     class Bildschirm2D : public Bildschirm
     {
@@ -260,6 +260,7 @@ namespace Framework
     // Findet die Psition und Auflösung eines Monitors heraus
     //  id: Die ID des Monitors. Falls der Monitor nicht gefunden wurde ist der existiert flag der zurückgegebenen Monitor Struktur 0
     __declspec( dllexport ) Monitor getMonitor( int id );
+#endif
 }
 
 #endif

+ 10 - 10
Cube.cpp

@@ -1,9 +1,9 @@
 #include "Cube.h"
-#include "DXBuffer.h"
 #include "Textur.h"
 #include "Globals.h"
 #include "Model3DList.h"
 #include "TexturList.h"
+#include "DXBuffer.h"
 
 using namespace Framework;
 
@@ -14,12 +14,12 @@ using namespace Framework;
 Cube::Cube( float size )
     : Model3D()
 {
-    if( m3dRegister->hatModel( Standart3DTypes::würfel ) )
-        model = m3dRegister->getModel( Standart3DTypes::würfel );
+    if( m3dRegister->hatModel( Standart3DTypes::cube ) )
+        model = m3dRegister->getModel( Standart3DTypes::cube );
     else
     {
         model = new Model3DData();
-        m3dRegister->addModel( model->getThis(), Standart3DTypes::würfel );
+        m3dRegister->addModel( model->getThis(), Standart3DTypes::cube );
         float stdSize = 100;
         float left, right, top, bottom;
         // Calculate the screen coordinates of the left side of the bitmap.
@@ -93,7 +93,7 @@ Cube::Cube( float size )
         Polygon3D *p = new Polygon3D();
         p->indexAnz = 6;
         p->indexList = new int[ p->indexAnz ];
-        p->indexBuffer->setLänge( p->indexAnz * 4 );
+        p->indexBuffer->setLength( p->indexAnz * 4 );
         p->indexBuffer->setData( p->indexList );
         p->indexList[ 0 ] = 0;
         p->indexList[ 1 ] = 3;
@@ -106,7 +106,7 @@ Cube::Cube( float size )
         p = new Polygon3D();
         p->indexAnz = 6;
         p->indexList = new int[ p->indexAnz ];
-        p->indexBuffer->setLänge( p->indexAnz * 4 );
+        p->indexBuffer->setLength( p->indexAnz * 4 );
         p->indexBuffer->setData( p->indexList );
         p->indexList[ 0 ] = 4;
         p->indexList[ 1 ] = 6;
@@ -119,7 +119,7 @@ Cube::Cube( float size )
         p = new Polygon3D();
         p->indexAnz = 6;
         p->indexList = new int[ p->indexAnz ];
-        p->indexBuffer->setLänge( p->indexAnz * 4 );
+        p->indexBuffer->setLength( p->indexAnz * 4 );
         p->indexBuffer->setData( p->indexList );
         p->indexList[ 0 ] = 1 + 8;
         p->indexList[ 1 ] = 7 + 8;
@@ -132,7 +132,7 @@ Cube::Cube( float size )
         p = new Polygon3D();
         p->indexAnz = 6;
         p->indexList = new int[ p->indexAnz ];
-        p->indexBuffer->setLänge( p->indexAnz * 4 );
+        p->indexBuffer->setLength( p->indexAnz * 4 );
         p->indexBuffer->setData( p->indexList );
         p->indexList[ 0 ] = 0 + 8;
         p->indexList[ 1 ] = 2 + 8;
@@ -145,7 +145,7 @@ Cube::Cube( float size )
         p = new Polygon3D();
         p->indexAnz = 6;
         p->indexList = new int[ p->indexAnz ];
-        p->indexBuffer->setLänge( p->indexAnz * 4 );
+        p->indexBuffer->setLength( p->indexAnz * 4 );
         p->indexBuffer->setData( p->indexList );
         p->indexList[ 0 ] = 4 + 16;
         p->indexList[ 1 ] = 1 + 16;
@@ -158,7 +158,7 @@ Cube::Cube( float size )
         p = new Polygon3D();
         p->indexAnz = 6;
         p->indexList = new int[ p->indexAnz ];
-        p->indexBuffer->setLänge( p->indexAnz * 4 );
+        p->indexBuffer->setLength( p->indexAnz * 4 );
         p->indexBuffer->setData( p->indexList );
         p->indexList[ 0 ] = 6 + 16;
         p->indexList[ 1 ] = 2 + 16;

+ 48 - 24
DXBuffer.cpp

@@ -1,7 +1,9 @@
 #include "DXBuffer.h"
-#include "Render3D.h"
 #include <iostream>
+#ifdef WIN32
+#include "Render3D.h"
 #include <d3d11.h>
+#endif
 
 using namespace Framework;
 
@@ -10,37 +12,41 @@ using namespace Framework;
 // Konstruktor
 //  bind: Der verwendungszweck des Buffers. Beispiel: D3D11_BIND_INDEX_BUFFER, D3D11_BIND_VERTEX_BUFFER.
 //  eLän: Länge eines einzelnen Elements in Bytes
-DXBuffer::DXBuffer( D3D11_BIND_FLAG bind, int eLän )
+DXBuffer::DXBuffer( D3D11_BIND_FLAG bind, int eLen )
 {
+#ifdef WIN32
     buffer = 0;
     bf = bind;
+#endif
     data = 0;
-    geändert = 0;
-    län = 0;
-    altLän = 0;
-    elLän = eLän;
+    changed = 0;
+    len = 0;
+    altLen = 0;
+    elLem = eLen;
     ref = 1;
 }
 
 // Destruktor
 DXBuffer::~DXBuffer()
 {
+#ifdef WIN32
     if( buffer )
         buffer->Release();
+#endif
 }
 
 // Setzt den geändert fläg, so das beim nächsten auruf von 'kopieren' die daten neu kopiert werden
-void DXBuffer::setGeändert()
+void DXBuffer::setChanged()
 {
-    geändert = 1;
+    changed = 1;
 }
 
 // Ändert die länge des Buffers beim nächsten aufruf von 'kopieren'
 //  län: Die Länge in Bytes
-void DXBuffer::setLänge( int län )
+void DXBuffer::setLength( int len )
 {
-    this->län = län;
-    geändert = 1;
+    this->len = len;
+    changed = 1;
 }
 
 // Legt fest, was beim nächsten aufruf von 'kopieren' kopiert wird
@@ -48,16 +54,17 @@ void DXBuffer::setL
 void DXBuffer::setData( void *data )
 {
     this->data = data;
-    geändert = 1;
+    changed = 1;
 }
 
 // Kopiert die Daten in den Buffer, fals sie sich verändert haben
 //  zRObj: Das Objekt, mit dem die Grafikkarte angesprochen wird
 void DXBuffer::copieren( Render3D *zRObj )
 {
-    if( !geändert || !län || !data )
+#ifdef WIN32
+    if( !changed || !len || !data )
         return;
-    if( län != altLän )
+    if( len != altLen )
     {
         if( buffer )
             buffer->Release();
@@ -68,7 +75,7 @@ void DXBuffer::copieren( Render3D *zRObj )
         D3D11_BUFFER_DESC desk;
         memset( &desk, 0, sizeof( desk ) );
         desk.Usage = D3D11_USAGE_DYNAMIC;
-        desk.ByteWidth = län;
+        desk.ByteWidth = len;
         desk.BindFlags = bf;
         desk.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
 
@@ -77,34 +84,35 @@ void DXBuffer::copieren( Render3D *zRObj )
         ini.pSysMem = data;
 
         zRObj->zDevice()->CreateBuffer( &desk, &ini, &buffer );
-        altLän = län;
+        altLen = len;
     }
-    else if( geändert )
+    else if( changed )
     {
         D3D11_MAPPED_SUBRESOURCE map;
         zRObj->zContext()->Map( buffer, 0, D3D11_MAP::D3D11_MAP_WRITE_DISCARD, 0, &map );
-        memcpy( map.pData, data, län );
+        memcpy( map.pData, data, len );
         zRObj->zContext()->Unmap( buffer, 0 );
-        geändert = 0;
+        changed = 0;
     }
+#endif
 }
 
 // Gibt die Länge eines Elementes in bytes zurück
-int DXBuffer::getElementLänge() const
+int DXBuffer::getElementLength() const
 {
-    return elLän;
+    return elLem;
 }
-
+#ifdef WIN32
 // Gibt den Buffer zurück
 ID3D11Buffer *DXBuffer::zBuffer() const
 {
     return buffer;
 }
-
+#endif
 // Gibt die Anzahl der Elemente im Buffer zurück
 int DXBuffer::getElementAnzahl() const
 {
-    return altLän / elLän;
+    return altLen / elLem;
 }
 
 // Erhöht den Reference Counting Zähler.
@@ -131,7 +139,15 @@ DXBuffer *DXBuffer::release()
 // Konstruktor
 // eSize: Die Länge eines Elementes in Bytes
 DXVertexBuffer::DXVertexBuffer( int eSize )
+#ifdef WIN32
     : DXBuffer( D3D11_BIND_VERTEX_BUFFER, eSize )
+#else
+	: DXBuffer( 0, eSize )
+#endif
+{}
+
+// Destruktor
+DXVertexBuffer::~DXVertexBuffer()
 {}
 
 // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
@@ -150,7 +166,15 @@ DXBuffer *DXVertexBuffer::release()
 // Konstruktor
 // eSize: Die Länge eines Elementes in Bytes
 DXIndexBuffer::DXIndexBuffer( int eSize )
+#ifdef WIN32
     : DXBuffer( D3D11_BIND_INDEX_BUFFER, eSize )
+#else
+: DXBuffer( 0, eSize )
+#endif
+{}
+
+// Destruktor
+DXIndexBuffer::~DXIndexBuffer()
 {}
 
 // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.

+ 23 - 11
DXBuffer.h

@@ -2,8 +2,12 @@
 
 #include "Betriebssystem.h"
 
+#ifdef WIN32
 struct ID3D11Buffer;
 enum D3D11_BIND_FLAG;
+#else
+typedef int D3D11_BIND_FLAG;
+#endif
 
 namespace Framework
 {
@@ -13,13 +17,15 @@ namespace Framework
     class DXBuffer
     {
     private:
+#ifdef WIN32
         ID3D11Buffer *buffer;
         D3D11_BIND_FLAG bf;
+#endif
         void *data;
-        bool geändert;
-        int län;
-        int altLän;
-        int elLän;
+        bool changed;
+        int len;
+        int altLen;
+        int elLem;
 
     protected:
         int ref;
@@ -27,15 +33,15 @@ namespace Framework
     public:
         // Konstruktor
         //  bind: Der verwendungszweck des Buffers. Beispiel: D3D11_BIND_INDEX_BUFFER, D3D11_BIND_VERTEX_BUFFER.
-        //  eLän: Länge eines einzelnen Elements in Bytes
-        __declspec( dllexport ) DXBuffer( D3D11_BIND_FLAG bind, int eLän );
+        //  eLen: Länge eines einzelnen Elements in Bytes
+        __declspec( dllexport ) DXBuffer( D3D11_BIND_FLAG bind, int eLen );
         // Destruktor
-        __declspec( dllexport ) ~DXBuffer();
+        __declspec( dllexport ) virtual ~DXBuffer();
         // Setzt den geändert fläg, so das beim nächsten auruf von 'kopieren' die daten neu kopiert werden
-        __declspec( dllexport ) void setGeändert();
+        __declspec( dllexport ) void setChanged();
         // Ändert die länge des Buffers beim nächsten aufruf von 'kopieren'
-        //  län: Die Länge in Bytes
-        __declspec( dllexport ) void setLänge( int län );
+        //  len: Die Länge in Bytes
+        __declspec( dllexport ) void setLength( int len );
         // Legt fest, was beim nächsten aufruf von 'kopieren' kopiert wird
         //  data: Ein zeiger auf die Daten
         __declspec( dllexport ) void setData( void *data );
@@ -43,9 +49,11 @@ namespace Framework
         //  zRObj: Das Objekt, mit dem die Grafikkarte angesprochen wird
         __declspec( dllexport ) void copieren( Render3D *zRObj );
         // Gibt die Länge eines Elementes in bytes zurück
-        __declspec( dllexport ) int getElementLänge() const;
+        __declspec( dllexport ) int getElementLength() const;
+#ifdef WIN32
         // Gibt den Buffer zurück
         __declspec( dllexport ) ID3D11Buffer *zBuffer() const;
+#endif
         // Gibt die Anzahl der Elemente im Buffer zurück
         __declspec( dllexport ) int getElementAnzahl() const;
         // Erhöht den Reference Counting Zähler.
@@ -63,6 +71,8 @@ namespace Framework
         // Konstruktor
         // eSize: Die Länge eines Elementes in Bytes
         __declspec( dllexport ) DXVertexBuffer( int eSize );
+		// Destruktor
+		__declspec( dllexport ) virtual ~DXVertexBuffer();
         // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
         //  return: 0.
         __declspec( dllexport ) virtual DXBuffer *release();
@@ -75,6 +85,8 @@ namespace Framework
         // Konstruktor
         // eSize: Die Länge eines Elementes in Bytes
         __declspec( dllexport ) DXIndexBuffer( int eSize );
+		// Destruktor
+		__declspec( dllexport ) virtual ~DXIndexBuffer();
         // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
         //  return: 0.
         __declspec( dllexport ) virtual DXBuffer *release();

+ 64 - 64
Datei.cpp

@@ -1,7 +1,7 @@
 #include "Datei.h"
 #include "Text.h"
 #include "Zeit.h"
-#include "Schluessel.h"
+#include "Key.h"
 #ifdef WIN32
 #include <direct.h>
 #include <Shlwapi.h>
@@ -13,7 +13,7 @@
 #endif
 
 using namespace Framework;
-using namespace Verschlüsselung;
+using namespace Encryption;
 
 // Inhalt der Datei Klasse aus Datei.h
 // Konstruktor 
@@ -44,7 +44,7 @@ Datei::~Datei()
 void Datei::setDatei( const char *pfad ) // setzt die Datei
 {
     if( istOffen() )
-        schließen();
+        close();
     if( !this->pfad )
         this->pfad = new Text();
     this->pfad->setText( pfad );
@@ -54,7 +54,7 @@ void Datei::setDatei( const char *pfad ) // setzt die Datei
 void Datei::setDatei( Text *pfad )
 {
     if( istOffen() )
-        schließen();
+        close();
     if( !this->pfad )
         this->pfad = new Text();
     this->pfad->setText( pfad );
@@ -89,11 +89,11 @@ bool Datei::umbenennen( Text *pfad )
     return 0;
 }
 
-bool Datei::löschen() // löscht die Datei
+bool Datei::remove() // löscht die Datei
 {
     if( !pfad )
         return 0;
-    return DateiLöschen( pfad->getThis() );
+    return DateiRemove( pfad->getThis() );
 }
 
 bool Datei::erstellen() // erstellt die Datei
@@ -103,7 +103,7 @@ bool Datei::erstellen() // erstellt die Datei
     return DateiPfadErstellen( pfad->getThis() );
 }
 
-bool Datei::öffnen( int style ) // öffnet die Datei
+bool Datei::open( int style ) // öffnet die Datei
 {
     if( !pfad )
         return 0;
@@ -162,7 +162,7 @@ void Datei::setSPosition( __int64 pos, bool ende ) // setzt die Schreibeposition
     tmpSBPos = -1;
 }
 
-void Datei::schreibe( char *bytes, int län ) // schreibt bytes in datei
+void Datei::schreibe( char *bytes, int len ) // schreibt bytes in datei
 {
     if( !pfad || !stream )
         return;
@@ -175,28 +175,28 @@ void Datei::schreibe( char *bytes, int l
 	if( key )
 	{
 		key->setPos( getSPosition() );
-		Bytes *n = new Bytes( bytes, län );
+		Bytes *n = new Bytes( bytes, len );
 		key->codieren( n->getThis() );
-		stream->write( n->getBytes(), län );
+		stream->write( n->getBytes(), len );
 		n->release();
 	}
 	else
-		stream->write( bytes, län );
+		stream->write( bytes, len );
 }
 
-void Datei::lese( char *bytes, int län ) // ließt bytes aus datei
+void Datei::lese( char *bytes, int len ) // ließt bytes aus datei
 {
     if( !pfad )
         return;
 	if( stream )
 	{
-		int tmp = getLPosition();
-		stream->read( bytes, län );
+		__int64 tmp = getLPosition();
+		stream->read( bytes, len );
 		if( key )
 		{
 			key->setPos( tmp );
 			Bytes *n = new Bytes();
-			n->setBytesZ( bytes, län );
+			n->setBytesZ( bytes, len );
 			key->decodieren( n );
 		}
 	}
@@ -211,10 +211,10 @@ Text *Datei::leseZeile() // lie
     if( istEnde() )
         return 0;
     Text *ret = new Text( "" );
-    __int64 län = getGröße();
-    for( char c = 0; c != '\n' && stream->tellg() < län; )
+    __int64 len = getSize();
+    for( char c = 0; c != '\n' && stream->tellg() < len; )
     {
-		int tmp = getLPosition();
+		__int64 tmp = getLPosition();
         stream->read( &c, 1 );
 		if( key )
 		{
@@ -224,14 +224,14 @@ Text *Datei::leseZeile() // lie
 			key->decodieren( n );
 		}
         if( c )
-            ret->anhängen( (const char*)&c, 1 );
+            ret->append( (const char*)&c, 1 );
     }
     tmpSBPos = 7;
     tmpSBPos = -1;
     return ret;
 }
 
-void Datei::schließen() // schließt die Datei
+void Datei::close() // schließt die Datei
 {
     if( !pfad || !stream )
         return;
@@ -310,7 +310,7 @@ bool Datei::getNextBit( bool &bit ) // Datei Bitweise auslesen
     if( tmpLBPos == 7 )
     {
         tmpLBPos = -1;
-		int tmp = getLPosition();
+		__int64 tmp = getLPosition();
         stream->read( &tmpLByte, 1 );
 		if( key )
 		{
@@ -330,7 +330,7 @@ bool Datei::setNextBit( bool bit ) // Datei Bitweise speichern
     if( !pfad || !stream )
         return 0;
     tmpSBPos++;
-    tmpSByte |= ( (char)bit << ( 7 - tmpSBPos ) ) & ( 1 << ( 7 - tmpSBPos ) );
+    tmpSByte |= (char)( ( (char)bit << ( 7 - tmpSBPos ) ) & ( 1 << ( 7 - tmpSBPos ) ) );
     if( tmpSBPos == 7 )
     {
         tmpSBPos = -1;
@@ -350,7 +350,7 @@ bool Datei::setNextBit( bool bit ) // Datei Bitweise speichern
 }
 
 // Setzt den Schlüssel für die Datei
-void Datei::setSchlüssel( char *s, int l )
+void Datei::setKey( char *s, int l )
 {
 	if( l == 0 )
 	{
@@ -358,9 +358,9 @@ void Datei::setSchl
 		return;
 	}
 	if( key )
-		key->setSchlüssel( s, l );
+		key->setKey( s, l );
 	else
-		key = new Schlüssel( s, l );
+		key = new Key( s, l );
 }
 
 // constant 
@@ -392,10 +392,10 @@ int Datei::getUnterdateiAnzahl() const // gibt die Anzahl der unterdateien an
     WIN32_FIND_DATA wfd;
     Text stxt = pfad->getText();
     stxt.ersetzen( '/', '\\' );
-    if( stxt.positionVon( '\\' ) == stxt.getLänge() - 1 )
-        stxt.anhängen( "*" );
+    if( stxt.positionVon( '\\' ) == stxt.getLength() - 1 )
+        stxt.append( "*" );
     else
-        stxt.anhängen( "\\*" );
+        stxt.append( "\\*" );
     fHandle = FindFirstFile( stxt.getText(), &wfd );
     FindNextFile( fHandle, &wfd );
     while( FindNextFile( fHandle, &wfd ) )
@@ -410,8 +410,8 @@ int Datei::getUnterdateiAnzahl() const // gibt die Anzahl der unterdateien an
     int ret = 0;
     Text stxt = pfad->getText();
     stxt.ersetzen( '\\', '/' );
-    if( stxt.positionVon( '/' ) == stxt.getLaenge() - 1 )
-        stxt.loeschen( stxt.getLaenge() - 1 );
+    if( stxt.positionVon( '/' ) == stxt.getLength() - 1 )
+        stxt.remove( stxt.getLength() - 1 );
     DIR *hdir;
     hdir = opendir( stxt.getText() );
     for( dirent *entry = readdir( hdir ); entry; entry = readdir( hdir ) )
@@ -435,10 +435,10 @@ RCArray< Text > *Datei::getDateiListe() const // gibt eine Liste mit unterdateie
     WIN32_FIND_DATA wfd;
     Text stxt = pfad->getText();
     stxt.ersetzen( '/', '\\' );
-    if( stxt.positionVon( '\\' ) == stxt.getLänge() - 1 )
-        stxt.anhängen( "*" );
+    if( stxt.positionVon( '\\' ) == stxt.getLength() - 1 )
+        stxt.append( "*" );
     else
-        stxt.anhängen( "\\*" );
+        stxt.append( "\\*" );
     fHandle = FindFirstFile( stxt.getText(), &wfd );
     FindNextFile( fHandle, &wfd );
     RCArray< Text > *ret = new RCArray< Text >();
@@ -458,8 +458,8 @@ RCArray< Text > *Datei::getDateiListe() const // gibt eine Liste mit unterdateie
         return 0;
     Text stxt = pfad->getText();
     stxt.ersetzen( '\\', '/' );
-    if( stxt.positionVon( '/' ) == stxt.getLaenge() - 1 )
-        stxt.loeschen( stxt.getLaenge() - 1 );
+    if( stxt.positionVon( '/' ) == stxt.getLength() - 1 )
+        stxt.remove( stxt.getLength() - 1 );
     DIR *hdir;
     hdir = opendir( stxt.getText() );
     if( hdir )
@@ -481,7 +481,7 @@ RCArray< Text > *Datei::getDateiListe() const // gibt eine Liste mit unterdateie
 #endif
 }
 
-__int64 Datei::getGröße() const // gibt die Größe der Datei zurück
+__int64 Datei::getSize() const // gibt die Größe der Datei zurück
 {
     if( !pfad )
         return 0;
@@ -497,20 +497,20 @@ __int64 Datei::getGr
         stream->seekg( tmp, std::ios::beg );
         stream->close();
         delete stream;
-        __int64 *größe = (__int64*)&gr;
-        *größe = ret;
+        __int64 *size = (__int64*)&gr;
+        *size = ret;
         return ret;
     }
     __int64 tmp = stream->tellg();
     stream->seekg( 0, std::ios::end );
     __int64 ret = stream->tellg();
     stream->seekg( tmp, std::ios::beg );
-    __int64 *größe = (__int64*)&gr;
-    *größe = ret;
+    __int64 *size = (__int64*)&gr;
+    *size = ret;
     return ret;
 }
 
-Zeit *Datei::getLetzteÄnderung() const // gibt das Datum der letzten Änderung
+Zeit *Datei::getLastChange() const // gibt das Datum der letzten Änderung
 {
     if( !pfad )
         return 0;
@@ -568,7 +568,7 @@ bool Datei::istEnde() const // pr
 {
     if( !stream || stream->tellg() < 0 )
         return 1;
-    __int64 i = getGröße();
+    __int64 i = getSize();
     return stream->tellg() >= i;
 }
 
@@ -604,7 +604,7 @@ void Framework::GetFreePfad( Text *zPfad ) // Sucht einen unbenutzten Dateinamen
     for( int i = 0; DateiExistiert( txt ); i++ )
     {
         txt = zPfad->getText();
-        txt.anhängen( i );
+        txt.append( i );
     }
     zPfad->setText( txt );
 }
@@ -616,9 +616,9 @@ bool Framework::DateiPfadErstellen( Text *pfad ) // Erstellt eine Datei in dem P
     return ret;
 }
 
-bool Framework::DateiLöschen( Text *pfad ) // Löscht die angegebene Datei
+bool Framework::DateiRemove( Text *pfad ) // Löscht die angegebene Datei
 {
-    bool ret = DateiLöschen( pfad->getText() );
+    bool ret = DateiRemove( pfad->getText() );
     pfad->release();
     return ret;
 }
@@ -655,7 +655,7 @@ bool Framework::DateiPfadErstellen( const char *pfad ) // Erstellt eine Datei in
     for( int i = 0; i < pf.anzahlVon( "\\" ); ++i ) // Jeden ordner erstellen wenn er nicht existiert
     {
         Text *t = pf.getTeilText( 0, pf.positionVon( "\\", i ) );
-        if( !t || !t->getLänge() )
+        if( !t || !t->getLength() )
         {
             if( t )
                 t->release();
@@ -665,7 +665,7 @@ bool Framework::DateiPfadErstellen( const char *pfad ) // Erstellt eine Datei in
 #pragma warning(suppress: 6031)
             _mkdir( t->getText() );
         t->release();
-        if( pf.positionVon( "\\", i ) == pf.getLänge() - 1 )
+        if( pf.positionVon( "\\", i ) == pf.getLength() - 1 )
             erst = 0;
     }
 #else
@@ -673,7 +673,7 @@ bool Framework::DateiPfadErstellen( const char *pfad ) // Erstellt eine Datei in
     for( int i = 0; i < pf.anzahlVon( "/" ); ++i ) // Jeden ordner erstellen wenn er nicht existiert
     {
         Text *t = pf.getTeilText( 0, pf.positionVon( "/", i ) );
-        if( !t || !t->getLänge() )
+        if( !t || !t->getLength() )
         {
             if( t )
                 t->release();
@@ -682,7 +682,7 @@ bool Framework::DateiPfadErstellen( const char *pfad ) // Erstellt eine Datei in
         if( !DateiExistiert( t->getThis() ) )
             mkdir( t->getText(), 0777 );
         t->release();
-        if( pf.positionVon( "\\", i ) == pf.getLänge() - 1 )
+        if( pf.positionVon( "\\", i ) == pf.getLength() - 1 )
             erst = 0;
     }
 #endif
@@ -694,7 +694,7 @@ bool Framework::DateiPfadErstellen( const char *pfad ) // Erstellt eine Datei in
     return DateiExistiert( pf );
 }
 
-bool Framework::DateiLöschen( const char *pfad ) // Löscht die angegebene Datei
+bool Framework::DateiRemove( const char *pfad ) // Löscht die angegebene Datei
 {
     Text pfa = pfad;
 #ifdef WIN32
@@ -713,13 +713,13 @@ bool Framework::DateiL
         for( int i = 0; i < anz; ++i )
         {
             Text *pf = new Text( pfa.getText() );
-            if( pf->getText()[ pf->getLänge() - 1 ] != '/' )
-                pf->anhängen( "/" );
-            pf->anhängen( liste->get( i ) );
+            if( pf->getText()[ pf->getLength() - 1 ] != '/' )
+                pf->append( "/" );
+            pf->append( liste->get( i ) );
             if( ret )
-                ret = DateiLöschen( pf );
+                ret = DateiRemove( pf );
             else
-                DateiLöschen( pf );
+                DateiRemove( pf );
         }
         liste->release();
         dat->release();
@@ -745,13 +745,13 @@ bool Framework::DateiL
         for( int i = 0; i < anz; ++i )
         {
             Text *pf = new Text( pfa.getText() );
-            if( pf->getText()[ pf->getLaenge() - 1 ] != '/' )
-                pf->anhaengen( "/" );
-            pf->anhaengen( liste->get( i ) );
+            if( pf->getText()[ pf->getLength() - 1 ] != '/' )
+                pf->append( "/" );
+            pf->append( liste->get( i ) );
             if( ret )
-                ret = DateiLoeschen( pf );
+                ret = DateiRemove( pf );
             else
-                DateiLoeschen( pf );
+				DateiRemove( pf );
         }
         liste->release();
         dat->release();
@@ -777,7 +777,7 @@ bool Framework::DateiUmbenennen( const char *pfad_alt, const char *pfad_neu ) //
                 Text tmp = pfad_neu;
                 tmp += "/a";
                 DateiPfadErstellen( tmp );
-                DateiLöschen( tmp );
+                DateiRemove( tmp );
             }
             Datei d;
             d.setDatei( pfad_alt );
@@ -793,7 +793,7 @@ bool Framework::DateiUmbenennen( const char *pfad_alt, const char *pfad_neu ) //
                 pf_a += list->z( i )->getText();
                 ret |= DateiUmbenennen( pf_a, pf );
             }
-            d.löschen();
+            d.remove();
         }
         else
         {
@@ -815,7 +815,7 @@ bool Framework::DateiUmbenennen( const char *pfad_alt, const char *pfad_neu ) //
                 Text tmp = pfad_neu;
                 tmp += "/a";
                 DateiPfadErstellen( tmp );
-                DateiLöschen( tmp );
+				DateiRemove( tmp );
             }
             Datei d;
             d.setDatei( pfad_alt );
@@ -831,7 +831,7 @@ bool Framework::DateiUmbenennen( const char *pfad_alt, const char *pfad_neu ) //
                 pf_a += list->z( i )->getText();
                 ret |= DateiUmbenennen( pf_a, pf );
             }
-            d.löschen();
+            d.remove();
         }
         else
         {

+ 15 - 15
Datei.h

@@ -8,9 +8,9 @@ namespace Framework
 {
     class Text; // Text.h
     class Zeit; // Zeit.h
-	namespace Verschlüsselung
+	namespace Encryption
 	{
-		class Schlüssel; // Schlüssel.h
+		class Key; // Schlüssel.h
 	}
     class Datei; // aus dieser Datei
 
@@ -34,7 +34,7 @@ namespace Framework
         char tmpLBPos;
         char tmpSByte;
         char tmpSBPos;
-		Verschlüsselung::Schlüssel *key;
+		Encryption::Key *key;
 
     public:
         // Konstruktor 
@@ -57,14 +57,14 @@ namespace Framework
         __declspec( dllexport ) bool umbenennen( Text *pfad );
         // Löscht die Datei
         //  return: 1, wenn das löschen erfolgreich war. 0 sonst
-        __declspec( dllexport ) bool löschen();
+        __declspec( dllexport ) bool remove();
         // Erstellt die Datei neu. Wenn im Pfad Ordner vorkommen, die nicht existieren, so werden sie erstellt
         //  return 1: wenn das erstellen erfolgreich war. 0, sonst
         __declspec( dllexport ) bool erstellen();
         // Öffnet die Datei
         //  style: Legt fest, ob die Datei zum lesen und/oder schreiben geöffnet wird. Alle Elemente aus Datei::Style:: sin möglich
         //  return 1: wenn die datei erfolgreich geöffnet werden konnte. 0 sonnst
-        __declspec( dllexport ) bool öffnen( int style );
+        __declspec( dllexport ) bool open( int style );
         // Setzt die Position des Bytes, das als nächstes gelesen werden soll
         //  pos: Der Index des Bytes
         //  ende: 1, wenn der Index vom ende der Datei zählt. 0, wenn der Index vom Beginn der Datei zählt
@@ -75,19 +75,19 @@ namespace Framework
         __declspec( dllexport ) void setSPosition( __int64 pos, bool ende );
         // Schreibt in die Datei
         //  bytes: Ein Array von bytes, die geschrieben werden sollen.
-        //  län: Wie viele Bytes in die Datei geschrieben werden sollen
-        __declspec( dllexport ) void schreibe( char *bytes, int län );
+        //  len: Wie viele Bytes in die Datei geschrieben werden sollen
+        __declspec( dllexport ) void schreibe( char *bytes, int len );
         // Ließt aus der Datei
         //  bytes: Ein Array, der mit Bytes aus der Datei gefüllt werden soll
-        //  län: Wie viele Bytes aus der Datei gelesen werden sollen
-        __declspec( dllexport ) void lese( char *bytes, int län );
+        //  len: Wie viele Bytes aus der Datei gelesen werden sollen
+        __declspec( dllexport ) void lese( char *bytes, int len );
         // Ließt die nächste zeile der Datei ein
         //  return: Die gelesene Zeile als Text mit zeilenumbruch
         __declspec( dllexport ) Text *leseZeile();
         // Schließt die datei
-        __declspec( dllexport ) void schließen();
+        __declspec( dllexport ) void close();
 		// Setzt den Schlüssel für die Datei
-		__declspec( dllexport ) void setSchlüssel( char *s, int l );
+		__declspec( dllexport ) void setKey( char *s, int l );
 #ifdef WIN32
         // Setzt den Zeitpunkt der letzten Änderung der Datei (nur für Windows)
         //  zeit: den Zeitpunkt der letzten Änderung
@@ -116,10 +116,10 @@ namespace Framework
         __declspec( dllexport ) RCArray< Text > *getDateiListe() const;
         // Gibt die Größe der Datei zurück
         // return -1, falls die Datei ein Verzeichnis ist oder ein Fehler auftrat. Sonst die größe der Datei
-        __declspec( dllexport ) __int64 getGröße() const;
+        __declspec( dllexport ) __int64 getSize() const;
         // Gibt den Zeitpunkt der letzten änderung zurück
         //  return: 0, falls ein Fehler aufgetreten ist. Der Zeitpunkt der letzten Änderung sonst
-        __declspec( dllexport ) Zeit *getLetzteÄnderung() const;
+        __declspec( dllexport ) Zeit *getLastChange() const;
         // Prüft, ob die Datei existiert
         //  return: 1, falls die Datei existiert. 0 sonnst
         __declspec( dllexport ) bool existiert() const;
@@ -157,7 +157,7 @@ namespace Framework
     // Löscht die angegebene Datei
     //  pfad: Der Pfad zur Datei
     //  return: 1, falls die Datei gelöscht wurde
-    __declspec( dllexport ) bool DateiLöschen( Text *pfad );
+    __declspec( dllexport ) bool DateiRemove( Text *pfad );
     // Benennt eine Datei um oder verschiebt sie
     //  pfad_alt: Der Pfad zur Datei, die umbenannt werden soll.
     //  pfad_neu: Der neue Pfad zur Datei. Wenn sich nur der Name ändert, wird sie nur umbenannt
@@ -178,7 +178,7 @@ namespace Framework
     // Löscht die angegebene Datei
     //  pfad: Der Pfad zur Datei
     //  return: 1, falls die Datei gelöscht wurde
-    __declspec( dllexport ) bool DateiLöschen( const char *pfad );
+    __declspec( dllexport ) bool DateiRemove( const char *pfad );
     // Benennt eine Datei um oder verschiebt sie
     //  pfad_alt: Der Pfad zur Datei, die umbenannt werden soll.
     //  pfad_neu: Der neue Pfad zur Datei. Wenn sich nur der Name ändert, wird sie nur umbenannt

+ 16 - 16
DateiDialog.cpp

@@ -29,7 +29,7 @@ DateiDialog::~DateiDialog()
 }
 
 // nicht constant
-void DateiDialog::löscheDateiTypen()
+void DateiDialog::removeDateiTypen()
 {
     typeName->leeren();
     type->leeren();
@@ -93,12 +93,12 @@ Text *DateiDialog::anzeigen( bool open ) const
                     c_rgSaveTypes = new COMDLG_FILTERSPEC[ anz ];
                     for( int i = 0; i < anz; i++ )
                     {
-                        wchar_t *n = new wchar_t[ typeName->z( i )->getLänge() + 1 ];
+                        wchar_t *n = new wchar_t[ typeName->z( i )->getLength() + 1 ];
 #pragma warning( disable : 4996 )
-                        mbstowcs( n, typeName->z( i )->getText(), typeName->z( i )->getLänge() + 1 );
-                        wchar_t *t = new wchar_t[ type->z( i )->getLänge() + 1 ];
+                        mbstowcs( n, typeName->z( i )->getText(), typeName->z( i )->getLength() + 1 );
+                        wchar_t *t = new wchar_t[ type->z( i )->getLength() + 1 ];
 #pragma warning( disable : 4996 )
-                        mbstowcs( t, type->z( i )->getText(), type->z( i )->getLänge() + 1 );
+                        mbstowcs( t, type->z( i )->getText(), type->z( i )->getLength() + 1 );
                         c_rgSaveTypes[ i ].pszName = n;
                         c_rgSaveTypes[ i ].pszSpec = t;
                     }
@@ -114,15 +114,15 @@ Text *DateiDialog::anzeigen( bool open ) const
                         {
                             if( !type->z( i )->hat( ".*" ) )
                             {
-                                txt.anhängen( type->z( i )->getTeilText( type->z( i )->positionVon( "." ) + 1 ) );
+                                txt.append( type->z( i )->getTeilText( type->z( i )->positionVon( "." ) + 1 ) );
                                 txt += ";";
                             }
                         }
-                        if( txt.getLänge() > 0 )
-                            txt.löschen( txt.getLänge() - 1 );
-                        wchar_t *defEnd = new wchar_t[ txt.getLänge() + 1 ];
+                        if( txt.getLength() > 0 )
+                            txt.remove( txt.getLength() - 1 );
+                        wchar_t *defEnd = new wchar_t[ txt.getLength() + 1 ];
 #pragma warning( disable : 4996 )
-                        mbstowcs( defEnd, txt, txt.getLänge() + 1 );
+                        mbstowcs( defEnd, txt, txt.getLength() + 1 );
                         hr = pfd->SetDefaultExtension( defEnd );
                         if( SUCCEEDED( hr ) )
                         {
@@ -196,7 +196,7 @@ DateiDialogTh::DateiDialogTh()
 {
     dialog = new DateiDialog();
     ret = 0;
-    öffnen = 0;
+    open = 0;
     ref = 1;
 }
 
@@ -215,14 +215,14 @@ DateiDialogTh::~DateiDialogTh()
 }
 
 // nicht constant
-void DateiDialogTh::setÖffnen( bool b )
+void DateiDialogTh::setOpen( bool b )
 {
-    öffnen = b;
+    open = b;
 }
 
-void DateiDialogTh::löscheDateiTypen()
+void DateiDialogTh::removeDateiTypen()
 {
-    dialog->löscheDateiTypen();
+    dialog->removeDateiTypen();
 }
 
 void DateiDialogTh::addDateiTyp( char *name, char *typ )
@@ -244,7 +244,7 @@ void DateiDialogTh::thread()
 {
     if( ret )
         ret = ret->release();
-    ret = dialog->anzeigen( öffnen );
+    ret = dialog->anzeigen( open );
 }
 
 // constant

+ 4 - 4
DateiDialog.h

@@ -25,7 +25,7 @@ namespace Framework
         // Destruktor
         __declspec( dllexport ) ~DateiDialog();
         // Löscht die Liste mit zugelassenen Dateitypen
-        __declspec( dllexport ) void löscheDateiTypen();
+        __declspec( dllexport ) void removeDateiTypen();
         // Fügt einen zugelassenen Dateityp hinzu
         //  name: Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar
         //  typ: Der Dateityp, der ausgewählt werden darf
@@ -55,7 +55,7 @@ namespace Framework
     private:
         DateiDialog *dialog;
         Text *ret;
-        bool öffnen;
+        bool open;
         int ref;
 
     public:
@@ -65,9 +65,9 @@ namespace Framework
         __declspec( dllexport ) ~DateiDialogTh();
         // Legt fest, ob der Dialog zum öffnen oder speichern ist
         //  b: 1, wenn er zum öfnen ist. 0, wenn er zum speichern ist
-        __declspec( dllexport ) void setÖffnen( bool b );
+        __declspec( dllexport ) void setOpen( bool b );
         // Löscht die liste mit erlaubten Dateitypen
-        __declspec( dllexport ) void löscheDateiTypen();
+        __declspec( dllexport ) void removeDateiTypen();
         // Fügt einen zugelassenen Dateityp hinzu
         //  name: Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar
         //  typ: Der Dateityp, der ausgewählt werden darf

+ 2511 - 2511
DateiSystem.cpp

@@ -16,3182 +16,3182 @@ using namespace Framework;
 // Inhalt der LTDBPixel Klasse aus Dateisystem.h
 // Konstruktor 
 LTDBPixel::LTDBPixel( LTDBPixel *davor )
-    : davor( davor ),
-    index( 0 ),
-    iR( 0 ),
-    iG( 0 ),
-    iB( 0 ),
-    iA( 0 ),
-    miR( 8 ),
-    miG( 8 ),
-    miB( 8 ),
-    miA( 8 ),
-    maxIndex( 1 ),
-    änder( 0 ),
-    änderR( 0 ),
-    änderG( 0 ),
-    änderB( 0 ),
-    änderA( 0 ),
-    komp( 0 ),
-    R( 0 ),
-    G( 0 ),
-    B( 0 ),
-    A( 0 ),
-    ref( 1 )
+	: davor( davor ),
+	index( 0 ),
+	iR( 0 ),
+	iG( 0 ),
+	iB( 0 ),
+	iA( 0 ),
+	miR( 8 ),
+	miG( 8 ),
+	miB( 8 ),
+	miA( 8 ),
+	maxIndex( 1 ),
+	change( 0 ),
+	changeR( 0 ),
+	changeG( 0 ),
+	changeB( 0 ),
+	changeA( 0 ),
+	komp( 0 ),
+	R( 0 ),
+	G( 0 ),
+	B( 0 ),
+	A( 0 ),
+	ref( 1 )
 {}
 
 // Destruktor 
 LTDBPixel::~LTDBPixel()
 {
-    if( davor )
-        davor->release();
+	if( davor )
+		davor->release();
 }
 
 // nicht constant 
 bool LTDBPixel::addBitZuFarbe( unsigned char bit ) // Fügt den Farbwerten ein Bit hinzu
 {
-    if( änderR && iR != miR ) // Das Bit gehört zu Rot
-    {
-        R |= ( ( bit & 0x1 ) ) << ( 7 - komp - iR );
-        ++iR;
-    }
-    else if( änderG && iG != miG ) // Das Bit gehört zu Grün
-    {
-        G |= ( ( bit & 0x1 ) ) << ( 7 - komp - iG );
-        ++iG;
-    }
-    else if( änderB && iB != miB ) // Das Bit gehört zu Blau
-    {
-        B |= ( ( bit & 0x1 ) ) << ( 7 - komp - iB );
-        ++iB;
-    }
-    else if( änderA && iA != miA ) // Das Bit gehört zu Alpha
-    {
-        A |= ( ( bit & 0x1 ) ) << ( 7 - komp - iA );
-        ++iA;
-    }
-    else // Das Bit gehört zum nächsten Pixel
-        return false;
-    return true;
+	if( changeR && iR != miR ) // Das Bit gehört zu Rot
+	{
+		R |= (unsigned char)( ( bit & 0x1 ) << ( 7 - komp - iR ) );
+		++iR;
+	}
+	else if( changeG && iG != miG ) // Das Bit gehört zu Grün
+	{
+		G |= (unsigned char)( ( bit & 0x1 ) << ( 7 - komp - iG ) );
+		++iG;
+	}
+	else if( changeB && iB != miB ) // Das Bit gehört zu Blau
+	{
+		B |= (unsigned char)( ( bit & 0x1 ) << ( 7 - komp - iB ) );
+		++iB;
+	}
+	else if( changeA && iA != miA ) // Das Bit gehört zu Alpha
+	{
+		A |= (unsigned char)( ( bit & 0x1 ) << ( 7 - komp - iA ) );
+		++iA;
+	}
+	else // Das Bit gehört zum nächsten Pixel
+		return false;
+	return true;
 }
 
 char LTDBPixel::addByte( char byte, char begin ) // gibt ende des Pixels zurück, -1 wenn nicht zu ende
 {
-    if( begin >= 8 || begin < 0 )
-        return -1;
-    for( int i = begin; i < 8; ++i )
-    {
-        switch( index )
-        {
-        case 0:
-            // Das erste Bit eines Pixels speichert, ob sich an der Komprimierung etwas änderte
-            änder = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
-            if( !änder ) // Ändert sich nichts an der Komprimierung, so werden die Werte vom vorherigen Pixel übernommen
-            {
-                if( !davor ) // Die Datei ist beschädigt ( Der erste Pixel kann nicht von dem davor Übernemen )
-                {
+	if( begin >= 8 || begin < 0 )
+		return -1;
+	for( int i = begin; i < 8; ++i )
+	{
+		switch( index )
+		{
+		case 0:
+			// Das erste Bit eines Pixels speichert, ob sich an der Komprimierung etwas änderte
+			change = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
+			if( !change ) // Ändert sich nichts an der Komprimierung, so werden die Werte vom vorherigen Pixel übernommen
+			{
+				if( !davor ) // Die Datei ist beschädigt ( Der erste Pixel kann nicht von dem davor Übernemen )
+				{
 #ifdef WIN32
-                    MessageBox( NULL, "Fehler, die Bilddatei ist beschädigt", "Fehler", MB_ICONERROR );
+					MessageBox( NULL, "Fehler, die Bilddatei ist beschädigt", "Fehler", MB_ICONERROR );
 #endif
-                    exit( 0 );
-                }
-                änderR = davor->getÄnderR();
-                änderG = davor->getÄnderG();
-                änderB = davor->getÄnderB();
-                änderA = davor->getÄnderA();
-                komp = davor->getKomp();
-                miR -= komp, miG -= komp, miB -= komp, miA -= komp;
-                if( !änderR )
-                    R = davor->getR();
-                if( !änderG )
-                    G = davor->getG();
-                if( !änderB )
-                    B = davor->getB();
-                if( !änderA )
-                    A = davor->getA();
-                maxIndex += ( änderR + änderG + änderB + änderA ) * ( 8 - komp ); // Bestimmung der Länge
-                // des Pixels in Bits. Jede Farbe hat von grund auf 8 Bits, durch komprimierung kanns kleiner sein
-            }
-            else
-                maxIndex += 7; // Da der Pixel nicht die Werte des vorherigen übernimmt, wird er um 7 Bits größer
-            break;
-        case 1: // Das zweite Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 7 Komprimierungsbits
-                änderR = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 2: // Das dritte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 7 Komprimierungsbits
-                änderG = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 3: // Das vierte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 7 Komprimierungsbits
-                änderB = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 4: // Das fünfte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 7 Komprimierungsbits
-                änderA = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 5: // Das sechste Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 7 Komprimierungsbits
-                komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & 0x1 ) << 2;
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 6: // Das siebte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 7 Komprimierungsbits
-                komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & 0x1 ) << 1;
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 7: // Das achte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 7 Komprimierungsbits
-            {
-                komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & 0x1 );
-                // Das war das letzte Komprimierungsbit
-                // Komprimierung auswerten 
-                miR -= komp, miG -= komp, miB -= komp, miA -= komp;
-                if( !änderR )
-                    R = davor->getR();
-                if( !änderG )
-                    G = davor->getG();
-                if( !änderB )
-                    B = davor->getB();
-                if( !änderA )
-                    A = davor->getA();
-                maxIndex += ( änderR + änderG + änderB + änderA ) * ( 8 - komp ); // Bitlänge des Pixels
-            }
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        default: // Die restlichen Bits speichern alle die Farbwerte des Pixels
-            if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                return i;
-            break;
-        }
-        ++index;
-        if( index >= maxIndex )
-        {
-            if( davor )
-            {
-                if( änderR )
-                    R = davor->getR() + R;
-                if( änderG )
-                    G = davor->getG() + G;
-                if( änderB )
-                    B = davor->getB() + B;
-                if( änderA )
-                    A = davor->getA() + A;
-                davor = davor->release();
-            }
-            return i + 1;
-        }
-    }
-    return -1;
+					exit( 0 );
+				}
+				changeR = davor->getChangeR();
+				changeG = davor->getChangeG();
+				changeB = davor->getChangeB();
+				changeA = davor->getChangeA();
+				komp = davor->getKomp() & 7;
+				miR = (char)( miR - komp ), miG = (char)( miG - komp ), miB = (char)( miB - komp ), miA = (char)( miA - komp );
+				if( !changeR )
+					R = davor->getR();
+				if( !changeG )
+					G = davor->getG();
+				if( !changeB )
+					B = davor->getB();
+				if( !changeA )
+					A = davor->getA();
+				maxIndex = (char)( maxIndex + ( changeR + changeG + changeB + changeA ) * ( 8 - komp ) ); // Bestimmung der Länge
+				// des Pixels in Bits. Jede Farbe hat von grund auf 8 Bits, durch komprimierung kanns kleiner sein
+			}
+			else
+				maxIndex = (char)( maxIndex + 7 ); // Da der Pixel nicht die Werte des vorherigen übernimmt, wird er um 7 Bits größer
+			break;
+		case 1: // Das zweite Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( change ) // Das Bit gehört zu den 7 Komprimierungsbits
+				changeR = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
+			else
+			{
+				if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+					return (unsigned char)i;
+			}
+			break;
+		case 2: // Das dritte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( change ) // Das Bit gehört zu den 7 Komprimierungsbits
+				changeG = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
+			else
+			{
+				if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+					return (unsigned char)i;
+			}
+			break;
+		case 3: // Das vierte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( change ) // Das Bit gehört zu den 7 Komprimierungsbits
+				changeB = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
+			else
+			{
+				if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+					return (unsigned char)i;
+			}
+			break;
+		case 4: // Das fünfte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( change ) // Das Bit gehört zu den 7 Komprimierungsbits
+				changeA = (bool)( ( byte >> ( 7 - i ) ) & 0x1 );
+			else
+			{
+				if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+					return (unsigned char)i;
+			}
+			break;
+		case 5: // Das sechste Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( change ) // Das Bit gehört zu den 7 Komprimierungsbits
+				komp = (unsigned char)( komp | ( (unsigned char)( ( byte >> ( 7 - i ) ) & 0x1 ) << 2 ) ) & 7;
+			else
+			{
+				if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+					return (unsigned char)i;
+			}
+			break;
+		case 6: // Das siebte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( change ) // Das Bit gehört zu den 7 Komprimierungsbits
+				komp = (unsigned char)( komp | ( (unsigned char)( ( byte >> ( 7 - i ) ) & 0x1 ) << 1 ) ) & 7;
+			else
+			{
+				if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+					return (unsigned char)i;
+			}
+			break;
+		case 7: // Das achte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( change ) // Das Bit gehört zu den 7 Komprimierungsbits
+			{
+				komp = (unsigned char)( komp | ( ( byte >> ( 7 - i ) ) & 0x1 ) ) & 7;
+				// Das war das letzte Komprimierungsbit
+				// Komprimierung auswerten 
+				miR = (char)( miR - komp ), miG = (char)( miG - komp ), miB = (char)( miB - komp ), miA = (char)( miA - komp );
+				if( !changeR )
+					R = davor->getR();
+				if( !changeG )
+					G = davor->getG();
+				if( !changeB )
+					B = davor->getB();
+				if( !changeA )
+					A = davor->getA();
+				maxIndex = (char)( maxIndex + ( changeR + changeG + changeB + changeA ) * ( 8 - komp ) ); // Bitlänge des Pixels
+			}
+			else
+			{
+				if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+					return (unsigned char)i;
+			}
+			break;
+		default: // Die restlichen Bits speichern alle die Farbwerte des Pixels
+			if( !addBitZuFarbe( (unsigned char)( byte >> ( 7 - i ) ) ) ) // Das Bit gehört zur Farbe
+				return (unsigned char)i;
+			break;
+		}
+		++index;
+		if( index >= maxIndex )
+		{
+			if( davor )
+			{
+				if( changeR )
+					R = (unsigned char)( davor->getR() + R );
+				if( changeG )
+					G = (unsigned char)( davor->getG() + G );
+				if( changeB )
+					B = (unsigned char)( davor->getB() + B );
+				if( changeA )
+					A = (unsigned char)( davor->getA() + A );
+				davor = davor->release();
+			}
+			return (char)( i + 1 );
+		}
+	}
+	return -1;
 }
 
 void LTDBPixel::setFarbe( int f ) // setzt die Farbe des Pixels
 {   // Da diese Funktion aufgerufen wird, möchte man die Klasse nun zum speichern verwenden
-    // Werte zurücksetzen, fals mit der Klasse schon geladen oder gespeichert wurde
-    index = 0, maxIndex = 1;
-    änder = 0, änderR = 0, änderG = 0, änderB = 0, änderA = 0, komp = 0;
-    iR = 0, iG = 0, iB = 0, iA = 0;
-    miR = 8, miG = 8, miB = 8, miA = 8;
-    // Farbwerte setzen
-    R = (unsigned char)( f >> 16 );
-    G = (unsigned char)( f >> 8 );
-    B = (unsigned char)f;
-    A = (unsigned char)( f >> 24 );
+	// Werte zurücksetzen, fals mit der Klasse schon geladen oder gespeichert wurde
+	index = 0, maxIndex = 1;
+	change = 0, changeR = 0, changeG = 0, changeB = 0, changeA = 0, komp = 0;
+	iR = 0, iG = 0, iB = 0, iA = 0;
+	miR = 8, miG = 8, miB = 8, miA = 8;
+	// Farbwerte setzen
+	R = (unsigned char)( f >> 16 );
+	G = (unsigned char)( f >> 8 );
+	B = (unsigned char)f;
+	A = (unsigned char)( f >> 24 );
 }
 
 void LTDBPixel::komprimieren() // Komprimiert den Pixel
 {
-    maxIndex = 1;
-    if( !davor )
-    {// Das ist der erste Pixel
-        änder = 1;
-        änderR = 1;
-        änderG = 1;
-        änderB = 1;
-        änderA = 1;
-        maxIndex += 7;
-        miR = getBits( R );
-        miG = getBits( G );
-        miB = getBits( B );
-        miA = getBits( A );
-    }
-    else
-    { // Es wird die differenz zum vorrigen Pixel gespeichert
-        miR = getBits( R - davor->getR() );
-        miG = getBits( G - davor->getG() );
-        miB = getBits( B - davor->getB() );
-        miA = getBits( A - davor->getA() );
-        änderR = R != davor->getR();
-        änderG = G != davor->getG();
-        änderB = B != davor->getB();
-        änderA = A != davor->getA();
-    }// Prüfen ob sich etwas ändert
-    if( !miR && änderR )
-        ++miR;
-    if( !miG && änderG )
-        ++miG;
-    if( !miB && änderB )
-        ++miB;
-    if( !miA && änderA )
-        ++miA;
-    int k = ( miR > miG ? miR : miG );
-    k = ( k > miB ? k : miB );
-    k = ( k > miA ? k : miA );
-    miR = k, miG = k, miB = k, miA = k;
-    komp = 8 - k;
-    maxIndex += ( änderR + änderG + änderB + änderA ) * ( k );
-    if( davor )
-    {
-        if( änderR != davor->getÄnderR() ||
-            änderG != davor->getÄnderG() ||
-            änderB != davor->getÄnderB() ||
-            änderA != davor->getÄnderA() ||
-            komp != davor->getKomp() )
-        { // Es ändert sich etwas
-            änder = 1;
-            maxIndex += 7;
-        }
-        else
-        { // Es ändert sich nichts
-            änder = 0;
-        }
-    }
+	maxIndex = 1;
+	if( !davor )
+	{// Das ist der erste Pixel
+		change = 1;
+		changeR = 1;
+		changeG = 1;
+		changeB = 1;
+		changeA = 1;
+		maxIndex = (char)( maxIndex + 7 );
+		miR = (char)getBits( R );
+		miG = (char)getBits( G );
+		miB = (char)getBits( B );
+		miA = (char)getBits( A );
+	}
+	else
+	{ // Es wird die differenz zum vorrigen Pixel gespeichert
+		miR = (char)getBits( (char)( R - davor->getR() ) );
+		miG = (char)getBits( (char)( G - davor->getG() ) );
+		miB = (char)getBits( (char)( B - davor->getB() ) );
+		miA = (char)getBits( (char)( A - davor->getA() ) );
+		changeR = R != davor->getR();
+		changeG = G != davor->getG();
+		changeB = B != davor->getB();
+		changeA = A != davor->getA();
+	}// Prüfen ob sich etwas ändert
+	if( !miR && changeR )
+		++miR;
+	if( !miG && changeG )
+		++miG;
+	if( !miB && changeB )
+		++miB;
+	if( !miA && changeA )
+		++miA;
+	int k = ( miR > miG ? miR : miG );
+	k = ( k > miB ? k : miB );
+	k = ( k > miA ? k : miA );
+	miR = (char)k, miG = (char)k, miB = (char)k, miA = (char)k;
+	komp = (unsigned char)( 8 - k ) & 7;
+	maxIndex = (char)( maxIndex + ( changeR + changeG + changeB + changeA ) * k );
+	if( davor )
+	{
+		if( changeR != davor->getChangeR() ||
+			changeG != davor->getChangeG() ||
+			changeB != davor->getChangeB() ||
+			changeA != davor->getChangeA() ||
+			komp != davor->getKomp() )
+		{ // Es ändert sich etwas
+			change = 1;
+			maxIndex = (char)( maxIndex + 7 );
+		}
+		else
+		{ // Es ändert sich nichts
+			change = 0;
+		}
+	}
 }
 
 bool LTDBPixel::getNextFarbeBit( char &byte, int i ) // Speichert das nächste Farbbit in byte
 {
-    unsigned char RR = R;
-    unsigned char GG = G;
-    unsigned char BB = B;
-    unsigned char AA = A;
-    if( davor )
-    {
-        RR -= davor->getR();
-        GG -= davor->getG();
-        BB -= davor->getB();
-        AA -= davor->getA();
-    }
-    if( änderR && iR != miR ) // Das Bit gehört zu Rot
-    {
-        byte |= ( ( RR >> ( 7 - komp - iR ) ) & 0x1 ) << ( 7 - i );
-        ++iR;
-    }
-    else if( änderG && iG != miG ) // Das Bit gehört zu Grün
-    {
-        byte |= ( ( GG >> ( 7 - komp - iG ) ) & 0x1 ) << ( 7 - i );
-        ++iG;
-    }
-    else if( änderB && iB != miB ) // Das Bit gehört zu Blau
-    {
-        byte |= ( ( BB >> ( 7 - komp - iB ) ) & 0x1 ) << ( 7 - i );
-        ++iB;
-    }
-    else if( änderA && iA != miA ) // Das Bit gehört zu Alpha
-    {
-        byte |= ( ( AA >> ( 7 - komp - iA ) ) & 0x1 ) << ( 7 - i );
-        ++iA;
-    }
-    else // Der Pixel ist bereits zu ende
-        return false;
-    return true;
+	unsigned char RR = R;
+	unsigned char GG = G;
+	unsigned char BB = B;
+	unsigned char AA = A;
+	if( davor )
+	{
+		RR = (unsigned char)( RR - davor->getR() );
+		GG = (unsigned char)( GG - davor->getG() );
+		BB = (unsigned char)( BB - davor->getB() );
+		AA = (unsigned char)( AA - davor->getA() );
+	}
+	if( changeR && iR != miR ) // Das Bit gehört zu Rot
+	{
+		byte |= (char)( ( ( RR >> ( 7 - komp - iR ) ) & 0x1 ) << ( 7 - i ) );
+		++iR;
+	}
+	else if( changeG && iG != miG ) // Das Bit gehört zu Grün
+	{
+		byte |= (char)( ( ( GG >> ( 7 - komp - iG ) ) & 0x1 ) << ( 7 - i ) );
+		++iG;
+	}
+	else if( changeB && iB != miB ) // Das Bit gehört zu Blau
+	{
+		byte |= (char)( ( ( BB >> ( 7 - komp - iB ) ) & 0x1 ) << ( 7 - i ) );
+		++iB;
+	}
+	else if( changeA && iA != miA ) // Das Bit gehört zu Alpha
+	{
+		byte |= (char)( ( ( AA >> ( 7 - komp - iA ) ) & 0x1 ) << ( 7 - i ) );
+		++iA;
+	}
+	else // Der Pixel ist bereits zu ende
+		return false;
+	return true;
 }
 
 char LTDBPixel::getNextByte( char &byte, int begin ) // Gibt die nächsten Bits Zurück, -1 wenn der Pixel nicht zu ende ist
 {
-    // bbegin gibt an wohin in die byte-variable geschrieben werden soll
-    // die Funktion gibt das ende des Pixels in der byte-variable zurück
-    // -1 heißt, dass der Pixel nicht zu ende ist
-    for( int i = begin; i < 8; ++i )
-    {
-        switch( index )
-        {
-        case 0: // Das erste Bit des Pixels speichert, ob sich etwas an der Komprimierung ändert
-            byte |= ( (int)änder & 0x1 ) << ( 7 - i );
-            break;
-        case 1: // Das zweite Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( (int)änderR & 0x1 ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 2: // Das dritte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( (int)änderG & 0x1 ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 3: // Das vierte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( (int)änderB & 0x1 ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 4: // Das fünfte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( (int)änderA & 0x1 ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 5: // Das sechste Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( ( komp >> 2 ) & 0x1 ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 6: // Das siebte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( ( komp >> 1 ) & 0x1 ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 7: // Das sechste Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( komp & 0x1 ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        default: // Die restlichen Bits speichern die Farbe des Pixels
-            if( !getNextFarbeBit( byte, i ) )
-                return i;
-            break;
-        }
-        ++index;
-        if( index >= maxIndex )
-        {
-            if( davor )
-                davor = davor->release();
-            return i + 1;
-        }
-    }
-    return -1;
+	// bbegin gibt an wohin in die byte-variable geschrieben werden soll
+	// die Funktion gibt das ende des Pixels in der byte-variable zurück
+	// -1 heißt, dass der Pixel nicht zu ende ist
+	for( int i = begin; i < 8; ++i )
+	{
+		switch( index )
+		{
+		case 0: // Das erste Bit des Pixels speichert, ob sich etwas an der Komprimierung ändert
+			byte |= (char)( ( (int)change & 0x1 ) << ( 7 - i ) );
+			break;
+		case 1: // Das zweite Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( change ) // Komprimierung
+				byte |= (char)( ( (int)changeR & 0x1 ) << ( 7 - i ) );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return (char)i;
+			}
+			break;
+		case 2: // Das dritte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( change ) // Komprimierung
+				byte |= (char)( ( (int)changeG & 0x1 ) << ( 7 - i ) );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return (char)i;
+			}
+			break;
+		case 3: // Das vierte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( change ) // Komprimierung
+				byte |= (char)( ( (int)changeB & 0x1 ) << ( 7 - i ) );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return (char)i;
+			}
+			break;
+		case 4: // Das fünfte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( change ) // Komprimierung
+				byte |= (char)( ( (int)changeA & 0x1 ) << ( 7 - i ) );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return (char)i;
+			}
+			break;
+		case 5: // Das sechste Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( change ) // Komprimierung
+				byte |= (char)( ( ( komp >> 2 ) & 0x1 ) << ( 7 - i ) );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return (char)i;
+			}
+			break;
+		case 6: // Das siebte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( change ) // Komprimierung
+				byte |= (char)( ( ( komp >> 1 ) & 0x1 ) << ( 7 - i ) );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return (char)i;
+			}
+			break;
+		case 7: // Das sechste Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( change ) // Komprimierung
+				byte |= (char)( ( komp & 0x1 ) << ( 7 - i ) );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return (char)i;
+			}
+			break;
+		default: // Die restlichen Bits speichern die Farbe des Pixels
+			if( !getNextFarbeBit( byte, i ) )
+				return (char)i;
+			break;
+		}
+		++index;
+		if( index >= maxIndex )
+		{
+			if( davor )
+				davor = davor->release();
+			return (char)( i + 1 );
+		}
+	}
+	return -1;
 }
 
 // constant 
 int LTDBPixel::zuFarbe() const // gibt den Pixel als Farbe zurück
 {
-    return ( ( (int)R << 16 ) | ( (int)G << 8 ) | (int)B | ( (int)A << 24 ) );
+	return ( ( (int)R << 16 ) | ( (int)G << 8 ) | (int)B | ( (int)A << 24 ) );
 }
 
-bool LTDBPixel::getÄnderR() const
+bool LTDBPixel::getChangeR() const
 {
-    return änderR;
+	return changeR;
 }
 
-bool LTDBPixel::getÄnderG() const
+bool LTDBPixel::getChangeG() const
 {
-    return änderG;
+	return changeG;
 }
 
-bool LTDBPixel::getÄnderB() const
+bool LTDBPixel::getChangeB() const
 {
-    return änderB;
+	return changeB;
 }
 
-bool LTDBPixel::getÄnderA() const
+bool LTDBPixel::getChangeA() const
 {
-    return änderA;
+	return changeA;
 }
 
 unsigned char LTDBPixel::getKomp() const
 {
-    return komp;
+	return komp;
 }
 
 unsigned char LTDBPixel::getR() const // gibt Rot zurück 
 {
-    return R;
+	return R;
 }
 
 unsigned char LTDBPixel::getG() const // gibt Grün zurück
 {
-    return G;
+	return G;
 }
 
 unsigned char LTDBPixel::getB() const // gibt Blau zurück
 {
-    return B;
+	return B;
 }
 
 unsigned char LTDBPixel::getA() const // gibt Alpha zurück
 {
-    return A;
+	return A;
 }
 
 // Reference Counting 
 LTDBPixel *LTDBPixel::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDBPixel *LTDBPixel::release()
 {
-    --ref;
-    if( ref < 1 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref < 1 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDBDateiKopf Klasse aus Dateisystem.h
 // konstructor
 LTDBDateiKopf::LTDBDateiKopf()
-    : bilder( new RCArray< Text >() ),
-    pos( new Array< __int64 >() ),
-    bAnzahl( 0 ),
-    ref( 1 )
+	: bilder( new RCArray< Text >() ),
+	pos( new Array< __int64 >() ),
+	bAnzahl( 0 ),
+	ref( 1 )
 {}
 
 // destructor 
 LTDBDateiKopf::~LTDBDateiKopf()
 {
-    bilder->release();
-    pos->release();
+	bilder->release();
+	pos->release();
 }
 
 // nicht constant 
 void LTDBDateiKopf::removeBild( int i )
 {
-    if( i >= bAnzahl )
-        return;
-    bilder->lösche( i );
-    pos->lösche( i );
-    --bAnzahl;
+	if( i >= bAnzahl )
+		return;
+	bilder->remove( i );
+	pos->remove( i );
+	--bAnzahl;
 }
 
 void LTDBDateiKopf::removeBild( Text *txt )
 {
-    int i = -1;
-    for( int ii = 0; ii < bAnzahl; ++ii )
-    {
-        Text *b = bilder->z( ii );
-        if( b->istGleich( txt->getText() ) )
-        {
-            i = ii;
-            break;
-        }
-    }
-    txt->release();
-    if( i == -1 )
-        return;
-    bilder->lösche( i );
-    pos->lösche( i );
-    --bAnzahl;
+	int i = -1;
+	for( int ii = 0; ii < bAnzahl; ++ii )
+	{
+		Text *b = bilder->z( ii );
+		if( b->istGleich( txt->getText() ) )
+		{
+			i = ii;
+			break;
+		}
+	}
+	txt->release();
+	if( i == -1 )
+		return;
+	bilder->remove( i );
+	pos->remove( i );
+	--bAnzahl;
 }
 
 void LTDBDateiKopf::addBild( Text *txt )
 {
-    bilder->add( txt, bAnzahl );
-    pos->add( 0, bAnzahl );
-    ++bAnzahl;
+	bilder->add( txt, bAnzahl );
+	pos->add( 0, bAnzahl );
+	++bAnzahl;
 }
 
 void LTDBDateiKopf::setBildPos( int i, __int64 pos )
 {
-    this->pos->set( pos, i );
+	this->pos->set( pos, i );
 }
 
 void LTDBDateiKopf::setBildPos( Text *txt, __int64 pos )
 {
-    int i = -1;
-    for( int ii = 0; ii < bAnzahl; ++ii )
-    {
-        Text *b = bilder->z( ii );
-        if( b->istGleich( txt->getText() ) )
-        {
-            i = ii;
-            break;
-        }
-    }
-    txt->release();
-    if( i == -1 )
-        return;
-    this->pos->set( pos, i );
+	int i = -1;
+	for( int ii = 0; ii < bAnzahl; ++ii )
+	{
+		Text *b = bilder->z( ii );
+		if( b->istGleich( txt->getText() ) )
+		{
+			i = ii;
+			break;
+		}
+	}
+	txt->release();
+	if( i == -1 )
+		return;
+	this->pos->set( pos, i );
 }
 
 void LTDBDateiKopf::laden( FBalken *f, std::ifstream *inF )
 {
-    if( inF->is_open() && inF->good() )
-    {
-        char b = 0;
-        inF->read( &b, 1 );
-        bAnzahl = b << 8;
-        inF->read( &b, 1 );
-        bAnzahl |= b & 0xFF;
+	if( inF->is_open() && inF->good() )
+	{
+		char b = 0;
+		inF->read( &b, 1 );
+		bAnzahl = b << 8;
+		inF->read( &b, 1 );
+		bAnzahl |= b & 0xFF;
 #ifdef WIN32
-        if( f )
-        {
-            f->reset();
-            f->setAktionAnzahl( bAnzahl );
-        }
+		if( f )
+		{
+			f->reset();
+			f->setAktionAnzahl( bAnzahl );
+		}
 #endif
-        bilder->leeren();
-        pos->leeren();
-        for( int i = 0; i < bAnzahl; ++i )
-        {
-            LTDBKopf *kpf = new LTDBKopf();
-            kpf->laden( inF ); // bildname und halbe datei position
-            bilder->set( kpf->getTitel(), i ); // setzt titel
-            Punkt gr = kpf->getGröße();
-            kpf->release();
-            char p[ 5 ];
-            inF->read( (char *)p, 5 ); // andere hälfte der Dateiposition
-            unsigned __int64 position = ( ( (__int64)gr.x << 52 ) & 0xFFF0000000000000 ) |
-                ( ( (__int64)gr.y << 40 ) & 0xFFF0000000000 ) |
-                ( ( (__int64)p[ 0 ] << 32 ) & 0xFF00000000 ) |
-                ( ( (__int64)p[ 1 ] << 24 ) & 0xFF000000 ) |
-                ( ( (__int64)p[ 2 ] << 16 ) & 0xFF0000 ) |
-                ( ( (__int64)p[ 3 ] << 8 ) & 0xFF00 ) |
-                ( (__int64)p[ 4 ] & 0xFF );
-            pos->set( position, i ); // setzt position
+		bilder->leeren();
+		pos->leeren();
+		for( int i = 0; i < bAnzahl; ++i )
+		{
+			LTDBKopf *kpf = new LTDBKopf();
+			kpf->laden( inF ); // bildname und halbe datei position
+			bilder->set( kpf->getTitel(), i ); // setzt titel
+			Punkt gr = kpf->getSize();
+			kpf->release();
+			char p[ 5 ];
+			inF->read( (char *)p, 5 ); // andere hälfte der Dateiposition
+			unsigned __int64 position = ( ( (__int64)gr.x << 52 ) & 0xFFF0000000000000 ) |
+				( ( (__int64)gr.y << 40 ) & 0xFFF0000000000 ) |
+				( ( (__int64)p[ 0 ] << 32 ) & 0xFF00000000 ) |
+				( ( (__int64)p[ 1 ] << 24 ) & 0xFF000000 ) |
+				( ( (__int64)p[ 2 ] << 16 ) & 0xFF0000 ) |
+				( ( (__int64)p[ 3 ] << 8 ) & 0xFF00 ) |
+				( (__int64)p[ 4 ] & 0xFF );
+			pos->set( position, i ); // setzt position
 #ifdef WIN32
-            if( f )
-                f->aktionPlus();
+			if( f )
+				f->aktionPlus();
 #endif
-        }
-    }
+		}
+	}
 }
 
 // constant
 void LTDBDateiKopf::speichern( std::ofstream *outF ) const
 {
-    if( outF->is_open() && outF->good() )
-    {
-        char b = bAnzahl >> 8;
-        outF->write( &b, 1 );
-        b = (char)bAnzahl;
-        outF->write( &b, 1 );
-        for( int i = 0; i < bAnzahl; ++i )
-        {
-            LTDBKopf *kpf = new LTDBKopf();
-            __int64 position = pos->get( i );
-            kpf->Init( bilder->get( i ), Punkt( position >> 52, position >> 40 ) );
-            kpf->speichern( outF );
-            kpf->release();
-            char p[] = { (char)( position >> 32 ), (char)( position >> 24 ), (char)( position >> 16 ), (char)( position >> 8 ), (char)( position ) };
-            outF->write( (char *)p, 5 );
-        }
-    }
+	if( outF->is_open() && outF->good() )
+	{
+		char b = (char)( bAnzahl >> 8 );
+		outF->write( &b, 1 );
+		b = (char)bAnzahl;
+		outF->write( &b, 1 );
+		for( int i = 0; i < bAnzahl; ++i )
+		{
+			LTDBKopf *kpf = new LTDBKopf();
+			__int64 position = pos->get( i );
+			kpf->Init( bilder->get( i ), Punkt( (int)( position >> 52 ), (int)( position >> 40 ) ) );
+			kpf->speichern( outF );
+			kpf->release();
+			char p[] = { (char)( position >> 32 ), (char)( position >> 24 ), (char)( position >> 16 ), (char)( position >> 8 ), (char)( position ) };
+			outF->write( (char *)p, 5 );
+		}
+	}
 }
 
 Text *LTDBDateiKopf::getBild( int i ) const
 {
-    return bilder->get( i );
+	return bilder->get( i );
 }
 
 Text *LTDBDateiKopf::zBild( int i ) const
 {
-    return bilder->z( i );
+	return bilder->z( i );
 }
 
 __int64 LTDBDateiKopf::getBildPosition( Text *txt ) const
 {
-    int i = -1;
-    for( int ii = 0; ii < bAnzahl; ++ii )
-    {
-        Text *b = bilder->z( ii );
-        if( b->istGleich( txt->getText() ) )
-        {
-            i = ii;
-            break;
-        }
-    }
-    txt->release();
-    if( i == -1 )
-        return -1;
-    return pos->get( i );
+	int i = -1;
+	for( int ii = 0; ii < bAnzahl; ++ii )
+	{
+		Text *b = bilder->z( ii );
+		if( b->istGleich( txt->getText() ) )
+		{
+			i = ii;
+			break;
+		}
+	}
+	txt->release();
+	if( i == -1 )
+		return -1;
+	return pos->get( i );
 }
 
 __int64 LTDBDateiKopf::getBildPosition( int index ) const
 {
-    return pos->get( index );
+	return pos->get( index );
 }
 
 int LTDBDateiKopf::getBildIndex( Text *txt ) const
 {
-    int i = -1;
-    for( int ii = 0; ii < bAnzahl; ++ii )
-    {
-        Text *b = bilder->z( ii );
-        if( b->istGleich( txt->getText() ) )
-        {
-            i = ii;
-            break;
-        }
-    }
-    txt->release();
-    return i;
+	int i = -1;
+	for( int ii = 0; ii < bAnzahl; ++ii )
+	{
+		Text *b = bilder->z( ii );
+		if( b->istGleich( txt->getText() ) )
+		{
+			i = ii;
+			break;
+		}
+	}
+	txt->release();
+	return i;
 }
 
 int LTDBDateiKopf::getbAnzahl() const
 {
-    return bAnzahl;
+	return bAnzahl;
 }
 
 RCArray< Text > *LTDBDateiKopf::zBildListe() const
 {
-    return bilder;
+	return bilder;
 }
 
 // Reference Counting 
 LTDBDateiKopf *LTDBDateiKopf::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDBDateiKopf *LTDBDateiKopf::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDBKopf Klasse aus DateiSystem.h
 // Konstruktor 
 LTDBKopf::LTDBKopf()
-    : ref( 1 )
+	: ref( 1 )
 {}
 
 // nicht constant 
 void LTDBKopf::laden( std::ifstream *f ) // Lät die Daten aus einer Datei
 {
-    if( f->is_open() )
-    {
-        a = 0;
-        b = 0;
-        c = 0;
-        char aa = 0;
-        f->read( &aa, 1 );
-        int tl = ( aa >> 4 ) & Bits( 4 );
-        int BitAnzahl = 4 + tl * 5 + 24;
-        f->seekg( -1, std::ios::cur );
-        int Bytes = BitAnzahl / 8;
-        if( ( (float)BitAnzahl / 8.0f ) != Bytes )
-            ++Bytes;
-        char byte = 0;
-        for( int i = 0; i < Bytes; ++i )
-        {
-            f->read( &byte, 1 );
-            setBits( i * 8, i * 8 + 8, byte );
-        }
-    }
+	if( f->is_open() )
+	{
+		a = 0;
+		b = 0;
+		c = 0;
+		char aa = 0;
+		f->read( &aa, 1 );
+		int tl = ( aa >> 4 ) & Bits( 4 );
+		int BitAnzahl = 4 + tl * 5 + 24;
+		f->seekg( -1, std::ios::cur );
+		int Bytes = BitAnzahl / 8;
+		if( ( (float)BitAnzahl / 8.0f ) != Bytes )
+			++Bytes;
+		char byte = 0;
+		for( int i = 0; i < Bytes; ++i )
+		{
+			f->read( &byte, 1 );
+			setBits( i * 8, i * 8 + 8, byte );
+		}
+	}
 }
 
 int LTDBKopf::Init( Text *t, const Punkt &g ) // Befüllt die Daten
 {
-    a = 0;
-    b = 0;
-    c = 0;
-    int tl = t->getLänge();
-    if( tl > 15 )
-        tl = 15;
-    char *titel = new char[ tl ];
-    int übersp = 0;
-    for( int i = 0; i < tl; ++i )
-    {
-        titel[ i - übersp ] = t->getText()[ i ];
-        if( titel[ i - übersp ] > 96 && titel[ i - übersp ] < 123 )
-            titel[ i - übersp ] -= 96;
-        else if( titel[ i - übersp ] > 64 && titel[ i - übersp ] < 91 )
-            titel[ i - übersp ] -= 64;
-        else if( titel[ i - übersp ] == 'ü' || titel[ i - übersp ] == 'Ü' )
-            titel[ i - übersp ] = 27;
-        else if( titel[ i - übersp ] == 'ö' || titel[ i - übersp ] == 'Ö' )
-            titel[ i - übersp ] = 28;
-        else if( titel[ i - übersp ] == 'ä' || titel[ i - übersp ] == 'Ä' )
-            titel[ i - übersp ] = 29;
-        else if( titel[ i - übersp ] == 'ß' )
-            titel[ i - übersp ] = 30;
-        else if( titel[ i - übersp ] == '.' )
-            titel[ i - übersp ] = 31;
-        else
-            ++übersp;
-    }
-    a = (__int64)( ( tl - übersp ) & Bits( 4 ) ) << 60;
-    int BeginBit = 4;
-    for( int i = 0; i < tl - übersp; ++i )
-    {
-        BeginBit += 5;
-        switch( i )
-        {
-        case 0:
-            a |= (__int64)( titel[ i ] & 31 ) << 55; // ersten Buchstaben speichern
-            break;
-        case 1:
-            a |= (__int64)( titel[ i ] & 31 ) << 50; // zweiten Buchstaben speichern
-            break;
-        case 2:
-            a |= (__int64)( titel[ i ] & 31 ) << 45; // dritten Buchstaben speichern
-            break;
-        case 3:
-            a |= (__int64)( titel[ i ] & 31 ) << 40; // vierten Buchstaben speichern
-            break;
-        case 4:
-            a |= (__int64)( titel[ i ] & 31 ) << 35; // fünften Buchstaben speichern
-            break;
-        case 5:
-            a |= (__int64)( titel[ i ] & 31 ) << 30; // sechsten Buchstaben speichern
-            break;
-        case 6:
-            a |= (__int64)( titel[ i ] & 31 ) << 25; // siebten Buchstaben speichern
-            break;
-        case 7:
-            a |= (__int64)( titel[ i ] & 31 ) << 20; // achten Buchstaben speichern
-            break;
-        case 8:
-            a |= (__int64)( titel[ i ] & 31 ) << 15; // neunten Buchstaben speichern
-            break;
-        case 9:
-            a |= (__int64)( titel[ i ] & 31 ) << 10; // zenten Buchstaben speichern
-            break;
-        case 10:
-            a |= (__int64)( titel[ i ] & 31 ) << 5; // elften Buchstaben speichern
-            break;
-        case 11:
-            a |= (__int64)( titel[ i ] & 31 ); // zwölften Buchstaben speichern
-            break;
-        case 12:
-            b |= (__int32)( titel[ i ] & 31 ) << 27; // dreizenten Buchstaben speichern
-            break;
-        case 13:
-            b |= (__int32)( titel[ i ] & 31 ) << 22; // vierzenten Buchstaben speichern
-            break;
-        case 14:
-            b |= (__int32)( titel[ i ] & 31 ) << 17; // fünfzenten Buchstaben speichern
-            break;
-        }
-    }
-    __int16 grx = g.x & Bits( 12 );
-    __int16 gry = g.y & Bits( 12 );
-    int EndBit = BeginBit + 24;
-    setBits( BeginBit, EndBit - 12, grx );
-    setBits( BeginBit + 12, EndBit, gry );
-    t->release();
-    delete[]titel;
-    return übersp;
+	a = 0;
+	b = 0;
+	c = 0;
+	int tl = t->getLength();
+	if( tl > 15 )
+		tl = 15;
+	char *titel = new char[ tl ];
+	int skipped = 0;
+	for( int i = 0; i < tl; ++i )
+	{
+		titel[ i - skipped ] = t->getText()[ i ];
+		if( titel[ i - skipped ] > 96 && titel[ i - skipped ] < 123 )
+			titel[ i - skipped ] = (char)( titel[ i - skipped ] - 96 );
+		else if( titel[ i - skipped ] > 64 && titel[ i - skipped ] < 91 )
+			titel[ i - skipped ] = (char)( titel[ i - skipped ] - 64 );
+		else if( titel[ i - skipped ] == 'ü' || titel[ i - skipped ] == 'Ü' )
+			titel[ i - skipped ] = 27;
+		else if( titel[ i - skipped ] == 'ö' || titel[ i - skipped ] == 'Ö' )
+			titel[ i - skipped ] = 28;
+		else if( titel[ i - skipped ] == 'ä' || titel[ i - skipped ] == 'Ä' )
+			titel[ i - skipped ] = 29;
+		else if( titel[ i - skipped ] == 'ß' )
+			titel[ i - skipped ] = 30;
+		else if( titel[ i - skipped ] == '.' )
+			titel[ i - skipped ] = 31;
+		else
+			++skipped;
+	}
+	a = (__int64)( ( tl - skipped ) & Bits( 4 ) ) << 60;
+	int BeginBit = 4;
+	for( int i = 0; i < tl - skipped; ++i )
+	{
+		BeginBit += 5;
+		switch( i )
+		{
+		case 0:
+			a |= (__int64)( titel[ i ] & 31 ) << 55; // ersten Buchstaben speichern
+			break;
+		case 1:
+			a |= (__int64)( titel[ i ] & 31 ) << 50; // zweiten Buchstaben speichern
+			break;
+		case 2:
+			a |= (__int64)( titel[ i ] & 31 ) << 45; // dritten Buchstaben speichern
+			break;
+		case 3:
+			a |= (__int64)( titel[ i ] & 31 ) << 40; // vierten Buchstaben speichern
+			break;
+		case 4:
+			a |= (__int64)( titel[ i ] & 31 ) << 35; // fünften Buchstaben speichern
+			break;
+		case 5:
+			a |= (__int64)( titel[ i ] & 31 ) << 30; // sechsten Buchstaben speichern
+			break;
+		case 6:
+			a |= (__int64)( titel[ i ] & 31 ) << 25; // siebten Buchstaben speichern
+			break;
+		case 7:
+			a |= (__int64)( titel[ i ] & 31 ) << 20; // achten Buchstaben speichern
+			break;
+		case 8:
+			a |= (__int64)( titel[ i ] & 31 ) << 15; // neunten Buchstaben speichern
+			break;
+		case 9:
+			a |= (__int64)( titel[ i ] & 31 ) << 10; // zenten Buchstaben speichern
+			break;
+		case 10:
+			a |= (__int64)( titel[ i ] & 31 ) << 5; // elften Buchstaben speichern
+			break;
+		case 11:
+			a |= (__int64)( titel[ i ] & 31 ); // zwölften Buchstaben speichern
+			break;
+		case 12:
+			b |= (__int32)( titel[ i ] & 31 ) << 27; // dreizenten Buchstaben speichern
+			break;
+		case 13:
+			b |= (__int32)( titel[ i ] & 31 ) << 22; // vierzenten Buchstaben speichern
+			break;
+		case 14:
+			b |= (__int32)( titel[ i ] & 31 ) << 17; // fünfzenten Buchstaben speichern
+			break;
+		}
+	}
+	__int16 grx = (short)( g.x & Bits( 12 ) );
+	__int16 gry = (short)( g.y & Bits( 12 ) );
+	int EndBit = BeginBit + 24;
+	setBits( BeginBit, EndBit - 12, grx );
+	setBits( BeginBit + 12, EndBit, gry );
+	t->release();
+	delete[]titel;
+	return skipped;
 }
 
 void LTDBKopf::setBits( int BeginBit, int EndBit, __int16 bits )
 {
-    if( EndBit - BeginBit > 16 )
-        EndBit = BeginBit + 16;
-    if( BeginBit < 64 )
-    {
-        if( EndBit < 64 )
-        {
-            a |= ( (__int64)bits & Bits( EndBit - BeginBit ) ) << ( ( 64 - BeginBit ) - ( EndBit - BeginBit ) );
-        }
-        else
-        {
-            a |= ( ( (__int64)bits >> ( EndBit - 64 ) ) & Bits( 64 - BeginBit ) );
-            b |= ( (__int32)bits & Bits( EndBit - 64 ) ) << ( 32 - ( EndBit - 64 ) );
-        }
-    }
-    else
-    {
-        if( BeginBit < 96 )
-        {
-            if( EndBit < 96 )
-            {
-                b |= ( (__int32)bits & Bits( EndBit - BeginBit ) ) << ( ( 96 - BeginBit ) - ( EndBit - BeginBit ) );
-            }
-            else
-            {
-                b |= ( ( (__int32)bits >> ( EndBit - 96 ) ) & Bits( 96 - BeginBit ) );
-                c |= ( ( (__int8)bits & Bits( EndBit - 96 ) ) << ( 8 - ( EndBit - 96 ) ) );
-            }
-        }
-        else
-        {
-            c |= ( ( (__int8)bits & Bits( EndBit - BeginBit ) ) << ( 8 - ( EndBit - BeginBit ) ) );
-        }
-    }
+	if( EndBit - BeginBit > 16 )
+		EndBit = BeginBit + 16;
+	if( BeginBit < 64 )
+	{
+		if( EndBit < 64 )
+		{
+			a |= ( (__int64)bits & Bits( EndBit - BeginBit ) ) << ( ( 64 - BeginBit ) - ( EndBit - BeginBit ) );
+		}
+		else
+		{
+			a |= ( ( (__int64)bits >> ( EndBit - 64 ) ) & Bits( 64 - BeginBit ) );
+			b |= ( (__int32)bits & Bits( EndBit - 64 ) ) << ( 32 - ( EndBit - 64 ) );
+		}
+	}
+	else
+	{
+		if( BeginBit < 96 )
+		{
+			if( EndBit < 96 )
+			{
+				b |= ( (__int32)bits & Bits( EndBit - BeginBit ) ) << ( ( 96 - BeginBit ) - ( EndBit - BeginBit ) );
+			}
+			else
+			{
+				b |= ( ( (__int32)bits >> ( EndBit - 96 ) ) & Bits( 96 - BeginBit ) );
+				c = (char)( c | ( ( (__int8)bits & Bits( EndBit - 96 ) ) << ( 8 - ( EndBit - 96 ) ) ) );
+			}
+		}
+		else
+		{
+			c = (char)( c | ( ( (__int8)bits & Bits( EndBit - BeginBit ) ) << ( 8 - ( EndBit - BeginBit ) ) ) );
+		}
+	}
 }
 
 // constant 
 void LTDBKopf::speichern( std::ofstream *f ) const // Speichert die Daten in eine Datei
 {
-    if( f->is_open() )
-    {
-        int bits = 4/*Titellänge*/ + getTitelLänge() * 5/*Titel*/ + 24/*Bildgröße*/;
-        int bytes = bits / 8; // Bytelänge des Dateikopfes
-        if( ( (float)bits / 8.0f ) != bytes )
-            ++bytes;
-        char c = 0;
-        for( int i = 0; i < bytes; ++i )
-        {
-            c = (char)getBits( i * 8, i * 8 + 8 );
-            f->write( &c, 1 );
-        }
-    }
+	if( f->is_open() )
+	{
+		int bits = 4/*Titellänge*/ + getTitelLength() * 5/*Titel*/ + 24/*Bildgröße*/;
+		int bytes = bits / 8; // Bytelänge des Dateikopfes
+		if( ( (float)bits / 8.0f ) != bytes )
+			++bytes;
+		char c = 0;
+		for( int i = 0; i < bytes; ++i )
+		{
+			c = (char)getBits( i * 8, i * 8 + 8 );
+			f->write( &c, 1 );
+		}
+	}
 }
 
-int LTDBKopf::getTitelLänge() const // gibt die länge des Bildnamens zurück
+int LTDBKopf::getTitelLength() const // gibt die länge des Bildnamens zurück
 {
-    return a >> 60 & Bits( 4 ); // Die Länge des Titels wird in den ersten 4 Bits der Tatei gespeichert
+	return (int)( a >> 60 & Bits( 4 ) ); // Die Länge des Titels wird in den ersten 4 Bits der Tatei gespeichert
 }
 
 Text *LTDBKopf::getTitel() const // gibt den Namen des Bildes zurück
 {
-    Text *ret = new Text( "" );
-    char c[ 2 ];
-    c[ 1 ] = '\0';
-    int l = getTitelLänge();
-    for( int i = 0; i < l; ++i )
-    {
-        c[ 0 ] = 0;
-        switch( i )
-        {
-        case 0:
-            c[ 0 ] = ( a >> 55 ) & 31; // ersten Buchstaben holen
-            break;
-        case 1:
-            c[ 0 ] = ( a >> 50 ) & 31; // zweiten Buchstaben holen
-            break;
-        case 2:
-            c[ 0 ] = ( a >> 45 ) & 31; // dritten Buchstaben holen
-            break;
-        case 3:
-            c[ 0 ] = ( a >> 40 ) & 31; // vierten Buchstaben holen
-            break;
-        case 4:
-            c[ 0 ] = ( a >> 35 ) & 31; // fünften Buchstaben holen
-            break;
-        case 5:
-            c[ 0 ] = ( a >> 30 ) & 31; // sechsten Buchstaben holen
-            break;
-        case 6:
-            c[ 0 ] = ( a >> 25 ) & 31; // siebten Buchstaben holen
-            break;
-        case 7:
-            c[ 0 ] = ( a >> 20 ) & 31; // achten Buchstaben holen
-            break;
-        case 8:
-            c[ 0 ] = ( a >> 15 ) & 31; // neunten Buchstaben holen
-            break;
-        case 9:
-            c[ 0 ] = ( a >> 10 ) & 31; // zenten Buchstaben holen
-            break;
-        case 10:
-            c[ 0 ] = ( a >> 5 ) & 31; // elften Buchstaben holen
-            break;
-        case 11:
-            c[ 0 ] = a & 31; // zwölften Buchstaben holen
-            break;
-        case 12:
-            c[ 0 ] = ( b >> 27 ) & 31; // dreizenten Buchstaben holen
-            break;
-        case 13:
-            c[ 0 ] = ( b >> 22 ) & 31; // vierzenten Buchstaben holen
-            break;
-        case 14:
-            c[ 0 ] = ( b >> 17 ) & 31; // fünfzenten Buchstaben holen
-            break;
-        }
-        if( c[ 0 ] == 27 )
-            c[ 0 ] = 'ü';
-        else if( c[ 0 ] == 28 )
-            c[ 0 ] = 'ö';
-        else if( c[ 0 ] == 29 )
-            c[ 0 ] = 'ä';
-        else if( c[ 0 ] == 30 )
-            c[ 0 ] = 'ß';
-        else if( c[ 0 ] == 31 )
-            c[ 0 ] = '.';
-        else
-            c[ 0 ] += 96;
-        ret->anhängen( c );
-    }
-    return ret;
-}
-
-Punkt LTDBKopf::getGröße() const // gibt die Größe des Bildes zurück
-{
-    int BeginBit = 4/*Titellänge*/ + getTitelLänge() * 5/*Titel*/;
-    int EndBit = BeginBit + 24;
-    __int16 grx = getBits( BeginBit, EndBit - 12 );
-    __int16 gry = getBits( BeginBit + 12, EndBit );
-    return Punkt( (int)( grx & Bits( 12 ) ), (int)( gry & Bits( 12 ) ) );
+	Text *ret = new Text( "" );
+	char c[ 2 ];
+	c[ 1 ] = '\0';
+	int l = getTitelLength();
+	for( int i = 0; i < l; ++i )
+	{
+		c[ 0 ] = 0;
+		switch( i )
+		{
+		case 0:
+			c[ 0 ] = ( a >> 55 ) & 31; // ersten Buchstaben holen
+			break;
+		case 1:
+			c[ 0 ] = ( a >> 50 ) & 31; // zweiten Buchstaben holen
+			break;
+		case 2:
+			c[ 0 ] = ( a >> 45 ) & 31; // dritten Buchstaben holen
+			break;
+		case 3:
+			c[ 0 ] = ( a >> 40 ) & 31; // vierten Buchstaben holen
+			break;
+		case 4:
+			c[ 0 ] = ( a >> 35 ) & 31; // fünften Buchstaben holen
+			break;
+		case 5:
+			c[ 0 ] = ( a >> 30 ) & 31; // sechsten Buchstaben holen
+			break;
+		case 6:
+			c[ 0 ] = ( a >> 25 ) & 31; // siebten Buchstaben holen
+			break;
+		case 7:
+			c[ 0 ] = ( a >> 20 ) & 31; // achten Buchstaben holen
+			break;
+		case 8:
+			c[ 0 ] = ( a >> 15 ) & 31; // neunten Buchstaben holen
+			break;
+		case 9:
+			c[ 0 ] = ( a >> 10 ) & 31; // zenten Buchstaben holen
+			break;
+		case 10:
+			c[ 0 ] = ( a >> 5 ) & 31; // elften Buchstaben holen
+			break;
+		case 11:
+			c[ 0 ] = a & 31; // zwölften Buchstaben holen
+			break;
+		case 12:
+			c[ 0 ] = (char)( ( b >> 27 ) & 31 ); // dreizenten Buchstaben holen
+			break;
+		case 13:
+			c[ 0 ] = (char)( ( b >> 22 ) & 31 ); // vierzenten Buchstaben holen
+			break;
+		case 14:
+			c[ 0 ] = (char)( ( b >> 17 ) & 31 ); // fünfzenten Buchstaben holen
+			break;
+		}
+		if( c[ 0 ] == 27 )
+			c[ 0 ] = 'ü';
+		else if( c[ 0 ] == 28 )
+			c[ 0 ] = 'ö';
+		else if( c[ 0 ] == 29 )
+			c[ 0 ] = 'ä';
+		else if( c[ 0 ] == 30 )
+			c[ 0 ] = 'ß';
+		else if( c[ 0 ] == 31 )
+			c[ 0 ] = '.';
+		else
+			c[ 0 ] = (char)( c[ 0 ] + 96 );
+		ret->append( c );
+	}
+	return ret;
+}
+
+Punkt LTDBKopf::getSize() const // gibt die Größe des Bildes zurück
+{
+	int BeginBit = 4/*Titellänge*/ + getTitelLength() * 5/*Titel*/;
+	int EndBit = BeginBit + 24;
+	__int16 grx = getBits( BeginBit, EndBit - 12 );
+	__int16 gry = getBits( BeginBit + 12, EndBit );
+	return Punkt( (int)( grx & Bits( 12 ) ), (int)( gry & Bits( 12 ) ) );
 }
 
 __int16 LTDBKopf::getBits( int begin, int ende )const // gibt die Bits von begin bis ende zurück( ohne ende );
 {
-    if( ende < begin )
-        return 0;
-    if( ende - begin > 16 )
-        ende = begin + 16;
-    __int16 ret = 0;
-    if( begin < 64 )
-    {
-        if( ende < 64 )
-        {
-            ret = (__int16)( a >> ( ( 64 - begin ) - ( ende - begin ) ) & Bits( ende - begin ) );
-        }
-        else
-        {
-            ret = (__int16)( ( a & Bits( 64 - begin ) ) << ( ende - 64 ) );
-            ret |= (__int16)( ( b >> ( 32 - ( ende - 64 ) ) ) & Bits( ende - 64 ) );
-        }
-    }
-    else
-    {
-        if( begin < 96 )
-        {
-            if( ende < 96 )
-            {
-                ret = (__int16)( b >> ( ( 96 - begin ) - ( ende - begin ) ) & Bits( ende - begin ) );
-            }
-            else
-            {
-                ret = (__int16)( ( b & Bits( 96 - begin ) ) << ( ende - 96 ) );
-                ret |= (__int16)( ( c >> ( 8 - ( ende - 96 ) ) ) & Bits( ende - 96 ) );
-            }
-        }
-        else
-        {
-            ret = (__int16)( c >> ( ( 104 - begin ) - ( ende - begin ) ) & Bits( ende - begin ) );
-        }
-    }
-    return ret;
+	if( ende < begin )
+		return 0;
+	if( ende - begin > 16 )
+		ende = begin + 16;
+	__int16 ret = 0;
+	if( begin < 64 )
+	{
+		if( ende < 64 )
+		{
+			ret = (__int16)( a >> ( ( 64 - begin ) - ( ende - begin ) ) & Bits( ende - begin ) );
+		}
+		else
+		{
+			ret = (__int16)( ( a & Bits( 64 - begin ) ) << ( ende - 64 ) );
+			ret = (__int16)( ret | ( ( b >> ( 32 - ( ende - 64 ) ) ) & Bits( ende - 64 ) ) );
+		}
+	}
+	else
+	{
+		if( begin < 96 )
+		{
+			if( ende < 96 )
+			{
+				ret = (__int16)( b >> ( ( 96 - begin ) - ( ende - begin ) ) & Bits( ende - begin ) );
+			}
+			else
+			{
+				ret = (__int16)( ( b & Bits( 96 - begin ) ) << ( ende - 96 ) );
+				ret = (__int16)( ret | ( ( c >> ( 8 - ( ende - 96 ) ) ) & Bits( ende - 96 ) ) );
+			}
+		}
+		else
+		{
+			ret = (__int16)( c >> ( ( 104 - begin ) - ( ende - begin ) ) & Bits( ende - begin ) );
+		}
+	}
+	return ret;
 }
 
 // Reference Counting 
 LTDBKopf *LTDBKopf::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDBKopf *LTDBKopf::release()
 {
-    --ref;
-    if( ref < 1 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref < 1 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDBKörper Klasse aus Dateisystem.h
 // Konstruktor 
-LTDBKörper::LTDBKörper()
-    : gr( 0, 0 ),
-    b( new Bild() ),
-    ref( 1 )
+LTDBBody::LTDBBody()
+	: gr( 0, 0 ),
+	b( new Bild() ),
+	ref( 1 )
 {}
 
-LTDBKörper::LTDBKörper( LTDBKopf *k ) // ruft Init auf
-    : gr( 0, 0 ),
-    b( new Bild() ),
-    ref( 1 )
+LTDBBody::LTDBBody( LTDBKopf *k ) // ruft Init auf
+	: gr( 0, 0 ),
+	b( new Bild() ),
+	ref( 1 )
 {
-    init( k );
+	init( k );
 }
 
 // Destruktor 
-LTDBKörper::~LTDBKörper()
+LTDBBody::~LTDBBody()
 {
-    b->release();
+	b->release();
 }
 
 // nicht constant
-void LTDBKörper::init( LTDBKopf k ) // Initialisiert, wird vor dem laden benötigt 
+void LTDBBody::init( LTDBKopf k ) // Initialisiert, wird vor dem laden benötigt 
 {
-    gr = k.getGröße();
-    int l = k.getTitelLänge();
-    l = 4 + l * 5 + 24;
-    dateiLänge = ( l / 8.0 == l ) ? ( l / 8 ) : ( l / 8 + 1 );
+	gr = k.getSize();
+	int l = k.getTitelLength();
+	l = 4 + l * 5 + 24;
+	dateiSize = ( l / 8.0 == l ) ? ( l / 8 ) : ( l / 8 + 1 );
 }
 
-void LTDBKörper::init( LTDBKopf *k ) // Initialisiert, wird vor dem laden benötigt
+void LTDBBody::init( LTDBKopf *k ) // Initialisiert, wird vor dem laden benötigt
 {
-    gr = k->getGröße();
-    int l = k->getTitelLänge();
-    l = 4 + l * 5 + 24;
-    dateiLänge = ( l / 8.0 == l ) ? ( l / 8 ) : ( l / 8 + 1 );
-    k->release();
+	gr = k->getSize();
+	int l = k->getTitelLength();
+	l = 4 + l * 5 + 24;
+	dateiSize = ( l / 8.0 == l ) ? ( l / 8 ) : ( l / 8 + 1 );
+	k->release();
 }
 
-void LTDBKörper::laden( FBalken *zF, std::ifstream *inF ) // läd das Bild
+void LTDBBody::laden( FBalken *zF, std::ifstream *inF ) // läd das Bild
 {
-    b->neuBild( gr.x, gr.y, 0xFF000000 ); // neues Bild erstellen
-    int *buff = b->getBuffer();
-    int breite = b->getBreite();
-    char byte = 0;
-    int index = 0;
-    LTDBPixel *davor = 0; // zuletzt geladener Pixel
-    LTDBPixel *dieser = new LTDBPixel( 0 ); // momentan zu ladener Pixel
-    int begin = 0; // Pixelbegin, endposition in der byte variable
+	b->neuBild( gr.x, gr.y, 0xFF000000 ); // neues Bild erstellen
+	int *buff = b->getBuffer();
+	int breite = b->getBreite();
+	char byte = 0;
+	int index = 0;
+	LTDBPixel *davor = 0; // zuletzt geladener Pixel
+	LTDBPixel *dieser = new LTDBPixel( 0 ); // momentan zu ladener Pixel
+	int begin = 0; // Pixelbegin, endposition in der byte variable
 #ifdef WIN32
-    if( zF )
-    {
-        zF->reset();
-        zF->setAktionAnzahl( gr.x * gr.y );
-    }
+	if( zF )
+	{
+		zF->reset();
+		zF->setAktionAnzahl( gr.x * gr.y );
+	}
 #endif
-    while( index < gr.x * gr.y ) // für jeden Pixel
-    {
-        if( !dieser ) // wenn es nicht der erste Pixel ist
-            dieser = new LTDBPixel( davor->getThis() );
-        int ende = -1;
-        while( ende < 0 ) // Pixel laden
-        {
-            if( begin == 0 )
-                inF->read( &byte, 1 );
-            ende = dieser->addByte( byte, begin ); // byte auswerten
-            begin = 0;
-        }
-        begin = ende;
-        if( begin == 8 )
-            begin = 0;
-        buff[ ( index % gr.x ) + ( index / gr.x ) * breite ] = dieser->zuFarbe();
-        if( davor )
-            davor = davor->release();
-        davor = dieser->getThis();
-        dieser = dieser->release();
-        ++index;
+	while( index < gr.x * gr.y ) // für jeden Pixel
+	{
+		if( !dieser ) // wenn es nicht der erste Pixel ist
+			dieser = new LTDBPixel( davor->getThis() );
+		int ende = -1;
+		while( ende < 0 ) // Pixel laden
+		{
+			if( begin == 0 )
+				inF->read( &byte, 1 );
+			ende = dieser->addByte( byte, (char)begin ); // byte auswerten
+			begin = 0;
+		}
+		begin = ende;
+		if( begin == 8 )
+			begin = 0;
+		buff[ ( index % gr.x ) + ( index / gr.x ) * breite ] = dieser->zuFarbe();
+		if( davor )
+			davor = davor->release();
+		davor = dieser->getThis();
+		dieser = dieser->release();
+		++index;
 #ifdef WIN32
-        if( zF )
-            zF->aktionPlus();
+		if( zF )
+			zF->aktionPlus();
 #endif
-    }
-    if( davor )
-        davor = davor->release();
+	}
+	if( davor )
+		davor = davor->release();
 }
 
-void LTDBKörper::setBild( Bild *b ) // setzt das zu speichernde Bild
+void LTDBBody::setBild( Bild *b ) // setzt das zu speichernde Bild
 {
-    this->b->release();
-    this->b = b;
+	this->b->release();
+	this->b = b;
 }
 
 // constant 
-void LTDBKörper::speichern( FBalken *zF, std::ofstream *outF ) const // speichert Bild
-{
-    if( outF->is_open() )
-    {
-        LTDBPixel *letzter = 0; // Letzter gespeicherter Pixel
-        LTDBPixel *dieser = new LTDBPixel( 0 ); // Der momentan zu speichernde Pixel
-        int begin = 0, ende = 0; // Pixelbeginn, endposition in der byte variable
-        char byte = 0; // Der nächste byte der Datei
-        bool w = 0;
+void LTDBBody::speichern( FBalken *zF, std::ofstream *outF ) const // speichert Bild
+{
+	if( outF->is_open() )
+	{
+		LTDBPixel *letzter = 0; // Letzter gespeicherter Pixel
+		LTDBPixel *dieser = new LTDBPixel( 0 ); // Der momentan zu speichernde Pixel
+		int begin = 0, ende = 0; // Pixelbeginn, endposition in der byte variable
+		char byte = 0; // Der nächste byte der Datei
+		bool w = 0;
 #ifdef WIN32
-        if( zF )
-        {
-            zF->reset();
-            zF->setAktionAnzahl( gr.x * gr.y );
-        }
+		if( zF )
+		{
+			zF->reset();
+			zF->setAktionAnzahl( gr.x * gr.y );
+		}
 #endif
-        int *pBuff = b->getBuffer();
-        for( int i = 0; i < gr.x * gr.y; ++i ) // für jeden Pixel
-        {
-            if( !dieser ) // wenn es nicht der erste Pixel ist
-                dieser = new LTDBPixel( letzter->getThis() );
-            dieser->setFarbe( pBuff[ i ] ); // Farbe des Pixels setzen
-            dieser->komprimieren(); // Pixel komprimieren
-            ende = -1;
-            while( ende < 0 ) // byte befüllen
-            {
-                ende = dieser->getNextByte( byte, begin );
-                begin = 0;
-                w = 0;
-                if( ende == -1 || ende == 8 ) // byte speichern
-                {
-                    outF->write( &byte, 1 );
-                    w = 1;
-                    byte = 0;
-                }
-            } // Pixel fertig
-            begin = ende;
-            if( begin == 8 )
-                begin = 0;
-            if( letzter )
-                letzter->release();
-            letzter = dieser->getThis(); // dieser wird zu letzter
-            dieser = dieser->release();
+		int *pBuff = b->getBuffer();
+		for( int i = 0; i < gr.x * gr.y; ++i ) // für jeden Pixel
+		{
+			if( !dieser ) // wenn es nicht der erste Pixel ist
+				dieser = new LTDBPixel( letzter->getThis() );
+			dieser->setFarbe( pBuff[ i ] ); // Farbe des Pixels setzen
+			dieser->komprimieren(); // Pixel komprimieren
+			ende = -1;
+			while( ende < 0 ) // byte befüllen
+			{
+				ende = dieser->getNextByte( byte, begin );
+				begin = 0;
+				w = 0;
+				if( ende == -1 || ende == 8 ) // byte speichern
+				{
+					outF->write( &byte, 1 );
+					w = 1;
+					byte = 0;
+				}
+			} // Pixel fertig
+			begin = ende;
+			if( begin == 8 )
+				begin = 0;
+			if( letzter )
+				letzter->release();
+			letzter = dieser->getThis(); // dieser wird zu letzter
+			dieser = dieser->release();
 #ifdef WIN32
-            if( zF )
-                zF->aktionPlus();
+			if( zF )
+				zF->aktionPlus();
 #endif
-        }
-        if( letzter )
-            letzter = letzter->release();
-        if( !w )
-        {
-            outF->write( &byte, 1 ); // Das letzte byte speichern
-        }
-        outF->flush(); // dateistream speichern
-    }
+		}
+		if( letzter )
+			letzter = letzter->release();
+		if( !w )
+		{
+			outF->write( &byte, 1 ); // Das letzte byte speichern
+		}
+		outF->flush(); // dateistream speichern
+	}
 }
 
-Bild *LTDBKörper::getBild() const // gibt das geladene Bild zurück
+Bild *LTDBBody::getBild() const // gibt das geladene Bild zurück
 {
-    return b->getThis();
+	return b->getThis();
 }
 
-const Punkt &LTDBKörper::getGröße() const // gibt die größe des Bildes zurück
+const Punkt &LTDBBody::getSize() const // gibt die größe des Bildes zurück
 {
-    return gr;
+	return gr;
 }
 
 // Reference Counting
-LTDBKörper *LTDBKörper::getThis()
+LTDBBody *LTDBBody::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
-LTDBKörper *LTDBKörper::release()
+LTDBBody *LTDBBody::release()
 {
-    --ref;
-    if( ref < 1 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref < 1 )
+		delete this;
+	return 0;
 }
 
 // Inhalt det LTDBDatei Klasse aus Dateisystem.h
 // Konstruktor 
 LTDBDatei::LTDBDatei()
-    : pfad( new Text() ),
-    datKpf( 0 ),
-    ref( 1 )
+	: pfad( new Text() ),
+	datKpf( 0 ),
+	ref( 1 )
 {}
 
 // Destruktor 
 LTDBDatei::~LTDBDatei()
 {
-    if( pfad )
-        pfad->release();
-    if( datKpf )
-        datKpf->release();
+	if( pfad )
+		pfad->release();
+	if( datKpf )
+		datKpf->release();
 }
 
 // nicht constant 
 void LTDBDatei::setDatei( Text *pfad ) // Setzt den Pfad zur Datei
 { // Werte der eventuellen vorherigen Datei löschen
-    if( datKpf )
-        datKpf = datKpf->release();
-    // Pfad setzen
-    this->pfad->setText( pfad->getThis() );
-    pfad->release();
+	if( datKpf )
+		datKpf = datKpf->release();
+	// Pfad setzen
+	this->pfad->setText( pfad->getThis() );
+	pfad->release();
 }
 
 void LTDBDatei::erstellen() // Erstellt die Datei
 {
-    DateiPfadErstellen( pfad->getThis() );
-    std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary );
-    int i = 0;
-    outF->write( (char *)&i, 2 );
-    delete outF;
+	DateiPfadErstellen( pfad->getThis() );
+	std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary );
+	int i = 0;
+	outF->write( (char *)&i, 2 );
+	delete outF;
 }
 
 void LTDBDatei::leseDaten( FBalken *f ) // Die Klasse ließt alle Bilder kurz ein, und merkt sich, an welcher stelle in der Datei was ist
 { // Diese Funktion wird ein wenig Zeit in Anspruch nemen, dafüraber danach die anderen schneller machen
-    if( DateiExistiert( pfad->getThis() ) )
-    {
-        if( datKpf )
-            datKpf->release();
-        datKpf = new LTDBDateiKopf();
-        std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-        datKpf->laden( f, inF );
-        delete inF;
-    }
-}
-
-void LTDBDatei::löschen() // Löscht die Datei
-{
-    if( DateiExistiert( pfad->getThis() ) )
-    {
-        DateiLöschen( pfad->getThis() );
-        if( datKpf )
-            datKpf->release();
-    }
-}
-
-void LTDBDatei::löschen( FBalken *f, Text *name ) // Löscht ein Bild aus der Datei
-{
-    if( DateiExistiert( pfad->getThis() ) && name )
-    {
-        if( !datKpf )
-            leseDaten( 0 ); // Daten einlesen
-        // Prüfen, ob Datei nicht vorhanden
-        if( !datKpf )
-        {
-            name->release();
-            return;
-        }
-        int index = datKpf->getBildIndex( name->getThis() );
-        if( index == -1 ) // das bild existiert nicht
-        {
-            name->release();
-            return;
-        }
-        // Zwischenspeicherpfad ermitteln
-        Text *pf_tmp = new Text( pfad->getText() );
-        char c = '0';
-        pf_tmp->anhängen( "0" );
-        for( int i = 0; DateiExistiert( pf_tmp->getThis() ); ++i )
-        {
-            c = '0' + ( i % 10 );
-            if( ( i % 10 ) == 0 )
-                pf_tmp->anhängen( "$" );
-            pf_tmp->ersetzen( pf_tmp->anzahlVon( '0' - ( ( i - 1 ) % 10 ) ) - 1, '0' - ( ( i - 1 ) % 10 ), c );
-        }
-        std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // Alte Datei öffnen
-        inF->seekg( 0, std::ios::end );
-        __int64 Datlän = inF->tellg();
-        inF->seekg( 0, std::ios::beg );
-        std::ofstream *outF = new std::ofstream( pf_tmp->getText(), std::ios::binary ); // Neue Datei öffnen
-        if( inF->is_open() && outF->is_open() )
-        {
-            __int64 position = datKpf->getBildPosition( index );
-            datKpf->removeBild( index );
-            datKpf->speichern( outF );
-            LTDBDateiKopf *kpf_tmp = new LTDBDateiKopf();
-            kpf_tmp->laden( 0, inF );
-            kpf_tmp->release();
-            char byte = 0;
-            __int64 pos_minus = inF->tellg() - outF->tellp();
-            for( int i = 0; i < index; ++i )
-                datKpf->setBildPos( i, datKpf->getBildPosition( i ) - pos_minus );
-            // Bytes bis zur Datei kopieren
-            for( __int64 i = inF->tellg(); i < position; ++i )
-            {
-                inF->read( &byte, 1 );
-                outF->write( &byte, 1 );
-            } // zu löschendes Bild überspringen
-            LTDBKopf *delkpf = new LTDBKopf();
-            delkpf->laden( inF );
-            LTDBKörper *delkpr = new LTDBKörper( delkpf->getThis() );
-            delkpr->laden( f, inF );
-            delkpf = delkpf->release();
-            delkpr = delkpr->release(); // restliche bytes kopieren
-            pos_minus = inF->tellg() - outF->tellp();
-            for( __int64 i = (__int64)inF->tellg(); i < Datlän; ++i )
-            {
-                inF->read( &byte, 1 );
-                outF->write( &byte, 1 );
-            }
-            for( int i = index; i < datKpf->getbAnzahl(); ++i )
-                datKpf->setBildPos( i, datKpf->getBildPosition( i ) - pos_minus );
-            outF->seekp( 0, std::ios::beg );
-            datKpf->speichern( outF );
-            inF->close();
-            outF->close();
-            DateiLöschen( pfad->getThis() );
-            DateiUmbenennen( pf_tmp->getThis(), pfad->getThis() );
-        }
-        delete inF;
-        delete outF;
-        pf_tmp = pf_tmp->release();
-    }
-    if( name )
-        name = name->release();
+	if( DateiExistiert( pfad->getThis() ) )
+	{
+		if( datKpf )
+			datKpf->release();
+		datKpf = new LTDBDateiKopf();
+		std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+		datKpf->laden( f, inF );
+		delete inF;
+	}
+}
+
+void LTDBDatei::remove() // Löscht die Datei
+{
+	if( DateiExistiert( pfad->getThis() ) )
+	{
+		DateiRemove( pfad->getThis() );
+		if( datKpf )
+			datKpf->release();
+	}
+}
+
+void LTDBDatei::remove( FBalken *f, Text *name ) // Löscht ein Bild aus der Datei
+{
+	if( DateiExistiert( pfad->getThis() ) && name )
+	{
+		if( !datKpf )
+			leseDaten( 0 ); // Daten einlesen
+		// Prüfen, ob Datei nicht vorhanden
+		if( !datKpf )
+		{
+			name->release();
+			return;
+		}
+		int index = datKpf->getBildIndex( name->getThis() );
+		if( index == -1 ) // das bild existiert nicht
+		{
+			name->release();
+			return;
+		}
+		// Zwischenspeicherpfad ermitteln
+		Text *pf_tmp = new Text( pfad->getText() );
+		char c = '0';
+		pf_tmp->append( "0" );
+		for( int i = 0; DateiExistiert( pf_tmp->getThis() ); ++i )
+		{
+			c = (char)( '0' + ( i % 10 ) );
+			if( ( i % 10 ) == 0 )
+				pf_tmp->append( "$" );
+			pf_tmp->ersetzen( pf_tmp->anzahlVon( (char)( '0' - ( ( i - 1 ) % 10 ) ) ) - 1, (char)( '0' - ( ( i - 1 ) % 10 ) ), c );
+		}
+		std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // Alte Datei öffnen
+		inF->seekg( 0, std::ios::end );
+		__int64 datlen = inF->tellg();
+		inF->seekg( 0, std::ios::beg );
+		std::ofstream *outF = new std::ofstream( pf_tmp->getText(), std::ios::binary ); // Neue Datei öffnen
+		if( inF->is_open() && outF->is_open() )
+		{
+			__int64 position = datKpf->getBildPosition( index );
+			datKpf->removeBild( index );
+			datKpf->speichern( outF );
+			LTDBDateiKopf *kpf_tmp = new LTDBDateiKopf();
+			kpf_tmp->laden( 0, inF );
+			kpf_tmp->release();
+			char byte = 0;
+			__int64 pos_minus = inF->tellg() - outF->tellp();
+			for( int i = 0; i < index; ++i )
+				datKpf->setBildPos( i, datKpf->getBildPosition( i ) - pos_minus );
+			// Bytes bis zur Datei kopieren
+			for( __int64 i = inF->tellg(); i < position; ++i )
+			{
+				inF->read( &byte, 1 );
+				outF->write( &byte, 1 );
+			} // zu löschendes Bild überspringen
+			LTDBKopf *delkpf = new LTDBKopf();
+			delkpf->laden( inF );
+			LTDBBody *delkpr = new LTDBBody( delkpf->getThis() );
+			delkpr->laden( f, inF );
+			delkpf = delkpf->release();
+			delkpr = delkpr->release(); // restliche bytes kopieren
+			pos_minus = inF->tellg() - outF->tellp();
+			for( __int64 i = (__int64)inF->tellg(); i < datlen; ++i )
+			{
+				inF->read( &byte, 1 );
+				outF->write( &byte, 1 );
+			}
+			for( int i = index; i < datKpf->getbAnzahl(); ++i )
+				datKpf->setBildPos( i, datKpf->getBildPosition( i ) - pos_minus );
+			outF->seekp( 0, std::ios::beg );
+			datKpf->speichern( outF );
+			inF->close();
+			outF->close();
+			DateiRemove( pfad->getThis() );
+			DateiUmbenennen( pf_tmp->getThis(), pfad->getThis() );
+		}
+		delete inF;
+		delete outF;
+		pf_tmp = pf_tmp->release();
+	}
+	if( name )
+		name = name->release();
 }
 
 Bild *LTDBDatei::laden( FBalken *f, Text *name ) // Läd ein Bild aus der Datei
 {
-    if( name )
-    {
-        if( !DateiExistiert( pfad->getThis() ) )
-        {
-            name->release();
-            return 0;
-        }
-        if( !datKpf )
-            leseDaten( 0 );
-        LTDBKopf *k_tmp = new LTDBKopf();
-        k_tmp->Init( name->getThis(), Punkt( 0, 0 ) );
-        int index = datKpf->getBildIndex( k_tmp->getTitel() );
-        k_tmp->release();
-        if( index == -1 )
-        { // Fehlermeldung 
-            Text *fehler = new Text( "Das Bild " );
-            fehler->anhängen( name );
-            fehler->anhängen( " wurde nicht in der Datei\n" );
-            fehler->anhängen( pfad->getThis() );
-            fehler->anhängen( " gefunden!" );
-            std::cout << fehler << "\n";
-            return 0;
-        }
-        std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-        // Begin der zu ladenden Datei ermitteln
-        __int64 position = datKpf->getBildPosition( index );
-        inF->seekg( position, std::ios::beg );
-        LTDBKopf *kpf = new LTDBKopf();
-        kpf->laden( inF );
-        Text *t = kpf->getTitel();
-        if( !t->istGleich( name->getThis() ) )
-        { // Fehlermeldung 
-            t->release();
-            kpf->release();
-            inF->close();
-            delete inF;
-            Text *fehler = new Text( "Die Datei " );
-            fehler->anhängen( pfad );
-            fehler->anhängen( " ist ist keine gültige LTDB Datei!" );
+	if( name )
+	{
+		if( !DateiExistiert( pfad->getThis() ) )
+		{
+			name->release();
+			return 0;
+		}
+		if( !datKpf )
+			leseDaten( 0 );
+		LTDBKopf *k_tmp = new LTDBKopf();
+		k_tmp->Init( name->getThis(), Punkt( 0, 0 ) );
+		int index = datKpf->getBildIndex( k_tmp->getTitel() );
+		k_tmp->release();
+		if( index == -1 )
+		{ // Fehlermeldung 
+			Text *fehler = new Text( "Das Bild " );
+			fehler->append( name );
+			fehler->append( " wurde nicht in der Datei\n" );
+			fehler->append( pfad->getThis() );
+			fehler->append( " gefunden!" );
+			std::cout << fehler << "\n";
+			return 0;
+		}
+		std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+		// Begin der zu ladenden Datei ermitteln
+		__int64 position = datKpf->getBildPosition( index );
+		inF->seekg( position, std::ios::beg );
+		LTDBKopf *kpf = new LTDBKopf();
+		kpf->laden( inF );
+		Text *t = kpf->getTitel();
+		if( !t->istGleich( name->getThis() ) )
+		{ // Fehlermeldung 
+			t->release();
+			kpf->release();
+			inF->close();
+			delete inF;
+			Text *fehler = new Text( "Die Datei " );
+			fehler->append( pfad );
+			fehler->append( " ist ist keine gültige LTDB Datei!" );
 #ifdef WIN32
-            WMessageBox( 0, new Text( "Fehler" ), fehler, MB_ICONERROR );
+			WMessageBox( 0, new Text( "Fehler" ), fehler, MB_ICONERROR );
 #endif
-            name->release();
-            return 0;
-        }
-        t->release();
-        LTDBKörper *kpr = new LTDBKörper( kpf->getThis() );
-        kpr->laden( f, inF ); // Bild laden
-        Bild *ret = kpr->getBild();
-        kpr->release();
-        kpf->release();
-        inF->close();
-        delete inF;
-        name->release();
-        return ret;
-    }
-    return 0;
+			name->release();
+			return 0;
+		}
+		t->release();
+		LTDBBody *kpr = new LTDBBody( kpf->getThis() );
+		kpr->laden( f, inF ); // Bild laden
+		Bild *ret = kpr->getBild();
+		kpr->release();
+		kpf->release();
+		inF->close();
+		delete inF;
+		name->release();
+		return ret;
+	}
+	return 0;
 }
 
 int LTDBDatei::speichern( FBalken *f, Bild *bild, Text *name ) // Speichert ein Bild in die Datei
 {
-    int warn = -1;
-    if( name && bild )
-    {
-        if( DateiExistiert( pfad->getThis() ) )
-        {
-            if( !datKpf )
-                leseDaten( 0 );
-            int index = datKpf->getBildIndex( name->getThis() );
-            if( index == -1 )
-            {
-                warn = 0;
-                LTDBKopf *kpf = new LTDBKopf();
-                warn = kpf->Init( name->getThis(), bild->getGröße() );
-                if( datKpf->getBildIndex( kpf->getTitel() ) != -1 )
-                {
-                    std::cout << "Es existiert bereits ein Bild mit diesem Namen!\n";
-                    bild->release();
-                    name->release();
-                    kpf->release();
-                    return -1;
-                }
-                // zwischendateipfad suchen
-                Text *pf_tmp = new Text( pfad->getText() );
-                char c = '0';
-                pf_tmp->anhängen( "0" );
-                for( int i = 0; DateiExistiert( pf_tmp->getThis() ); ++i )
-                {
-                    c = '0' + ( i % 10 );
-                    if( ( i % 10 ) == 0 )
-                        pf_tmp->anhängen( "$" );
-                    pf_tmp->ersetzen( pf_tmp->anzahlVon( '0' - ( ( i - 1 ) % 10 ) ) - 1, '0' - ( ( i - 1 ) % 10 ), c );
-                }
-                std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-                inF->seekg( 0, std::ios::end );
-                __int64 datLen = inF->tellg();
-                inF->seekg( 0, std::ios::beg );
-                std::ofstream *outF = new std::ofstream( pf_tmp->getText(), std::ios::binary );
-                datKpf->addBild( kpf->getTitel() );
-                index = datKpf->getBildIndex( kpf->getTitel() );
-                datKpf->speichern( outF );
-                LTDBDateiKopf *kpf_tmp = new LTDBDateiKopf();
-                kpf_tmp->laden( 0, inF );
-                kpf_tmp->release();
-                __int64 pos_plus = outF->tellp() - inF->tellg();
-                for( int i = 0; i < index; ++i )
-                    datKpf->setBildPos( i, datKpf->getBildPosition( i ) + pos_plus );
-                datKpf->setBildPos( index, datLen + pos_plus );
-                outF->seekp( 0, std::ios::beg );
-                datKpf->speichern( outF );
-                char byte = 0;
-                for( __int64 i = inF->tellg(); i < datLen; ++i )
-                {
-                    inF->read( &byte, 1 );
-                    outF->write( &byte, 1 );
-                }
-                kpf->speichern( outF ); // Bild Kopf speichern
-                LTDBKörper *kpr = new LTDBKörper( kpf->getThis() );
-                kpr->setBild( bild->getThis() );
-                kpr->speichern( f, outF ); // Bild speichern
-                kpf->release();
-                kpr->release();
-                inF->close();
-                outF->close();
-                delete inF;
-                delete outF;
-                DateiLöschen( pfad->getThis() );
-                DateiUmbenennen( pf_tmp, pfad->getThis() );
-            }
-        }
-    }
-    if( name )
-        name->release();
-    if( bild )
-        bild->release();
-    return warn;
+	int warn = -1;
+	if( name && bild )
+	{
+		if( DateiExistiert( pfad->getThis() ) )
+		{
+			if( !datKpf )
+				leseDaten( 0 );
+			int index = datKpf->getBildIndex( name->getThis() );
+			if( index == -1 )
+			{
+				warn = 0;
+				LTDBKopf *kpf = new LTDBKopf();
+				warn = kpf->Init( name->getThis(), bild->getSize() );
+				if( datKpf->getBildIndex( kpf->getTitel() ) != -1 )
+				{
+					std::cout << "Es existiert bereits ein Bild mit diesem Namen!\n";
+					bild->release();
+					name->release();
+					kpf->release();
+					return -1;
+				}
+				// zwischendateipfad suchen
+				Text *pf_tmp = new Text( pfad->getText() );
+				char c = '0';
+				pf_tmp->append( "0" );
+				for( int i = 0; DateiExistiert( pf_tmp->getThis() ); ++i )
+				{
+					c = (char)( '0' + ( i % 10 ) );
+					if( ( i % 10 ) == 0 )
+						pf_tmp->append( "$" );
+					pf_tmp->ersetzen( pf_tmp->anzahlVon( (char)( '0' - ( ( i - 1 ) % 10 ) ) ) - 1, (char)( '0' - ( ( i - 1 ) % 10 ) ), c );
+				}
+				std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+				inF->seekg( 0, std::ios::end );
+				__int64 datLen = inF->tellg();
+				inF->seekg( 0, std::ios::beg );
+				std::ofstream *outF = new std::ofstream( pf_tmp->getText(), std::ios::binary );
+				datKpf->addBild( kpf->getTitel() );
+				index = datKpf->getBildIndex( kpf->getTitel() );
+				datKpf->speichern( outF );
+				LTDBDateiKopf *kpf_tmp = new LTDBDateiKopf();
+				kpf_tmp->laden( 0, inF );
+				kpf_tmp->release();
+				__int64 pos_plus = outF->tellp() - inF->tellg();
+				for( int i = 0; i < index; ++i )
+					datKpf->setBildPos( i, datKpf->getBildPosition( i ) + pos_plus );
+				datKpf->setBildPos( index, datLen + pos_plus );
+				outF->seekp( 0, std::ios::beg );
+				datKpf->speichern( outF );
+				char byte = 0;
+				for( __int64 i = inF->tellg(); i < datLen; ++i )
+				{
+					inF->read( &byte, 1 );
+					outF->write( &byte, 1 );
+				}
+				kpf->speichern( outF ); // Bild Kopf speichern
+				LTDBBody *kpr = new LTDBBody( kpf->getThis() );
+				kpr->setBild( bild->getThis() );
+				kpr->speichern( f, outF ); // Bild speichern
+				kpf->release();
+				kpr->release();
+				inF->close();
+				outF->close();
+				delete inF;
+				delete outF;
+				DateiRemove( pfad->getThis() );
+				DateiUmbenennen( pf_tmp, pfad->getThis() );
+			}
+		}
+	}
+	if( name )
+		name->release();
+	if( bild )
+		bild->release();
+	return warn;
 }
 
 RCArray< Text > *LTDBDatei::zBildListe() // Listet alle Bilder in der datei auf
 {
-    if( !datKpf )
-        leseDaten( 0 );
-    if( datKpf )
-        return datKpf->zBildListe();
-    return 0;
+	if( !datKpf )
+		leseDaten( 0 );
+	if( datKpf )
+		return datKpf->zBildListe();
+	return 0;
 }
 
 // constant 
 Text *LTDBDatei::getPfad() const // Gibt den Pfad zur Datei zurück
 {
-    return pfad->getThis();
+	return pfad->getThis();
 }
 
 int LTDBDatei::getBildAnzahl() const
 {
-    if( !datKpf )
-        return 0;
-    return datKpf->getbAnzahl();
+	if( !datKpf )
+		return 0;
+	return datKpf->getbAnzahl();
 }
 
 bool LTDBDatei::istOffen() const // Prüft, ob die Datei geöffnet ist
 {
-    if( !pfad )
-        return 0;
-    return DateiExistiert( pfad->getThis() );
+	if( !pfad )
+		return 0;
+	return DateiExistiert( pfad->getThis() );
 }
 
 // Reference Counting
 LTDBDatei *LTDBDatei::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDBDatei *LTDBDatei::release()
 {
-    --ref;
-    if( ref < 1 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref < 1 )
+		delete this;
+	return 0;
 }
 #ifdef WIN32
 // LTDS Dateivormat 
 // Inhalt der LTDSPixel Klasse aus DateiSystem.h
 // Konstruktor 
 LTDSPixel::LTDSPixel( LTDSPixel *davor )
-    : ref( 1 ),
-    index( 0 ),
-    iA( 0 ),
-    miA( 8 ),
-    maxIndex( 1 ),
-    änder( 0 ),
-    änderA( 0 ),
-    komp( 0 ),
-    alpha( 0 ),
-    davor( davor )
+	: ref( 1 ),
+	index( 0 ),
+	iA( 0 ),
+	miA( 8 ),
+	maxIndex( 1 ),
+	änder( 0 ),
+	änderA( 0 ),
+	komp( 0 ),
+	alpha( 0 ),
+	davor( davor )
 {}
 
 // Destruktor 
 LTDSPixel::~LTDSPixel()
 {
-    if( davor )
-        davor->release();
+	if( davor )
+		davor->release();
 }
 
 // nicht constant 
 // zum Laden gedacht 
 bool LTDSPixel::addBitZuFarbe( unsigned char bit )
 {
-    if( änderA && iA != miA ) // Das Bit gehört zu Alpha
-    {
-        alpha |= ( ( bit & Bits( 1 ) ) ) << ( 7 - komp - iA );
-        ++iA;
-    }
-    else // Das Bit gehört zum nächsten Pixel
-        return false;
-    return true;
+	if( änderA && iA != miA ) // Das Bit gehört zu Alpha
+	{
+		alpha |= ( ( bit & Bits( 1 ) ) ) << ( 7 - komp - iA );
+		++iA;
+	}
+	else // Das Bit gehört zum nächsten Pixel
+		return false;
+	return true;
 }
 
 char LTDSPixel::addByte( char byte, char begin ) // gibt ende des Pixels zurück, -1 wenn nicht zu ende
 {
-    if( begin >= 8 || begin < 0 )
-        return -1;
-    for( int i = begin; i < 8; ++i )
-    {
-        switch( index )
-        {
-        case 0:
-            // Das erste Bit eines Pixels speichert, ob sich an der Komprimierung etwas änderte
-            änder = ( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) == 1;
-            if( !änder ) // Ändert sich nichts an der Komprimierung, so werden die Werte vom vorherigen Pixel übernommen
-            {
-                if( !davor ) // Die Datei ist beschädigt ( Der erste Pixel kann nicht von dem davor Übernemen )
-                {
-                    MessageBox( NULL, "Fehler, die Bilddatei ist beschädigt", "Fehler", MB_ICONERROR );
-                    exit( 0 );
-                }
-                änderA = davor->getÄnderA();
-                komp = davor->getKomp();
-                miA -= komp;
-                if( !änderA )
-                    alpha = davor->getA();
-                maxIndex += änderA * ( 8 - komp ); // Bestimmung der Länge
-                // des Pixels in Bits. Jede Farbe hat von grund auf 8 Bits, durch komprimierung kanns kleiner sein
-            }
-            else
-                maxIndex += 4; // Da der Pixel nicht die Werte des vorherigen übernimmt, wird er um 4 Bits größer
-            break;
-        case 1: // Das zweite Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
-                änderA = ( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) == 1;
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 2: // Das sechste Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
-                komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) << 2;
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 3: // Das siebte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
-                komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) << 1;
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        case 4: // Das achte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
-            if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
-            {
-                komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & Bits( 1 ) );
-                // Das war das letzte Komprimierungsbit
-                // Komprimierung auswerten 
-                miA -= komp;
-                if( !änderA )
-                    alpha = davor->getA();
-                maxIndex += änderA * ( 8 - komp ); // Bitlänge des Pixels
-            }
-            else
-            {
-                if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                    return i;
-            }
-            break;
-        default: // Die restlichen Bits speichern alle die Farbwerte des Pixels
-            if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
-                return i;
-            break;
-        }
-        ++index;
-        if( index >= maxIndex )
-        {
-            if( davor )
-            {
-                if( änderA )
-                    alpha = davor->getA() + alpha;
-                davor = davor->release();
-            }
-            return i + 1;
-        }
-    }
-    return -1;
+	if( begin >= 8 || begin < 0 )
+		return -1;
+	for( int i = begin; i < 8; ++i )
+	{
+		switch( index )
+		{
+		case 0:
+			// Das erste Bit eines Pixels speichert, ob sich an der Komprimierung etwas änderte
+			änder = ( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) == 1;
+			if( !änder ) // Ändert sich nichts an der Komprimierung, so werden die Werte vom vorherigen Pixel übernommen
+			{
+				if( !davor ) // Die Datei ist beschädigt ( Der erste Pixel kann nicht von dem davor Übernemen )
+				{
+					MessageBox( NULL, "Fehler, die Bilddatei ist beschädigt", "Fehler", MB_ICONERROR );
+					exit( 0 );
+				}
+				änderA = davor->getÄnderA();
+				komp = davor->getKomp();
+				miA -= komp;
+				if( !änderA )
+					alpha = davor->getA();
+				maxIndex += änderA * ( 8 - komp ); // Bestimmung der Länge
+				// des Pixels in Bits. Jede Farbe hat von grund auf 8 Bits, durch komprimierung kanns kleiner sein
+			}
+			else
+				maxIndex += 4; // Da der Pixel nicht die Werte des vorherigen übernimmt, wird er um 4 Bits größer
+			break;
+		case 1: // Das zweite Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
+				änderA = ( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) == 1;
+			else
+			{
+				if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
+					return i;
+			}
+			break;
+		case 2: // Das sechste Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
+				komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) << 2;
+			else
+			{
+				if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
+					return i;
+			}
+			break;
+		case 3: // Das siebte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
+				komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & Bits( 1 ) ) << 1;
+			else
+			{
+				if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
+					return i;
+			}
+			break;
+		case 4: // Das achte Bit eines Pixels speichert entweder die Komprimierungsart, oder schon die Farbe
+			if( änder ) // Das Bit gehört zu den 4 Komprimierungsbits
+			{
+				komp |= (unsigned char)( ( byte >> ( 7 - i ) ) & Bits( 1 ) );
+				// Das war das letzte Komprimierungsbit
+				// Komprimierung auswerten 
+				miA -= komp;
+				if( !änderA )
+					alpha = davor->getA();
+				maxIndex += änderA * ( 8 - komp ); // Bitlänge des Pixels
+			}
+			else
+			{
+				if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
+					return i;
+			}
+			break;
+		default: // Die restlichen Bits speichern alle die Farbwerte des Pixels
+			if( !addBitZuFarbe( byte >> ( 7 - i ) ) ) // Das Bit gehört zur Farbe
+				return i;
+			break;
+		}
+		++index;
+		if( index >= maxIndex )
+		{
+			if( davor )
+			{
+				if( änderA )
+					alpha = davor->getA() + alpha;
+				davor = davor->release();
+			}
+			return i + 1;
+		}
+	}
+	return -1;
 }
 
 // zum speichern gedacht 
 void LTDSPixel::setAlpha( unsigned char alpha ) // setzt die Farbe des Pixels
 {
-    this->alpha = alpha;
+	this->alpha = alpha;
 }
 
 void LTDSPixel::Komp() // Komprimiert den Pixel
 {
-    maxIndex = 1;
-    if( !davor )
-    {// Das ist der erste Pixel
-        änder = 1;
-        änderA = 1;
-        maxIndex += 4;
-        miA = getBits( alpha );
-    }
-    else
-    { // Es wird die differenz zum vorrigen Pixel gespeichert
-        miA = getBits( alpha - davor->getA() );
-        if( alpha != davor->getA() )
-            änderA = 1;
-        else
-            änderA = 0;
-    }// Prüfen ob sich etwas ändert
-    if( !miA && änderA )
-        ++miA;
-    komp = 8 - miA;
-    maxIndex += änderA * miA;
-    if( davor )
-    {
-        if( änderA != davor->getÄnderA() ||
-            komp != davor->getKomp() )
-        { // Es ändert sich etwas
-            änder = 1;
-            maxIndex += 4;
-        }
-        else
-        { // Es ändert sich nichts
-            änder = 0;
-        }
-    }
+	maxIndex = 1;
+	if( !davor )
+	{// Das ist der erste Pixel
+		änder = 1;
+		änderA = 1;
+		maxIndex += 4;
+		miA = getBits( alpha );
+	}
+	else
+	{ // Es wird die differenz zum vorrigen Pixel gespeichert
+		miA = getBits( alpha - davor->getA() );
+		if( alpha != davor->getA() )
+			änderA = 1;
+		else
+			änderA = 0;
+	}// Prüfen ob sich etwas ändert
+	if( !miA && änderA )
+		++miA;
+	komp = 8 - miA;
+	maxIndex += änderA * miA;
+	if( davor )
+	{
+		if( änderA != davor->getÄnderA() ||
+			komp != davor->getKomp() )
+		{ // Es ändert sich etwas
+			änder = 1;
+			maxIndex += 4;
+		}
+		else
+		{ // Es ändert sich nichts
+			änder = 0;
+		}
+	}
 }
 
 bool LTDSPixel::getNextFarbeBit( char &byte, int i )
 {
-    unsigned char AA = alpha;
-    if( davor )
-    {
-        AA -= davor->getA();
-    }
-    if( änderA && iA != miA ) // Das Bit gehört zu Alpha
-    {
-        byte |= ( ( AA >> ( 7 - komp - iA ) ) & Bits( 1 ) ) << ( 7 - i );
-        ++iA;
-    }
-    else // Der Pixel ist bereits zu ende
-        return false;
-    return true;
+	unsigned char AA = alpha;
+	if( davor )
+	{
+		AA -= davor->getA();
+	}
+	if( änderA && iA != miA ) // Das Bit gehört zu Alpha
+	{
+		byte |= ( ( AA >> ( 7 - komp - iA ) ) & Bits( 1 ) ) << ( 7 - i );
+		++iA;
+	}
+	else // Der Pixel ist bereits zu ende
+		return false;
+	return true;
 }
 
 char LTDSPixel::getNextByte( char &byte, int bbegin ) // Gibt die nächsten Bits Zurück, -1 wenn der Pixel nicht zu ende ist
 {
-    // bbegin gibt an wohin in die byte-variable geschrieben werden soll
-    // die Funktion gibt das ende des Pixels in der byte-variable zurück
-    // -1 heißt, dass der Pixel nicht zu ende ist
-    for( int i = bbegin; i < 8; ++i )
-    {
-        switch( index )
-        {
-        case 0: // Das erste Bit des Pixels speichert, ob sich etwas an der Komprimierung ändert
-            byte |= ( (int)änder & Bits( 1 ) ) << ( 7 - i );
-            break;
-        case 1: // Das zweite Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( (int)änderA & Bits( 1 ) ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 2: // Das zweite Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( ( komp >> 2 ) & Bits( 1 ) ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 3: // Das dritte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( ( komp >> 1 ) & Bits( 1 ) ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        case 4: // Das vierte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
-            if( änder ) // Komprimierung
-                byte |= ( komp & Bits( 1 ) ) << ( 7 - i );
-            else // Farbe
-            {
-                if( !getNextFarbeBit( byte, i ) )
-                    return i;
-            }
-            break;
-        default: // Die restlichen Bits speichern die Farbe des Pixels
-            if( !getNextFarbeBit( byte, i ) )
-                return i;
-            break;
-        }
-        ++index;
-        if( index >= maxIndex )
-        {
-            if( davor )
-                davor = davor->release();
-            return i + 1;
-        }
-    }
-    return -1;
+	// bbegin gibt an wohin in die byte-variable geschrieben werden soll
+	// die Funktion gibt das ende des Pixels in der byte-variable zurück
+	// -1 heißt, dass der Pixel nicht zu ende ist
+	for( int i = bbegin; i < 8; ++i )
+	{
+		switch( index )
+		{
+		case 0: // Das erste Bit des Pixels speichert, ob sich etwas an der Komprimierung ändert
+			byte |= ( (int)änder & Bits( 1 ) ) << ( 7 - i );
+			break;
+		case 1: // Das zweite Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( änder ) // Komprimierung
+				byte |= ( (int)änderA & Bits( 1 ) ) << ( 7 - i );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return i;
+			}
+			break;
+		case 2: // Das zweite Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( änder ) // Komprimierung
+				byte |= ( ( komp >> 2 ) & Bits( 1 ) ) << ( 7 - i );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return i;
+			}
+			break;
+		case 3: // Das dritte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( änder ) // Komprimierung
+				byte |= ( ( komp >> 1 ) & Bits( 1 ) ) << ( 7 - i );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return i;
+			}
+			break;
+		case 4: // Das vierte Bit des Pixels speichert entweder schon die Farbe oder die Komprimierung
+			if( änder ) // Komprimierung
+				byte |= ( komp & Bits( 1 ) ) << ( 7 - i );
+			else // Farbe
+			{
+				if( !getNextFarbeBit( byte, i ) )
+					return i;
+			}
+			break;
+		default: // Die restlichen Bits speichern die Farbe des Pixels
+			if( !getNextFarbeBit( byte, i ) )
+				return i;
+			break;
+		}
+		++index;
+		if( index >= maxIndex )
+		{
+			if( davor )
+				davor = davor->release();
+			return i + 1;
+		}
+	}
+	return -1;
 }
 
 // constant 
 unsigned char LTDSPixel::getKomp() const // hat sich die Komprimierung geändert
 {
-    return komp;
+	return komp;
 }
 
 bool LTDSPixel::getÄnderA() const // gibt zurück, ob sich der alphawert ändert
 {
-    return änderA;
+	return änderA;
 }
 
 unsigned char LTDSPixel::getA() const // gibt Alpha zurück
 {
-    return alpha;
+	return alpha;
 }
 
 // Reference Counting 
 LTDSPixel *LTDSPixel::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDSPixel *LTDSPixel::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDSDateiKopf Klasse aus Dateisystem.h
 // Konstruktor 
 LTDSDateiKopf::LTDSDateiKopf()
-    : ref( 1 ),
-    sganzahl( 0 ),
-    gr( 0 ),
-    pos( 0 )
+	: ref( 1 ),
+	sganzahl( 0 ),
+	gr( 0 ),
+	pos( 0 )
 {}
 
 // Destruktor 
 LTDSDateiKopf::~LTDSDateiKopf()
 {
-    delete[]gr;
-    delete[]pos;
+	delete[]gr;
+	delete[]pos;
 }
 
 // nicht constant 
 void LTDSDateiKopf::laden( std::ifstream *inF ) // Lät aus inF
 {
-    if( inF->good() && inF->is_open() )
-    {
-        inF->read( (char *)&sganzahl, 1 );
-        delete[]gr;
-        delete[]pos;
-        gr = new unsigned char[ sganzahl + 1 ];
-        pos = new int[ sganzahl + 1 ];
-        gr[ sganzahl ] = 0;
-        pos[ sganzahl ] = 0;
-        for( int i = 0; i < sganzahl; ++i )
-        {
-            inF->read( (char*)&gr[ i ], 1 );
-            inF->read( (char*)&pos[ i ], 4 );
-        }
-    }
+	if( inF->good() && inF->is_open() )
+	{
+		inF->read( (char *)&sganzahl, 1 );
+		delete[]gr;
+		delete[]pos;
+		gr = new unsigned char[ sganzahl + 1 ];
+		pos = new int[ sganzahl + 1 ];
+		gr[ sganzahl ] = 0;
+		pos[ sganzahl ] = 0;
+		for( int i = 0; i < sganzahl; ++i )
+		{
+			inF->read( (char*)&gr[ i ], 1 );
+			inF->read( (char*)&pos[ i ], 4 );
+		}
+	}
 }
 
 void LTDSDateiKopf::addSG( char sg ) // Schriftgröße hinzufügen
 {
-    ++sganzahl;
-    unsigned char *gr_tmp = gr;
-    int *pos_tmp = pos;
-    gr = new unsigned char[ sganzahl + 1 ];
-    pos = new int[ sganzahl + 1 ];
-    gr[ sganzahl ] = 0;
-    pos[ sganzahl ] = 0;
-    if( sganzahl - 1 > 0 )
-    {
-        memcpy( gr, gr_tmp, 1 * ( sganzahl - 1 ) );
-        memcpy( pos, pos_tmp, 4 * ( sganzahl - 1 ) );
-    }
-    delete[]gr_tmp;
-    delete[]pos_tmp;
-    pos[ sganzahl - 1 ] = 0;
-    gr[ sganzahl - 1 ] = sg;
+	++sganzahl;
+	unsigned char *gr_tmp = gr;
+	int *pos_tmp = pos;
+	gr = new unsigned char[ sganzahl + 1 ];
+	pos = new int[ sganzahl + 1 ];
+	gr[ sganzahl ] = 0;
+	pos[ sganzahl ] = 0;
+	if( sganzahl - 1 > 0 )
+	{
+		memcpy( gr, gr_tmp, 1 * ( sganzahl - 1 ) );
+		memcpy( pos, pos_tmp, 4 * ( sganzahl - 1 ) );
+	}
+	delete[]gr_tmp;
+	delete[]pos_tmp;
+	pos[ sganzahl - 1 ] = 0;
+	gr[ sganzahl - 1 ] = sg;
 }
 
 void LTDSDateiKopf::removeSG( char sg ) // Schriftgröße entfernen
 {
-    bool hatsg = 0;
-    int sgpos = 0;
-    for( int i = 0; i < sganzahl; ++i )
-    {
-        hatsg = gr[ i ] == sg;
-        sgpos = i;
-        if( hatsg )
-            break;
-    }
-    if( hatsg )
-    {
-        --sganzahl;
-        unsigned char *gr_tmp = gr;
-        int *pos_tmp = pos;
-        gr = new unsigned char[ sganzahl + 1 ];
-        pos = new int[ sganzahl + 1 ];
-        gr[ sganzahl ] = 0;
-        pos[ sganzahl ] = 0;
-        for( int i = 0; i < sgpos; ++i )
-        {
-            gr[ i ] = gr_tmp[ i ];
-            pos[ i ] = pos_tmp[ i ];
-        }
-        for( int i = sgpos + 1; i < sganzahl; ++i )
-        {
-            gr[ i - 1 ] = gr_tmp[ i ];
-            pos[ i - 1 ] = pos_tmp[ i ];
-        }
-        delete[]gr_tmp;
-        delete[]pos_tmp;
-    }
+	bool hatsg = 0;
+	int sgpos = 0;
+	for( int i = 0; i < sganzahl; ++i )
+	{
+		hatsg = gr[ i ] == sg;
+		sgpos = i;
+		if( hatsg )
+			break;
+	}
+	if( hatsg )
+	{
+		--sganzahl;
+		unsigned char *gr_tmp = gr;
+		int *pos_tmp = pos;
+		gr = new unsigned char[ sganzahl + 1 ];
+		pos = new int[ sganzahl + 1 ];
+		gr[ sganzahl ] = 0;
+		pos[ sganzahl ] = 0;
+		for( int i = 0; i < sgpos; ++i )
+		{
+			gr[ i ] = gr_tmp[ i ];
+			pos[ i ] = pos_tmp[ i ];
+		}
+		for( int i = sgpos + 1; i < sganzahl; ++i )
+		{
+			gr[ i - 1 ] = gr_tmp[ i ];
+			pos[ i - 1 ] = pos_tmp[ i ];
+		}
+		delete[]gr_tmp;
+		delete[]pos_tmp;
+	}
 }
 
 // constant 
 void LTDSDateiKopf::speichern( std::ofstream *outF ) const // Speichert nach outF
 {
-    if( outF->is_open() && outF->good() )
-    {
-        outF->write( (char*)&sganzahl, 1 );
-        for( int i = 0; i < sganzahl; ++i )
-        {
-            outF->write( (char*)&gr[ i ], 1 );
-            outF->write( (char*)&pos[ i ], 4 );
-        }
-    }
+	if( outF->is_open() && outF->good() )
+	{
+		outF->write( (char*)&sganzahl, 1 );
+		for( int i = 0; i < sganzahl; ++i )
+		{
+			outF->write( (char*)&gr[ i ], 1 );
+			outF->write( (char*)&pos[ i ], 4 );
+		}
+	}
 }
 
 unsigned char *LTDSDateiKopf::getSchriftGrößeList() const // gibt eine Liste mit gespeicherten Schriftgrößen zurück
 {
-    return gr;
+	return gr;
 }
 
 int *LTDSDateiKopf::getPositionList() const // gibt eine Positionsliste der gespeicherten Schriftgrößen zurück
 {
-    return pos;
+	return pos;
 }
 
 int LTDSDateiKopf::getSchriftGrößeAnzahl() const // gibt die Anzahl der gespeicherten Schriftgrößen zurück
 {
-    return sganzahl;
+	return sganzahl;
 }
 
 // Reference Counting 
 LTDSDateiKopf *LTDSDateiKopf::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDSDateiKopf *LTDSDateiKopf::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDSSchriftKopf Klasse aus Dateisystem.h
 // Konstruktor 
 LTDSSchriftKopf::LTDSSchriftKopf()
-    : ref( 1 ),
-    schriftGröße( 0 ),
-    zeichen( 0 ),
-    pos( 0 ),
-    zeichenAnzahl( 0 )
+	: ref( 1 ),
+	schriftSize( 0 ),
+	zeichen( 0 ),
+	pos( 0 ),
+	zeichenAnzahl( 0 )
 {}
 
 // Destruktor 
 LTDSSchriftKopf::~LTDSSchriftKopf()
 {
-    delete[]pos;
-    delete[]zeichen;
+	delete[]pos;
+	delete[]zeichen;
 }
 
 // nicht constant 
 void LTDSSchriftKopf::laden( std::ifstream *inF ) // läht von inF
 {
-    if( inF->good() && inF->is_open() )
-    {
-        inF->read( (char*)&schriftGröße, 1 );
-        inF->read( (char*)&zeichenAnzahl, 1 );
-        delete[]pos;
-        delete[]zeichen;
-        zeichen = new unsigned char[ zeichenAnzahl ];
-        pos = new int[ zeichenAnzahl + 1 ];
-        for( int i = 0; i < zeichenAnzahl; ++i )
-        {
-            inF->read( (char*)&zeichen[ i ], 1 );
-            inF->read( (char*)&pos[ i ], 4 );
-        }
-        pos[ zeichenAnzahl ] = 0;
-    }
+	if( inF->good() && inF->is_open() )
+	{
+		inF->read( (char*)&schriftSize, 1 );
+		inF->read( (char*)&zeichenAnzahl, 1 );
+		delete[]pos;
+		delete[]zeichen;
+		zeichen = new unsigned char[ zeichenAnzahl ];
+		pos = new int[ zeichenAnzahl + 1 ];
+		for( int i = 0; i < zeichenAnzahl; ++i )
+		{
+			inF->read( (char*)&zeichen[ i ], 1 );
+			inF->read( (char*)&pos[ i ], 4 );
+		}
+		pos[ zeichenAnzahl ] = 0;
+	}
 }
 
 void LTDSSchriftKopf::setSchriftgröße( unsigned char gr ) // setze schriftgröße
 {
-    schriftGröße = gr;
+	schriftSize = gr;
 }
 
 void LTDSSchriftKopf::setZeichenAlphabet( Alphabet *alphabet ) // setzt die Zeichen von alphabet
 {
-    int count = 0;
-    for( int i = 0; i < 256; ++i )
-    {
-        Buchstabe *zeich = alphabet->zBuchstabe( i );
-        if( zeich )
-            ++count;
-    }
-    delete[]zeichen;
-    delete[]pos;
-    zeichen = new unsigned char[ count ];
-    pos = new int[ count + 1 ];
-    pos[ count ] = 0;
-    zeichenAnzahl = count;
-    count = 0;
-    for( int i = 0; i < 256; ++i )
-    {
-        Buchstabe *zeich = alphabet->getBuchstabe( i );
-        if( zeich )
-        {
-            zeichen[ count ] = i;
-            pos[ count ] = 0;
-            ++count;
-            zeich->release();
-        }
-    }
-    schriftGröße = alphabet->getSchriftgröße();
-    alphabet->release();
+	int count = 0;
+	for( int i = 0; i < 256; ++i )
+	{
+		Buchstabe *zeich = alphabet->zBuchstabe( i );
+		if( zeich )
+			++count;
+	}
+	delete[]zeichen;
+	delete[]pos;
+	zeichen = new unsigned char[ count ];
+	pos = new int[ count + 1 ];
+	pos[ count ] = 0;
+	zeichenAnzahl = count;
+	count = 0;
+	for( int i = 0; i < 256; ++i )
+	{
+		Buchstabe *zeich = alphabet->getBuchstabe( i );
+		if( zeich )
+		{
+			zeichen[ count ] = i;
+			pos[ count ] = 0;
+			++count;
+			zeich->release();
+		}
+	}
+	schriftSize = alphabet->getSchriftSize();
+	alphabet->release();
 }
 
 void LTDSSchriftKopf::addZeichen( unsigned char zeichen ) // Zeichen hinzufügen
 {
-    ++zeichenAnzahl;
-    unsigned char *zeichen_tmp = this->zeichen;
-    int *pos_tmp = pos;
-    this->zeichen = new unsigned char[ zeichenAnzahl ];
-    pos = new int[ zeichenAnzahl + 1 ];
-    if( zeichenAnzahl - 1 > 0 )
-    {
-        memcpy( this->zeichen, zeichen_tmp, 1 * ( zeichenAnzahl - 1 ) );
-        memcpy( pos, pos_tmp, 4 * ( zeichenAnzahl - 1 ) );
-    }
-    delete[]zeichen_tmp;
-    delete[]pos_tmp;
-    this->zeichen[ zeichenAnzahl - 1 ] = zeichen;
-    pos[ zeichenAnzahl - 1 ] = 0;
-    pos[ zeichenAnzahl ] = 0;
+	++zeichenAnzahl;
+	unsigned char *zeichen_tmp = this->zeichen;
+	int *pos_tmp = pos;
+	this->zeichen = new unsigned char[ zeichenAnzahl ];
+	pos = new int[ zeichenAnzahl + 1 ];
+	if( zeichenAnzahl - 1 > 0 )
+	{
+		memcpy( this->zeichen, zeichen_tmp, 1 * ( zeichenAnzahl - 1 ) );
+		memcpy( pos, pos_tmp, 4 * ( zeichenAnzahl - 1 ) );
+	}
+	delete[]zeichen_tmp;
+	delete[]pos_tmp;
+	this->zeichen[ zeichenAnzahl - 1 ] = zeichen;
+	pos[ zeichenAnzahl - 1 ] = 0;
+	pos[ zeichenAnzahl ] = 0;
 }
 
 void LTDSSchriftKopf::removeZeichen( unsigned char zeich ) // Zeichen entfernen
 {
-    bool hatZ = 0;
-    int zPos = 0;
-    for( int i = 0; i < zeichenAnzahl; ++i )
-    {
-        hatZ = zeichen[ i ] == zeich;
-        zPos = i;
-        if( hatZ )
-            break;
-    }
-    if( hatZ )
-    {
-        --zeichenAnzahl;
-        unsigned char *zeichen_tmp = zeichen;
-        int *pos_tmp = pos;
-        zeichen = new unsigned char[ zeichenAnzahl ];
-        pos = new int[ zeichenAnzahl + 1 ];
-        for( int i = 0; i < zPos; ++i )
-        {
-            zeichen[ i ] = zeichen_tmp[ i ];
-            pos[ i ] = pos_tmp[ i ];
-        }
-        for( int i = zPos + 1; i <= zeichenAnzahl; ++i )
-        {
-            zeichen[ i - 1 ] = zeichen_tmp[ i ];
-            pos[ i - 1 ] = pos_tmp[ i ];
-        }
-        pos[ zeichenAnzahl ] = 0;
-        delete[]zeichen_tmp;
-        delete[]pos_tmp;
-    }
+	bool hatZ = 0;
+	int zPos = 0;
+	for( int i = 0; i < zeichenAnzahl; ++i )
+	{
+		hatZ = zeichen[ i ] == zeich;
+		zPos = i;
+		if( hatZ )
+			break;
+	}
+	if( hatZ )
+	{
+		--zeichenAnzahl;
+		unsigned char *zeichen_tmp = zeichen;
+		int *pos_tmp = pos;
+		zeichen = new unsigned char[ zeichenAnzahl ];
+		pos = new int[ zeichenAnzahl + 1 ];
+		for( int i = 0; i < zPos; ++i )
+		{
+			zeichen[ i ] = zeichen_tmp[ i ];
+			pos[ i ] = pos_tmp[ i ];
+		}
+		for( int i = zPos + 1; i <= zeichenAnzahl; ++i )
+		{
+			zeichen[ i - 1 ] = zeichen_tmp[ i ];
+			pos[ i - 1 ] = pos_tmp[ i ];
+		}
+		pos[ zeichenAnzahl ] = 0;
+		delete[]zeichen_tmp;
+		delete[]pos_tmp;
+	}
 }
 
 // constant 
 void LTDSSchriftKopf::speichern( std::ofstream *outF ) const // speichert nach outF
 {
-    if( outF->good() && outF->is_open() )
-    {
-        outF->write( (char*)&schriftGröße, 1 );
-        outF->write( (char*)&zeichenAnzahl, 1 );
-        for( int i = 0; i < zeichenAnzahl; ++i )
-        {
-            outF->write( (char*)&zeichen[ i ], 1 );
-            outF->write( (char*)&pos[ i ], 4 );
-        }
-    }
+	if( outF->good() && outF->is_open() )
+	{
+		outF->write( (char*)&schriftSize, 1 );
+		outF->write( (char*)&zeichenAnzahl, 1 );
+		for( int i = 0; i < zeichenAnzahl; ++i )
+		{
+			outF->write( (char*)&zeichen[ i ], 1 );
+			outF->write( (char*)&pos[ i ], 4 );
+		}
+	}
 }
 
 unsigned char LTDSSchriftKopf::getSchriftGröße() const // gibt die Schriftgröße zurück
 {
-    return schriftGröße;
+	return schriftSize;
 }
 
 unsigned char LTDSSchriftKopf::getZeichenAnzahl() const // gibt die Zeichenanzahl zurück
 {
-    return zeichenAnzahl;
+	return zeichenAnzahl;
 }
 
 int *LTDSSchriftKopf::getPositionen() const // gibt die Zeichenpositionen zurück
 {
-    return pos;
+	return pos;
 }
 
 unsigned char *LTDSSchriftKopf::getZeichen() const // gibt die zeichen zurück
 {
-    return zeichen;
+	return zeichen;
 }
 
 // Reference Counting 
 LTDSSchriftKopf *LTDSSchriftKopf::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDSSchriftKopf *LTDSSchriftKopf::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDSBuchstabenKopf Klasse aus Dateisystem.h
 // Konstruktor 
 LTDSBuchstabenKopf::LTDSBuchstabenKopf()
-    : ref( 1 ),
-    zeichen( 0 ),
-    größe( 0, 0 )
+	: ref( 1 ),
+	zeichen( 0 ),
+	size( 0, 0 )
 {}
 
 // nicht constant 
 void LTDSBuchstabenKopf::laden( std::ifstream *inF ) // lät aus inF
 {
-    if( inF->good() && inF->is_open() )
-    {
-        inF->read( (char*)&zeichen, 1 );
-        inF->read( (char*)&größe.x, 1 );
-        inF->read( (char*)&größe.y, 1 );
-    }
+	if( inF->good() && inF->is_open() )
+	{
+		inF->read( (char*)&zeichen, 1 );
+		inF->read( (char*)&size.x, 1 );
+		inF->read( (char*)&size.y, 1 );
+	}
 }
 
 void LTDSBuchstabenKopf::init( unsigned char zeichen, const Punkt &größe ) // initialisierung( für speichern )
 {
-    this->zeichen = zeichen;
-    this->größe = größe;
+	this->zeichen = zeichen;
+	this->size = größe;
 }
 
 void LTDSBuchstabenKopf::init( unsigned char zeichen, int br, int hö )
 {
-    this->zeichen = zeichen;
-    größe.x = br, größe.y = hö;
+	this->zeichen = zeichen;
+	size.x = br, size.y = hö;
 }
 
 // constant 
 void LTDSBuchstabenKopf::speichern( std::ofstream *outF ) const // speichertn nach outF
 {
-    if( outF->good() && outF->is_open() )
-    {
-        outF->write( (char*)&zeichen, 1 );
-        outF->write( (char*)&größe.x, 1 );
-        outF->write( (char*)&größe.y, 1 );
-    }
+	if( outF->good() && outF->is_open() )
+	{
+		outF->write( (char*)&zeichen, 1 );
+		outF->write( (char*)&size.x, 1 );
+		outF->write( (char*)&size.y, 1 );
+	}
 }
 
 unsigned char LTDSBuchstabenKopf::getZeichen() const // gibt das Zeichen zurück
 {
-    return zeichen;
+	return zeichen;
 }
 
 int LTDSBuchstabenKopf::getBreite() const // gibt die Breite zurück
 {
-    return größe.x;
+	return size.x;
 }
 
 int LTDSBuchstabenKopf::getHöhe() const // gibt die höhe zurück
 {
-    return größe.y;
+	return size.y;
 }
 
 const Punkt &LTDSBuchstabenKopf::getGröße() const // gibt die Größe zurück
 {
-    return größe;
+	return size;
 }
 
 // Reference Counting 
 LTDSBuchstabenKopf *LTDSBuchstabenKopf::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDSBuchstabenKopf *LTDSBuchstabenKopf::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDSBuchstabenKörper Klasse aus Dateisystem.h
 // Konstruktor 
 LTDSBuchstabenKörper::LTDSBuchstabenKörper( LTDSBuchstabenKopf *kopf )
-    : ref( 1 ),
-    größe( kopf->getGröße() ),
-    zeichen( kopf->getZeichen() ),
-    buchstabe( new Buchstabe() )
+	: ref( 1 ),
+	size( kopf->getGröße() ),
+	zeichen( kopf->getZeichen() ),
+	buchstabe( new Buchstabe() )
 {
-    buchstabe->NeuBuchstabe( größe );
-    kopf->release();
+	buchstabe->NeuBuchstabe( size );
+	kopf->release();
 }
 
 // Destruktor 
 LTDSBuchstabenKörper::~LTDSBuchstabenKörper()
 {
-    if( buchstabe )
-        buchstabe->release();
+	if( buchstabe )
+		buchstabe->release();
 }
 
 // nicht constant 
 void LTDSBuchstabenKörper::setBuchstabe( Buchstabe *zeichen ) // setzt den Buchstaben
 {
-    if( buchstabe )
-        buchstabe->release();
-    buchstabe = zeichen;
+	if( buchstabe )
+		buchstabe->release();
+	buchstabe = zeichen;
 }
 
 void LTDSBuchstabenKörper::laden( std::ifstream *inF ) // Läht aus inF
 {
-    if( inF->good() && inF->is_open() )
-    {
-        LTDSPixel *vorher = 0;
-        LTDSPixel *jetzt = new LTDSPixel( vorher );
-        char byte = 0;
-        int beg = 0;
-        int ende = -1;
-        for( int i = 0; i < größe.x * größe.y; ++i )
-        {
-            if( !jetzt ) // wenn es nicht der erste Pixel ist
-                jetzt = new LTDSPixel( vorher->getThis() );
-            int ende = -1;
-            while( ende < 0 ) // Pixel laden
-            {
-                if( beg == 0 )
-                    inF->read( &byte, 1 );
-                ende = jetzt->addByte( byte, beg ); // byte auswerten
-                beg = 0;
-            }
-            beg = ende;
-            if( beg == 8 )
-                beg = 0;
-            if( buchstabe )
-                buchstabe->setPixel( i, jetzt->getA() );
-            if( vorher )
-                vorher = vorher->release();
-            vorher = jetzt->getThis();
-            jetzt = jetzt->release();
-        }
-        if( vorher )
-            vorher->release();
-        if( jetzt )
-            jetzt->release();
-    }
+	if( inF->good() && inF->is_open() )
+	{
+		LTDSPixel *vorher = 0;
+		LTDSPixel *jetzt = new LTDSPixel( vorher );
+		char byte = 0;
+		int beg = 0;
+		int ende = -1;
+		for( int i = 0; i < size.x * size.y; ++i )
+		{
+			if( !jetzt ) // wenn es nicht der erste Pixel ist
+				jetzt = new LTDSPixel( vorher->getThis() );
+			int ende = -1;
+			while( ende < 0 ) // Pixel laden
+			{
+				if( beg == 0 )
+					inF->read( &byte, 1 );
+				ende = jetzt->addByte( byte, beg ); // byte auswerten
+				beg = 0;
+			}
+			beg = ende;
+			if( beg == 8 )
+				beg = 0;
+			if( buchstabe )
+				buchstabe->setPixel( i, jetzt->getA() );
+			if( vorher )
+				vorher = vorher->release();
+			vorher = jetzt->getThis();
+			jetzt = jetzt->release();
+		}
+		if( vorher )
+			vorher->release();
+		if( jetzt )
+			jetzt->release();
+	}
 }
 
 // constant 
 void LTDSBuchstabenKörper::speichern( std::ofstream *outF ) const // speichert nach outF
 {
-    if( outF->good() && outF->is_open() )
-    {
-        LTDSPixel *vorher = 0; // Letzter gespeicherter Pixel
-        LTDSPixel *jetzt = new LTDSPixel( 0 ); // Der momentan zu speichernde Pixel
-        int begin = 0, ende = 0; // Pixelbeginn, endposition in der byte variable
-        char byte = 0; // Der nächste byte der Datei
-        bool w = 0;
-        unsigned char *alphaBuff = buchstabe->getBuff();
-        for( int i = 0; i < größe.x * größe.y; ++i ) // für jeden Pixel
-        {
-            if( !jetzt ) // wenn es nicht der erste Pixel ist
-                jetzt = new LTDSPixel( vorher->getThis() );
-            jetzt->setAlpha( alphaBuff[ i ] ); // Farbe des Pixels setzen
-            jetzt->Komp(); // Pixel komprimieren
-            ende = -1;
-            while( ende < 0 ) // byte befüllen
-            {
-                ende = jetzt->getNextByte( byte, begin );
-                begin = 0;
-                w = 0;
-                if( ende == -1 || ende == 8 ) // byte speichern
-                {
-                    outF->write( &byte, 1 );
-                    w = 1;
-                    byte = 0;
-                }
-            } // Pixel fertig
-            begin = ende;
-            if( begin == 8 )
-                begin = 0;
-            if( vorher )
-                vorher->release();
-            vorher = jetzt->getThis(); // dieser wird zu letzter
-            jetzt = jetzt->release();
-        }
-        if( vorher )
-            vorher = vorher->release();
-        if( !w )
-        {
-            outF->write( &byte, 1 ); // Das letzte byte speichern
-        }
-        outF->flush(); // dateistream speichern
-    }
+	if( outF->good() && outF->is_open() )
+	{
+		LTDSPixel *vorher = 0; // Letzter gespeicherter Pixel
+		LTDSPixel *jetzt = new LTDSPixel( 0 ); // Der momentan zu speichernde Pixel
+		int begin = 0, ende = 0; // Pixelbeginn, endposition in der byte variable
+		char byte = 0; // Der nächste byte der Datei
+		bool w = 0;
+		unsigned char *alphaBuff = buchstabe->getBuff();
+		for( int i = 0; i < size.x * size.y; ++i ) // für jeden Pixel
+		{
+			if( !jetzt ) // wenn es nicht der erste Pixel ist
+				jetzt = new LTDSPixel( vorher->getThis() );
+			jetzt->setAlpha( alphaBuff[ i ] ); // Farbe des Pixels setzen
+			jetzt->Komp(); // Pixel komprimieren
+			ende = -1;
+			while( ende < 0 ) // byte befüllen
+			{
+				ende = jetzt->getNextByte( byte, begin );
+				begin = 0;
+				w = 0;
+				if( ende == -1 || ende == 8 ) // byte speichern
+				{
+					outF->write( &byte, 1 );
+					w = 1;
+					byte = 0;
+				}
+			} // Pixel fertig
+			begin = ende;
+			if( begin == 8 )
+				begin = 0;
+			if( vorher )
+				vorher->release();
+			vorher = jetzt->getThis(); // dieser wird zu letzter
+			jetzt = jetzt->release();
+		}
+		if( vorher )
+			vorher = vorher->release();
+		if( !w )
+		{
+			outF->write( &byte, 1 ); // Das letzte byte speichern
+		}
+		outF->flush(); // dateistream speichern
+	}
 }
 
 Buchstabe *LTDSBuchstabenKörper::getBuchstabe() const // gibt den Buchstaben zurück
 {
-    return buchstabe->getThis();
+	return buchstabe->getThis();
 }
 
 unsigned char LTDSBuchstabenKörper::getZeichen() const // gibt das Zeichen zurück
 {
-    return zeichen;
+	return zeichen;
 }
 
 // Reference Counting 
 LTDSBuchstabenKörper *LTDSBuchstabenKörper::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDSBuchstabenKörper *LTDSBuchstabenKörper::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }
 
 // Inhalt der LTDSDatei Klasse aus DAteisystem.h
 // Konstruktor 
 LTDSDatei::LTDSDatei()
-    : ref( 1 ),
-    pfad( new Text() ),
-    dateiKopf( 0 )
+	: ref( 1 ),
+	pfad( new Text() ),
+	dateiKopf( 0 )
 {}
 
 // Destruktor 
 LTDSDatei::~LTDSDatei()
 {
-    if( dateiKopf )
-        dateiKopf->release();
-    pfad->release();
+	if( dateiKopf )
+		dateiKopf->release();
+	pfad->release();
 }
 
 // nicht constant 
 void LTDSDatei::setPfad( Text *txt ) // setzt den Pfad zur Datei
 {
-    if( dateiKopf )
-        dateiKopf = dateiKopf->release();
-    pfad->setText( txt->getText() );
-    txt->release();
+	if( dateiKopf )
+		dateiKopf = dateiKopf->release();
+	pfad->setText( txt->getText() );
+	txt->release();
 }
 
 void LTDSDatei::leseDaten() // ließt den Dateikopf
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return;
-    if( dateiKopf )
-        dateiKopf->release();
-    dateiKopf = new LTDSDateiKopf();
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-    dateiKopf->laden( inF );
-    inF->close();
-    delete inF;
+	if( !DateiExistiert( pfad->getThis() ) )
+		return;
+	if( dateiKopf )
+		dateiKopf->release();
+	dateiKopf = new LTDSDateiKopf();
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+	dateiKopf->laden( inF );
+	inF->close();
+	delete inF;
 }
 
 void LTDSDatei::addSchriftgröße( Alphabet *alphabet ) // fügt eine Schriftgröße hinzu
 {
-    if( !DateiExistiert( pfad->getThis() ) ) // prüfen, ob die Datei existiert
-        return;
-    if( !dateiKopf ) // prüfen, ob der Dateikopf schon gelesen wurde
-        leseDaten();
-    int sgröße = alphabet->getSchriftgröße(); // Schriftgröße die hinzugefügt werden soll
-    unsigned char *sglist = dateiKopf->getSchriftGrößeList(); // Liste von bereits vorhandenen Schriftgrößen
-    unsigned char sganzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl der bereits vorhandenen Schriftgrößen
-    for( int i = 0; i < sganzahl; ++i ) // prüfen, ob die Schriftgröße bereits existiert
-    {
-        if( sglist[ i ] == sgröße )
-        {
-            alphabet->release();
-            return;
-        }
-    }
-    dateiKopf->addSG( sgröße ); // Schriftgröße dem Dateikopf hinzufügen
-    int *sgPosList = dateiKopf->getPositionList(); // Liste mit positionen der Schriftgrößen
-    sglist = dateiKopf->getSchriftGrößeList(); // Liste von bereits vorhandenen Schriftgrößen
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // alte Datei
-    pfad->anhängen( "0" );
-    std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // neue Datei
-    dateiKopf->speichern( outF ); // Dateikopf in neue datei speichern
-    inF->seekg( 1 + 5 * sganzahl, std::ios::beg ); // Position der ersten Schriftgröße in der alten Datei
-    for( int i = 0; i < sganzahl; ++i ) // Buchstabenpositionen aller Schriftgrößen aktualisieren
-    {
-        LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
-        sgKpf_tmp->laden( inF ); // aus alter Datei laden
-        int *zeichP_tmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen der Schriftgröße
-        unsigned char zeichA_tmp = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der Schriftgröße
-        for( int i1 = 0; i1 < zeichA_tmp; ++i1 )
-            zeichP_tmp[ i1 ] += 5; // Buchstabenpositionen aktualisieren
-        sgKpf_tmp->speichern( outF ); // Schriftgröße Kopf in neue Datei speichern
-        int beginByte = (int)inF->tellg(); // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
-        int endByte = sgPosList[ i + 1 ];
-        if( !endByte )
-        {
-            inF->seekg( 0, std::ios::end );
-            endByte = (int)inF->tellg();
-            inF->seekg( beginByte, std::ios::beg );
-        }
-        char byte;
-        for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang
-        {
-            inF->read( &byte, 1 );
-            outF->write( &byte, 1 );
-        }
-        sgKpf_tmp->release();
-    }
-    inF->close(); // Alte datei schließen
-    sgPosList[ sganzahl ] = (int)outF->tellp();
-    outF->seekp( 0, std::ios::beg );
-    for( int i = 0; i < sganzahl; ++i ) // Positionen im Dateikopf aktualisieren
-        sgPosList[ i ] += 5;
-    dateiKopf->speichern( outF ); // aktualisierter Dateikopf speichern
-    outF->seekp( sgPosList[ sganzahl ], std::ios::beg );
-    LTDSSchriftKopf *sgkopf = new LTDSSchriftKopf(); // Kopf der neuen Schriftgröße
-    sgkopf->setZeichenAlphabet( alphabet->getThis() ); // Kopf der Schriftgröße initialisieren
-    sgkopf->speichern( outF ); // Kopf der Schriftgröße speichern
-    int *BuchstabenPosList = sgkopf->getPositionen(); // positionen der verschiedenen Zeichen in der Datei( nuch 0 )
-    int count = 0;
-    for( int i = 0; i < 256; ++i )
-    {
-        Buchstabe *zeich = alphabet->getBuchstabe( i );
-        if( zeich )
-        {
-            BuchstabenPosList[ count ] = (int)outF->tellp(); // position des Zeichens setzen
-            LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf(); // Zeichenkopf
-            zeichKpf->init( i, zeich->getBreite(), zeich->getHöhe() );
-            zeichKpf->speichern( outF ); // Zeichenkopf speichern
-            LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() ); // Zeichenkörper
-            zeichKpf->release();
-            zeichKörp->setBuchstabe( zeich->getThis() );
-            zeichKörp->speichern( outF ); // Zeichenkörper speichern
-            zeich->release();
-            ++count;
-        }
-    }
-    outF->seekp( sgPosList[ sganzahl ], std::ios::beg );
-    sgkopf->speichern( outF ); // aktualisierter Schriftgrößen Kopf speichern
-    outF->close();
-    Text *pfad2 = new Text();
-    pfad2->setText( pfad->getText() );
-    pfad->löschen( pfad->getLänge() - 1, pfad->getLänge() );
-    DateiLöschen( pfad->getThis() ); // Alte datei Löschen
-    DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // neue Datei nach alte umbenennen
-    pfad2->release(); // Speicher freigeben
-    sgkopf->release();
-    delete inF;
-    delete outF;
-    alphabet->release();
+	if( !DateiExistiert( pfad->getThis() ) ) // prüfen, ob die Datei existiert
+		return;
+	if( !dateiKopf ) // prüfen, ob der Dateikopf schon gelesen wurde
+		leseDaten();
+	int sgröße = alphabet->getSchriftSize(); // Schriftgröße die hinzugefügt werden soll
+	unsigned char *sglist = dateiKopf->getSchriftGrößeList(); // Liste von bereits vorhandenen Schriftgrößen
+	unsigned char sganzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl der bereits vorhandenen Schriftgrößen
+	for( int i = 0; i < sganzahl; ++i ) // prüfen, ob die Schriftgröße bereits existiert
+	{
+		if( sglist[ i ] == sgröße )
+		{
+			alphabet->release();
+			return;
+		}
+	}
+	dateiKopf->addSG( sgröße ); // Schriftgröße dem Dateikopf hinzufügen
+	int *sgPosList = dateiKopf->getPositionList(); // Liste mit positionen der Schriftgrößen
+	sglist = dateiKopf->getSchriftGrößeList(); // Liste von bereits vorhandenen Schriftgrößen
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // alte Datei
+	pfad->append( "0" );
+	std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // neue Datei
+	dateiKopf->speichern( outF ); // Dateikopf in neue datei speichern
+	inF->seekg( 1 + 5 * sganzahl, std::ios::beg ); // Position der ersten Schriftgröße in der alten Datei
+	for( int i = 0; i < sganzahl; ++i ) // Buchstabenpositionen aller Schriftgrößen aktualisieren
+	{
+		LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
+		sgKpf_tmp->laden( inF ); // aus alter Datei laden
+		int *zeichP_tmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen der Schriftgröße
+		unsigned char zeichA_tmp = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der Schriftgröße
+		for( int i1 = 0; i1 < zeichA_tmp; ++i1 )
+			zeichP_tmp[ i1 ] += 5; // Buchstabenpositionen aktualisieren
+		sgKpf_tmp->speichern( outF ); // Schriftgröße Kopf in neue Datei speichern
+		int beginByte = (int)inF->tellg(); // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
+		int endByte = sgPosList[ i + 1 ];
+		if( !endByte )
+		{
+			inF->seekg( 0, std::ios::end );
+			endByte = (int)inF->tellg();
+			inF->seekg( beginByte, std::ios::beg );
+		}
+		char byte;
+		for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang
+		{
+			inF->read( &byte, 1 );
+			outF->write( &byte, 1 );
+		}
+		sgKpf_tmp->release();
+	}
+	inF->close(); // Alte datei schließen
+	sgPosList[ sganzahl ] = (int)outF->tellp();
+	outF->seekp( 0, std::ios::beg );
+	for( int i = 0; i < sganzahl; ++i ) // Positionen im Dateikopf aktualisieren
+		sgPosList[ i ] += 5;
+	dateiKopf->speichern( outF ); // aktualisierter Dateikopf speichern
+	outF->seekp( sgPosList[ sganzahl ], std::ios::beg );
+	LTDSSchriftKopf *sgkopf = new LTDSSchriftKopf(); // Kopf der neuen Schriftgröße
+	sgkopf->setZeichenAlphabet( alphabet->getThis() ); // Kopf der Schriftgröße initialisieren
+	sgkopf->speichern( outF ); // Kopf der Schriftgröße speichern
+	int *BuchstabenPosList = sgkopf->getPositionen(); // positionen der verschiedenen Zeichen in der Datei( nuch 0 )
+	int count = 0;
+	for( int i = 0; i < 256; ++i )
+	{
+		Buchstabe *zeich = alphabet->getBuchstabe( i );
+		if( zeich )
+		{
+			BuchstabenPosList[ count ] = (int)outF->tellp(); // position des Zeichens setzen
+			LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf(); // Zeichenkopf
+			zeichKpf->init( i, zeich->getBreite(), zeich->getHeight() );
+			zeichKpf->speichern( outF ); // Zeichenkopf speichern
+			LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() ); // Zeichenkörper
+			zeichKpf->release();
+			zeichKörp->setBuchstabe( zeich->getThis() );
+			zeichKörp->speichern( outF ); // Zeichenkörper speichern
+			zeich->release();
+			++count;
+		}
+	}
+	outF->seekp( sgPosList[ sganzahl ], std::ios::beg );
+	sgkopf->speichern( outF ); // aktualisierter Schriftgrößen Kopf speichern
+	outF->close();
+	Text *pfad2 = new Text();
+	pfad2->setText( pfad->getText() );
+	pfad->remove( pfad->getLength() - 1, pfad->getLength() );
+	DateiRemove( pfad->getThis() ); // Alte datei Löschen
+	DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // neue Datei nach alte umbenennen
+	pfad2->release(); // Speicher freigeben
+	sgkopf->release();
+	delete inF;
+	delete outF;
+	alphabet->release();
 }
 
 void LTDSDatei::addBuchstabe( int gr, Buchstabe *zeich, unsigned char zeichen ) // Fügt einer Schriftgröße einen Buchstaben hinzu
 {
-    if( !DateiExistiert( pfad->getThis() ) ) // prüfen ob Datei existiert
-    {
-        zeich->release();
-        return;
-    }
-    if( !dateiKopf ) // prüfen, ob der DAteikopf geladen wurde
-        leseDaten();
-    unsigned char *sgList = dateiKopf->getSchriftGrößeList(); // Liste mit Schriftgrößen aus der Datei
-    int *sgPosList = dateiKopf->getPositionList(); // Liste mit Schriftgrößen positionen aus Datei
-    unsigned char sgAnzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl von Schriftgrößen aus der Datei
-    int sgNum = -1;
-    for( int i = 0; i < sgAnzahl; ++i ) // Position der richtigen Schriftgröße ermitteln
-    {
-        if( sgList[ i ] == gr )
-        {
-            sgNum = i;
-            break;
-        }
-    }
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // Alte Datei
-    pfad->anhängen( "0" );
-    std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // Neue Datei
-    inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg );
-    if( sgNum == -1 ) // Die Schriftgröße existiert noch nicht und wird erstellt
-    {
-        dateiKopf->addSG( gr ); // Schriftgröße dem Dateikopf hinzufügen
-        sgPosList = dateiKopf->getPositionList();
-        sgList = dateiKopf->getSchriftGrößeList();
-        dateiKopf->speichern( outF ); // Dateikopf speichern
-        inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg ); // Position der ersten Schriftgröße in der alten Datei
-        for( int i = 0; i < sgAnzahl; ++i ) // Buchstabenpositionen aller Schriftgrößen aktualisieren
-        {
-            LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
-            sgKpf_tmp->laden( inF ); // aus alter Datei laden
-            int *zeichP_tmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen der Schriftgröße
-            unsigned char zeichA_tmp = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der Schriftgröße
-            for( int i1 = 0; i1 < zeichA_tmp; ++i1 )
-                zeichP_tmp[ i1 ] += 5; // Buchstabenpositionen aktualisieren
-            sgKpf_tmp->speichern( outF ); // Schriftgröße Kopf in neue Datei speichern
-            int beginByte = (int)inF->tellg(); // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
-            int endByte = sgPosList[ i + 1 ];
-            if( i + 1 >= sgAnzahl )
-            {
-                inF->seekg( 0, std::ios::end );
-                endByte = (int)inF->tellg();
-                inF->seekg( beginByte, std::ios::beg );
-            }
-            char byte;
-            for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang
-            {
-                inF->read( &byte, 1 );
-                outF->write( &byte, 1 );
-            }
-            sgKpf_tmp->release();
-        }
-        sgPosList[ sgAnzahl ] = (int)outF->tellp();
-        outF->seekp( 0, std::ios::beg );
-        for( int i = 0; i < sgAnzahl; ++i ) // Positionen im Dateikopf aktualisieren
-            sgPosList[ i ] += 5;
-        dateiKopf->speichern( outF ); // aktualisierter Dateikopf speichern
-        outF->seekp( sgPosList[ sgAnzahl ], std::ios::beg );
-        LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf(); // Schriftgröße Kopf initialisiern
-        sgKpf->setSchriftgröße( gr );
-        sgKpf->addZeichen( zeichen );
-        sgKpf->getPositionen()[ 0 ] = (int)outF->tellp() + 7;
-        sgKpf->speichern( outF ); // Schriftgröße Kopf speichern
-        sgKpf->release();
-        LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf(); // Buchstabenkopf
-        zeichKpf->init( zeichen, zeich->getGröße() );
-        zeichKpf->speichern( outF ); // Buchstabenkopf speichern
-        LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() ); // Buchstabenkörper
-        zeichKpf->release();
-        zeichKörp->setBuchstabe( zeich->getThis() );
-        zeichKörp->speichern( outF ); // Buchstabenkörper speichern
-        zeichKörp->release();
-    }
-    else
-    {
-        dateiKopf->speichern( outF ); // Dateikopf speichern
-        int beginByte = 1 + 5 * sgAnzahl; // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
-        int endByte = sgPosList[ sgNum ];
-        char byte;
-        for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang bis zur angegebenen größe
-        {
-            inF->read( &byte, 1 );
-            outF->write( &byte, 1 );
-        }
-        LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf(); // Schriftgröße Kopf
-        sgKpf->laden( inF );
-        for( int i = 0; i < sgKpf->getZeichenAnzahl(); ++i )
-            sgKpf->getPositionen()[ i ] += 5;
-        sgKpf->addZeichen( zeichen );
-        int indexPlus = 5;
-        int zeichenPos = sgPosList[ sgNum + 1 ]; // position des neuen Zeichens
-        if( sgNum + 1 >= sgAnzahl )
-        {
-            int tmp = (int)inF->tellg();
-            inF->seekg( 0, std::ios::end );
-            zeichenPos = (int)inF->tellg();
-            inF->seekg( tmp, std::ios::beg );
-        }
-        zeichenPos += indexPlus;
-        sgKpf->getPositionen()[ sgKpf->getZeichenAnzahl() - 1 ] = zeichenPos;
-        sgKpf->speichern( outF ); // Schriftgröße Kopf speichern
-        sgKpf->release();
-        for( int i = (int)inF->tellg() + indexPlus; i < zeichenPos; ++i ) // Kopiervorgang bis zum Zeichenbeginn
-        {
-            inF->read( &byte, 1 );
-            outF->write( &byte, 1 );
-        }
-        LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf(); // Zeichenkopf
-        zeichKpf->init( zeichen, zeich->getGröße() );
-        zeichKpf->speichern( outF ); // Zeichenkopf speichern
-        LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() ); // Zeichenkörper
-        zeichKpf->release();
-        zeichKörp->setBuchstabe( zeich->getThis() );
-        zeichKörp->speichern( outF ); // Zeichenkörper speichern
-        zeichKörp->release();
-        int nowPos = (int)outF->tellp();
-        indexPlus += nowPos - zeichenPos;
-        for( int i = sgNum + 1; i < sgAnzahl; ++i ) // Dateikopf aktualisieren
-            sgPosList[ i ] += indexPlus;
-        outF->seekp( 0, std::ios::beg );
-        dateiKopf->speichern( outF ); // Dateikopf speichern
-        outF->seekp( nowPos, std::ios::beg );
-        for( int i = sgNum + 1; i < sgAnzahl; ++i ) // Restliche Schriftgrößen aktualisieren
-        {
-            LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
-            sgKpf_tmp->laden( inF ); // aus alter Datei laden
-            int *zeichP_tmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen der Schriftgröße
-            unsigned char zeichA_tmp = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der Schriftgröße
-            for( int i1 = 0; i1 < zeichA_tmp; ++i1 )
-                zeichP_tmp[ i1 ] += indexPlus; // Buchstabenpositionen aktualisieren
-            sgKpf_tmp->speichern( outF ); // Schriftgröße Kopf in neue Datei speichern
-            int beginByte = (int)inF->tellg(); // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
-            int endByte = sgPosList[ i + 1 ];
-            if( i + 1 >= sgAnzahl )
-            {
-                inF->seekg( 0, std::ios::end );
-                endByte = (int)inF->tellg();
-                inF->seekg( beginByte, std::ios::beg );
-            }
-            char byte;
-            for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang
-            {
-                inF->read( &byte, 1 );
-                outF->write( &byte, 1 );
-            }
-            sgKpf_tmp->release();
-        }
-    }
-    inF->close();
-    outF->close();
-    Text *pfad2 = new Text( pfad->getText() );
-    pfad->löschen( pfad->getLänge() - 1, pfad->getLänge() );
-    DateiLöschen( pfad->getThis() ); // Alte Datei löschen
-    DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // Neue Datei in alte umbenennen
-    pfad2->release();// Speicher freigeben
-    delete inF;
-    delete outF;
-    zeich->release();
+	if( !DateiExistiert( pfad->getThis() ) ) // prüfen ob Datei existiert
+	{
+		zeich->release();
+		return;
+	}
+	if( !dateiKopf ) // prüfen, ob der DAteikopf geladen wurde
+		leseDaten();
+	unsigned char *sgList = dateiKopf->getSchriftGrößeList(); // Liste mit Schriftgrößen aus der Datei
+	int *sgPosList = dateiKopf->getPositionList(); // Liste mit Schriftgrößen positionen aus Datei
+	unsigned char sgAnzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl von Schriftgrößen aus der Datei
+	int sgNum = -1;
+	for( int i = 0; i < sgAnzahl; ++i ) // Position der richtigen Schriftgröße ermitteln
+	{
+		if( sgList[ i ] == gr )
+		{
+			sgNum = i;
+			break;
+		}
+	}
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // Alte Datei
+	pfad->append( "0" );
+	std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // Neue Datei
+	inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg );
+	if( sgNum == -1 ) // Die Schriftgröße existiert noch nicht und wird erstellt
+	{
+		dateiKopf->addSG( gr ); // Schriftgröße dem Dateikopf hinzufügen
+		sgPosList = dateiKopf->getPositionList();
+		sgList = dateiKopf->getSchriftGrößeList();
+		dateiKopf->speichern( outF ); // Dateikopf speichern
+		inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg ); // Position der ersten Schriftgröße in der alten Datei
+		for( int i = 0; i < sgAnzahl; ++i ) // Buchstabenpositionen aller Schriftgrößen aktualisieren
+		{
+			LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
+			sgKpf_tmp->laden( inF ); // aus alter Datei laden
+			int *zeichP_tmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen der Schriftgröße
+			unsigned char zeichA_tmp = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der Schriftgröße
+			for( int i1 = 0; i1 < zeichA_tmp; ++i1 )
+				zeichP_tmp[ i1 ] += 5; // Buchstabenpositionen aktualisieren
+			sgKpf_tmp->speichern( outF ); // Schriftgröße Kopf in neue Datei speichern
+			int beginByte = (int)inF->tellg(); // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
+			int endByte = sgPosList[ i + 1 ];
+			if( i + 1 >= sgAnzahl )
+			{
+				inF->seekg( 0, std::ios::end );
+				endByte = (int)inF->tellg();
+				inF->seekg( beginByte, std::ios::beg );
+			}
+			char byte;
+			for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang
+			{
+				inF->read( &byte, 1 );
+				outF->write( &byte, 1 );
+			}
+			sgKpf_tmp->release();
+		}
+		sgPosList[ sgAnzahl ] = (int)outF->tellp();
+		outF->seekp( 0, std::ios::beg );
+		for( int i = 0; i < sgAnzahl; ++i ) // Positionen im Dateikopf aktualisieren
+			sgPosList[ i ] += 5;
+		dateiKopf->speichern( outF ); // aktualisierter Dateikopf speichern
+		outF->seekp( sgPosList[ sgAnzahl ], std::ios::beg );
+		LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf(); // Schriftgröße Kopf initialisiern
+		sgKpf->setSchriftgröße( gr );
+		sgKpf->addZeichen( zeichen );
+		sgKpf->getPositionen()[ 0 ] = (int)outF->tellp() + 7;
+		sgKpf->speichern( outF ); // Schriftgröße Kopf speichern
+		sgKpf->release();
+		LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf(); // Buchstabenkopf
+		zeichKpf->init( zeichen, zeich->getSize() );
+		zeichKpf->speichern( outF ); // Buchstabenkopf speichern
+		LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() ); // Buchstabenkörper
+		zeichKpf->release();
+		zeichKörp->setBuchstabe( zeich->getThis() );
+		zeichKörp->speichern( outF ); // Buchstabenkörper speichern
+		zeichKörp->release();
+	}
+	else
+	{
+		dateiKopf->speichern( outF ); // Dateikopf speichern
+		int beginByte = 1 + 5 * sgAnzahl; // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
+		int endByte = sgPosList[ sgNum ];
+		char byte;
+		for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang bis zur angegebenen größe
+		{
+			inF->read( &byte, 1 );
+			outF->write( &byte, 1 );
+		}
+		LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf(); // Schriftgröße Kopf
+		sgKpf->laden( inF );
+		for( int i = 0; i < sgKpf->getZeichenAnzahl(); ++i )
+			sgKpf->getPositionen()[ i ] += 5;
+		sgKpf->addZeichen( zeichen );
+		int indexPlus = 5;
+		int zeichenPos = sgPosList[ sgNum + 1 ]; // position des neuen Zeichens
+		if( sgNum + 1 >= sgAnzahl )
+		{
+			int tmp = (int)inF->tellg();
+			inF->seekg( 0, std::ios::end );
+			zeichenPos = (int)inF->tellg();
+			inF->seekg( tmp, std::ios::beg );
+		}
+		zeichenPos += indexPlus;
+		sgKpf->getPositionen()[ sgKpf->getZeichenAnzahl() - 1 ] = zeichenPos;
+		sgKpf->speichern( outF ); // Schriftgröße Kopf speichern
+		sgKpf->release();
+		for( int i = (int)inF->tellg() + indexPlus; i < zeichenPos; ++i ) // Kopiervorgang bis zum Zeichenbeginn
+		{
+			inF->read( &byte, 1 );
+			outF->write( &byte, 1 );
+		}
+		LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf(); // Zeichenkopf
+		zeichKpf->init( zeichen, zeich->getSize() );
+		zeichKpf->speichern( outF ); // Zeichenkopf speichern
+		LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() ); // Zeichenkörper
+		zeichKpf->release();
+		zeichKörp->setBuchstabe( zeich->getThis() );
+		zeichKörp->speichern( outF ); // Zeichenkörper speichern
+		zeichKörp->release();
+		int nowPos = (int)outF->tellp();
+		indexPlus += nowPos - zeichenPos;
+		for( int i = sgNum + 1; i < sgAnzahl; ++i ) // Dateikopf aktualisieren
+			sgPosList[ i ] += indexPlus;
+		outF->seekp( 0, std::ios::beg );
+		dateiKopf->speichern( outF ); // Dateikopf speichern
+		outF->seekp( nowPos, std::ios::beg );
+		for( int i = sgNum + 1; i < sgAnzahl; ++i ) // Restliche Schriftgrößen aktualisieren
+		{
+			LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
+			sgKpf_tmp->laden( inF ); // aus alter Datei laden
+			int *zeichP_tmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen der Schriftgröße
+			unsigned char zeichA_tmp = sgKpf_tmp->getZeichenAnzahl(); // Anzahl von Zeichen der Schriftgröße
+			for( int i1 = 0; i1 < zeichA_tmp; ++i1 )
+				zeichP_tmp[ i1 ] += indexPlus; // Buchstabenpositionen aktualisieren
+			sgKpf_tmp->speichern( outF ); // Schriftgröße Kopf in neue Datei speichern
+			int beginByte = (int)inF->tellg(); // Die restlichen bytes bis zur nächsten Schriftgröße in neue Datei kopieren
+			int endByte = sgPosList[ i + 1 ];
+			if( i + 1 >= sgAnzahl )
+			{
+				inF->seekg( 0, std::ios::end );
+				endByte = (int)inF->tellg();
+				inF->seekg( beginByte, std::ios::beg );
+			}
+			char byte;
+			for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopiervorgang
+			{
+				inF->read( &byte, 1 );
+				outF->write( &byte, 1 );
+			}
+			sgKpf_tmp->release();
+		}
+	}
+	inF->close();
+	outF->close();
+	Text *pfad2 = new Text( pfad->getText() );
+	pfad->remove( pfad->getLength() - 1, pfad->getLength() );
+	DateiRemove( pfad->getThis() ); // Alte Datei löschen
+	DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // Neue Datei in alte umbenennen
+	pfad2->release();// Speicher freigeben
+	delete inF;
+	delete outF;
+	zeich->release();
 }
 
 void LTDSDatei::löscheSchrifrGröße( int gr ) // Löscht eine Schriftgröße aus der Datei
 {
-    if( !DateiExistiert( pfad->getThis() ) ) // prüfen, ob Datei existiert
-        return;
-    if( !dateiKopf ) // prüfen, ob der Dateikopf geladen wurde
-        leseDaten();
-    unsigned char *sgList = dateiKopf->getSchriftGrößeList(); // Liste mit Schriftgrößen
-    unsigned char sgAnzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl der Schriftgrößen
-    int sgNum = -1;
-    for( int i = 0; i < sgAnzahl; ++i ) // zu löschende Schriftgröße suchen
-    {
-        if( sgList[ i ] == gr )
-        {
-            sgNum = i;
-            break;
-        }
-    }
-    if( sgNum == -1 ) // Die Schriftgröße ist nicht vorhanden
-        return;
-    int *sgPosList = dateiKopf->getPositionList();  // Liste von Positionen der Schriftgrößen
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // alte Datei
-    pfad->anhängen( "0" );
-    std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // neue Datei
-    outF->seekp( 1 + 5 * ( sgAnzahl - 1 ), std::ios::beg );
-    inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg );
-    for( int i = 0; i < sgNum; ++i ) // Schriftgrößen vor der zu löschenden Schriftgröße aktualisieren
-    {
-        LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
-        sgKpf_tmp->laden( inF ); // Schriftgrößen Kopf laden
-        int *zeichPosLTmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen
-        unsigned char zeichATmp = sgKpf_tmp->getZeichenAnzahl(); // Zeichenanzahl
-        for( int i1 = 0; i1 < zeichATmp; ++i1 ) // Position der Zeichen um 5 bytes zurücksetzen
-            zeichPosLTmp[ i1 ] -= 5;
-        sgKpf_tmp->speichern( outF ); // speichern in Neue Datei
-        char byte = 0;
-        for( int i1 = (int)inF->tellg(); i1 < sgPosList[ i + 1 ]; ++i1 ) // Den Körper des Zeichens Kopieren
-        {
-            inF->read( &byte, 1 );
-            outF->write( &byte, 1 );
-        }
-        sgKpf_tmp->release();
-    }
-    int indexMinus = 5 + sgPosList[ sgNum + 1 ] - (int)inF->tellg();
-    inF->seekg( sgPosList[ sgNum + 1 ], std::ios::beg );
-    for( int i = sgNum + 1; i < sgAnzahl; ++i ) // Die Schriftgröße nach der zu löschenden Schriftgröße
-    {
-        LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
-        sgKpf_tmp->laden( inF ); // Schriftgrößen Kopf laden
-        int *zeichPosLTmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen
-        unsigned char zeichATmp = sgKpf_tmp->getZeichenAnzahl(); // Zeichenanzahl
-        for( int i1 = 0; i1 < zeichATmp; ++i1 ) // Position der Zeichen aktualisieren
-            zeichPosLTmp[ i1 ] -= indexMinus;
-        sgKpf_tmp->speichern( outF ); // speichern in Neue Datei
-        char byte = 0;
-        int BeginByte = (int)inF->tellg();
-        int EndByte = sgPosList[ i + 1 ];
-        if( !EndByte )
-        {
-            inF->seekg( 0, std::ios::end );
-            EndByte = (int)inF->tellg();
-            inF->seekg( BeginByte, std::ios::beg );
-        }
-        for( int i1 = BeginByte; i1 < EndByte; ++i1 ) // Den Körper des Zeichens Kopieren
-        {
-            inF->read( &byte, 1 );
-            outF->write( &byte, 1 );
-        }
-    }
-    for( int i = 0; i < sgNum; ++i ) // Dateikopf aktualisieren
-        sgPosList[ i ] -= 5;
-    for( int i = sgNum + 1; i < sgAnzahl; ++i )
-        sgPosList[ i ] -= indexMinus;
-    dateiKopf->removeSG( gr );
-    outF->seekp( 0, std::ios::beg );
-    dateiKopf->speichern( outF ); // Dateikopf speichern
-    inF->close();
-    outF->close();
-    Text *pfad2 = new Text( pfad->getText() );
-    pfad->löschen( pfad->getLänge() - 1, pfad->getLänge() );
-    DateiLöschen( pfad->getThis() ); // alte Datei löschen
-    DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // neue Datei zu alter umbenennen
-    pfad2->release();
-    delete inF;
-    delete outF;
+	if( !DateiExistiert( pfad->getThis() ) ) // prüfen, ob Datei existiert
+		return;
+	if( !dateiKopf ) // prüfen, ob der Dateikopf geladen wurde
+		leseDaten();
+	unsigned char *sgList = dateiKopf->getSchriftGrößeList(); // Liste mit Schriftgrößen
+	unsigned char sgAnzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl der Schriftgrößen
+	int sgNum = -1;
+	for( int i = 0; i < sgAnzahl; ++i ) // zu löschende Schriftgröße suchen
+	{
+		if( sgList[ i ] == gr )
+		{
+			sgNum = i;
+			break;
+		}
+	}
+	if( sgNum == -1 ) // Die Schriftgröße ist nicht vorhanden
+		return;
+	int *sgPosList = dateiKopf->getPositionList();  // Liste von Positionen der Schriftgrößen
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // alte Datei
+	pfad->append( "0" );
+	std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // neue Datei
+	outF->seekp( 1 + 5 * ( sgAnzahl - 1 ), std::ios::beg );
+	inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg );
+	for( int i = 0; i < sgNum; ++i ) // Schriftgrößen vor der zu löschenden Schriftgröße aktualisieren
+	{
+		LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
+		sgKpf_tmp->laden( inF ); // Schriftgrößen Kopf laden
+		int *zeichPosLTmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen
+		unsigned char zeichATmp = sgKpf_tmp->getZeichenAnzahl(); // Zeichenanzahl
+		for( int i1 = 0; i1 < zeichATmp; ++i1 ) // Position der Zeichen um 5 bytes zurücksetzen
+			zeichPosLTmp[ i1 ] -= 5;
+		sgKpf_tmp->speichern( outF ); // speichern in Neue Datei
+		char byte = 0;
+		for( int i1 = (int)inF->tellg(); i1 < sgPosList[ i + 1 ]; ++i1 ) // Den Körper des Zeichens Kopieren
+		{
+			inF->read( &byte, 1 );
+			outF->write( &byte, 1 );
+		}
+		sgKpf_tmp->release();
+	}
+	int indexMinus = 5 + sgPosList[ sgNum + 1 ] - (int)inF->tellg();
+	inF->seekg( sgPosList[ sgNum + 1 ], std::ios::beg );
+	for( int i = sgNum + 1; i < sgAnzahl; ++i ) // Die Schriftgröße nach der zu löschenden Schriftgröße
+	{
+		LTDSSchriftKopf *sgKpf_tmp = new LTDSSchriftKopf(); // Schriftgrößen Kopf
+		sgKpf_tmp->laden( inF ); // Schriftgrößen Kopf laden
+		int *zeichPosLTmp = sgKpf_tmp->getPositionen(); // Zeichenpositionen
+		unsigned char zeichATmp = sgKpf_tmp->getZeichenAnzahl(); // Zeichenanzahl
+		for( int i1 = 0; i1 < zeichATmp; ++i1 ) // Position der Zeichen aktualisieren
+			zeichPosLTmp[ i1 ] -= indexMinus;
+		sgKpf_tmp->speichern( outF ); // speichern in Neue Datei
+		char byte = 0;
+		int BeginByte = (int)inF->tellg();
+		int EndByte = sgPosList[ i + 1 ];
+		if( !EndByte )
+		{
+			inF->seekg( 0, std::ios::end );
+			EndByte = (int)inF->tellg();
+			inF->seekg( BeginByte, std::ios::beg );
+		}
+		for( int i1 = BeginByte; i1 < EndByte; ++i1 ) // Den Körper des Zeichens Kopieren
+		{
+			inF->read( &byte, 1 );
+			outF->write( &byte, 1 );
+		}
+	}
+	for( int i = 0; i < sgNum; ++i ) // Dateikopf aktualisieren
+		sgPosList[ i ] -= 5;
+	for( int i = sgNum + 1; i < sgAnzahl; ++i )
+		sgPosList[ i ] -= indexMinus;
+	dateiKopf->removeSG( gr );
+	outF->seekp( 0, std::ios::beg );
+	dateiKopf->speichern( outF ); // Dateikopf speichern
+	inF->close();
+	outF->close();
+	Text *pfad2 = new Text( pfad->getText() );
+	pfad->remove( pfad->getLength() - 1, pfad->getLength() );
+	DateiRemove( pfad->getThis() ); // alte Datei löschen
+	DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // neue Datei zu alter umbenennen
+	pfad2->release();
+	delete inF;
+	delete outF;
 }
 
 void LTDSDatei::löscheBuchstabe( int gr, unsigned char zeichen ) // Löscht einen Buchstaben aus der Datei
 {
-    if( !DateiExistiert( pfad->getThis() ) ) // prüfen, ob die Datei existiert
-        return;
-    if( !dateiKopf ) // prüfen, ob der Dateikopf gelesen wurde
-        leseDaten();
-    unsigned char *sgList = dateiKopf->getSchriftGrößeList(); // Liste mit Schriftgrößen
-    unsigned char sgAnzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl der Schriftgrößen
-    int *sgPosList = dateiKopf->getPositionList(); // Liste mit Positionen der Schriftgrößen
-    int sgNum = -1;
-    for( int i = 0; i < sgAnzahl; ++i ) // Schriftgröße suchen
-    {
-        if( sgList[ i ] == gr )
-        {
-            sgNum = i;
-            break;
-        }
-    }
-    if( sgNum == -1 ) // Schriftgröße nicht gefunden
-        return;
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // alte Datei
-    pfad->anhängen( "0" );
-    std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // neue Datei
-    int indexMinus = 0;
-    inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg );
-    dateiKopf->speichern( outF ); // DateiKopf peichern
-    for( int i = 0; i < sgAnzahl; ++i )
-    {
-        LTDSSchriftKopf *sgKopf = new LTDSSchriftKopf(); // Schriftkopf
-        sgKopf->laden( inF ); // Schriftkopf laden
-        unsigned char sgZeichAnzahl = sgKopf->getZeichenAnzahl(); // Zeichenanzahl
-        unsigned char *sgZeichenList = sgKopf->getZeichen(); // Zeichen Liste
-        int *sgZPosList = sgKopf->getPositionen(); // Positions Liste
-        if( i == sgNum ) // Zeichen befindet sich in dieser Schriftgröße
-        {
-            int sgZNum = -1;
-            for( int i1 = 0; i1 < sgZeichAnzahl; ++i1 ) // Zeichen suchen
-            {
-                if( sgZeichenList[ i1 ] == zeichen )
-                {
-                    sgZNum = i1;
-                    break;
-                }
-            }
-            if( sgZNum == -1 ) // Zeichen nicht gefunden
-            {
-                sgKopf->release();
-                inF->close();
-                outF->close();
-                delete inF;
-                delete outF;
-                DateiLöschen( pfad->getThis() );
-                pfad->löschen( pfad->getLänge() - 1, pfad->getLänge() );
-                return; // abbruch
-            }
-            outF->seekp( 2 + 5 * ( sgZeichAnzahl - 1 ), std::ios::cur );
-            indexMinus += 5;
-            for( int i1 = 0; i1 < sgZNum; ++i1 ) // Zeichen vor dem zu löschenden Zeichen
-            {
-                char byte = 0;
-                for( int i2 = sgZPosList[ i1 ]; i2 < sgZPosList[ i1 + 1 ]; ++i2 ) // Kopieren
-                {
-                    inF->read( &byte, 1 );
-                    outF->write( &byte, 1 );
-                }
-                sgZPosList[ i1 ] -= indexMinus; // Schriftgröße Kopf aktualisieren
-            }
-            if( !sgZPosList[ sgZNum + 1 ] )
-            {
-                int endByte = sgPosList[ i + 1 ];
-                if( !endByte )
-                {
-                    int beginByte = (int)inF->tellg();
-                    inF->seekg( 0, std::ios::end );
-                    endByte = (int)inF->tellg();
-                    inF->seekg( beginByte, std::ios::beg );
-                }
-                indexMinus += endByte - sgZPosList[ sgZNum ];
-            }
-            else
-                indexMinus += sgZPosList[ sgZNum + 1 ] - sgZPosList[ sgZNum ];
-            if( sgZNum + 1 < sgZeichAnzahl )
-                inF->seekg( sgZPosList[ sgZNum + 1 ], std::ios::beg );
-            for( int i1 = sgZNum + 1; i1 < sgZeichAnzahl; ++i1 ) // Zeichen nach dem gelöschten Zeichen
-            {
-                int beginByte = (int)inF->tellg();
-                int endByte = sgZPosList[ i1 + 1 ];
-                if( !endByte )
-                {
-                    inF->seekg( 0, std::ios::end );
-                    endByte = (int)inF->tellg();
-                    inF->seekg( beginByte, std::ios::beg );
-                }
-                char byte = 0;
-                for( int i2 = beginByte; i2 < endByte; ++i2 ) // Kopieren
-                {
-                    inF->read( &byte, 1 );
-                    outF->write( &byte, 1 );
-                }
-                sgZPosList[ i1 ] -= indexMinus; // Schriftgröße Kopf aktualisieren
-            }
-            sgKopf->removeZeichen( zeichen );
-        }
-        else
-        {
-            for( int i1 = 0; i1 < sgZeichAnzahl; ++i1 ) // Schriftgröße Kopf aktualisieren
-                sgZPosList[ i ] -= indexMinus;
-            sgKopf->speichern( outF ); // Schriftgröße Kopf speichern
-            int beginByte = (int)inF->tellg();
-            int endByte = sgPosList[ i + 1 ];
-            if( !endByte )
-            {
-                inF->seekg( 0, std::ios::end );
-                endByte = (int)inF->tellg();
-                inF->seekg( beginByte, std::ios::beg );
-            }
-            char byte;
-            for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopieren
-            {
-                inF->read( &byte, 1 );
-                outF->write( &byte, 1 );
-            }
-            sgPosList[ i ] -= indexMinus;
-        }
-        outF->seekp( sgPosList[ i ], std::ios::beg );
-        sgKopf->speichern( outF ); // Schriftgröße Kopf speichern
-        outF->seekp( sgPosList[ i + 1 ], std::ios::beg );
-        sgKopf->release();
-    }
-    inF->close();
-    outF->close();
-    Text *pfad2 = new Text( pfad->getText() );
-    pfad->löschen( pfad->getLänge() - 1, pfad->getLänge() );
-    DateiLöschen( pfad->getThis() ); // alte Datei löschen
-    DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // neue Datei nach alte umbenennen
-    pfad2->release(); // Speicher freigeben
-    delete inF;
-    delete outF;
+	if( !DateiExistiert( pfad->getThis() ) ) // prüfen, ob die Datei existiert
+		return;
+	if( !dateiKopf ) // prüfen, ob der Dateikopf gelesen wurde
+		leseDaten();
+	unsigned char *sgList = dateiKopf->getSchriftGrößeList(); // Liste mit Schriftgrößen
+	unsigned char sgAnzahl = dateiKopf->getSchriftGrößeAnzahl(); // Anzahl der Schriftgrößen
+	int *sgPosList = dateiKopf->getPositionList(); // Liste mit Positionen der Schriftgrößen
+	int sgNum = -1;
+	for( int i = 0; i < sgAnzahl; ++i ) // Schriftgröße suchen
+	{
+		if( sgList[ i ] == gr )
+		{
+			sgNum = i;
+			break;
+		}
+	}
+	if( sgNum == -1 ) // Schriftgröße nicht gefunden
+		return;
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary ); // alte Datei
+	pfad->append( "0" );
+	std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary ); // neue Datei
+	int indexMinus = 0;
+	inF->seekg( 1 + 5 * sgAnzahl, std::ios::beg );
+	dateiKopf->speichern( outF ); // DateiKopf peichern
+	for( int i = 0; i < sgAnzahl; ++i )
+	{
+		LTDSSchriftKopf *sgKopf = new LTDSSchriftKopf(); // Schriftkopf
+		sgKopf->laden( inF ); // Schriftkopf laden
+		unsigned char sgZeichAnzahl = sgKopf->getZeichenAnzahl(); // Zeichenanzahl
+		unsigned char *sgZeichenList = sgKopf->getZeichen(); // Zeichen Liste
+		int *sgZPosList = sgKopf->getPositionen(); // Positions Liste
+		if( i == sgNum ) // Zeichen befindet sich in dieser Schriftgröße
+		{
+			int sgZNum = -1;
+			for( int i1 = 0; i1 < sgZeichAnzahl; ++i1 ) // Zeichen suchen
+			{
+				if( sgZeichenList[ i1 ] == zeichen )
+				{
+					sgZNum = i1;
+					break;
+				}
+			}
+			if( sgZNum == -1 ) // Zeichen nicht gefunden
+			{
+				sgKopf->release();
+				inF->close();
+				outF->close();
+				delete inF;
+				delete outF;
+				DateiRemove( pfad->getThis() );
+				pfad->remove( pfad->getLength() - 1, pfad->getLength() );
+				return; // abbruch
+			}
+			outF->seekp( 2 + 5 * ( sgZeichAnzahl - 1 ), std::ios::cur );
+			indexMinus += 5;
+			for( int i1 = 0; i1 < sgZNum; ++i1 ) // Zeichen vor dem zu löschenden Zeichen
+			{
+				char byte = 0;
+				for( int i2 = sgZPosList[ i1 ]; i2 < sgZPosList[ i1 + 1 ]; ++i2 ) // Kopieren
+				{
+					inF->read( &byte, 1 );
+					outF->write( &byte, 1 );
+				}
+				sgZPosList[ i1 ] -= indexMinus; // Schriftgröße Kopf aktualisieren
+			}
+			if( !sgZPosList[ sgZNum + 1 ] )
+			{
+				int endByte = sgPosList[ i + 1 ];
+				if( !endByte )
+				{
+					int beginByte = (int)inF->tellg();
+					inF->seekg( 0, std::ios::end );
+					endByte = (int)inF->tellg();
+					inF->seekg( beginByte, std::ios::beg );
+				}
+				indexMinus += endByte - sgZPosList[ sgZNum ];
+			}
+			else
+				indexMinus += sgZPosList[ sgZNum + 1 ] - sgZPosList[ sgZNum ];
+			if( sgZNum + 1 < sgZeichAnzahl )
+				inF->seekg( sgZPosList[ sgZNum + 1 ], std::ios::beg );
+			for( int i1 = sgZNum + 1; i1 < sgZeichAnzahl; ++i1 ) // Zeichen nach dem gelöschten Zeichen
+			{
+				int beginByte = (int)inF->tellg();
+				int endByte = sgZPosList[ i1 + 1 ];
+				if( !endByte )
+				{
+					inF->seekg( 0, std::ios::end );
+					endByte = (int)inF->tellg();
+					inF->seekg( beginByte, std::ios::beg );
+				}
+				char byte = 0;
+				for( int i2 = beginByte; i2 < endByte; ++i2 ) // Kopieren
+				{
+					inF->read( &byte, 1 );
+					outF->write( &byte, 1 );
+				}
+				sgZPosList[ i1 ] -= indexMinus; // Schriftgröße Kopf aktualisieren
+			}
+			sgKopf->removeZeichen( zeichen );
+		}
+		else
+		{
+			for( int i1 = 0; i1 < sgZeichAnzahl; ++i1 ) // Schriftgröße Kopf aktualisieren
+				sgZPosList[ i ] -= indexMinus;
+			sgKopf->speichern( outF ); // Schriftgröße Kopf speichern
+			int beginByte = (int)inF->tellg();
+			int endByte = sgPosList[ i + 1 ];
+			if( !endByte )
+			{
+				inF->seekg( 0, std::ios::end );
+				endByte = (int)inF->tellg();
+				inF->seekg( beginByte, std::ios::beg );
+			}
+			char byte;
+			for( int i1 = beginByte; i1 < endByte; ++i1 ) // Kopieren
+			{
+				inF->read( &byte, 1 );
+				outF->write( &byte, 1 );
+			}
+			sgPosList[ i ] -= indexMinus;
+		}
+		outF->seekp( sgPosList[ i ], std::ios::beg );
+		sgKopf->speichern( outF ); // Schriftgröße Kopf speichern
+		outF->seekp( sgPosList[ i + 1 ], std::ios::beg );
+		sgKopf->release();
+	}
+	inF->close();
+	outF->close();
+	Text *pfad2 = new Text( pfad->getText() );
+	pfad->remove( pfad->getLength() - 1, pfad->getLength() );
+	DateiRemove( pfad->getThis() ); // alte Datei löschen
+	DateiUmbenennen( pfad2->getThis(), pfad->getThis() ); // neue Datei nach alte umbenennen
+	pfad2->release(); // Speicher freigeben
+	delete inF;
+	delete outF;
 }
 
 void LTDSDatei::löscheDatei() // Löscht die gesamte Datei
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return;
-    if( !dateiKopf )
-        leseDaten();
-    DateiLöschen( pfad->getThis() );
+	if( !DateiExistiert( pfad->getThis() ) )
+		return;
+	if( !dateiKopf )
+		leseDaten();
+	DateiRemove( pfad->getThis() );
 }
 
 void LTDSDatei::erstelleDatei() // erstellt die Datei
 {
-    DateiPfadErstellen( pfad->getThis() );
-    if( dateiKopf )
-        dateiKopf->release();
-    dateiKopf = new LTDSDateiKopf();
-    std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary );
-    dateiKopf->speichern( outF );
-    outF->close();
-    delete outF;
+	DateiPfadErstellen( pfad->getThis() );
+	if( dateiKopf )
+		dateiKopf->release();
+	dateiKopf = new LTDSDateiKopf();
+	std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary );
+	dateiKopf->speichern( outF );
+	outF->close();
+	delete outF;
 }
 
 void LTDSDatei::speicherSchrift( Schrift *schrift ) // Speichert die übergebene Schrift
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-    {
-        schrift->release();
-        return;
-    }
-    löscheDatei();
-    if( dateiKopf )
-        dateiKopf->release();
-    dateiKopf = new LTDSDateiKopf();
-    for( int i = 0; i < schrift->getAlphabetAnzahl(); ++i )
-    {
-        Alphabet *alp = schrift->getAlphabetI( i );
-        if( alp )
-        {
-            dateiKopf->addSG( alp->getSchriftgröße() );
-            alp->release();
-        }
-    }
-    std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary );
-    dateiKopf->speichern( outF );
-    for( int i = 0; i < schrift->getAlphabetAnzahl(); ++i )
-    {
-        dateiKopf->getPositionList()[ i ] = (int)outF->tellp();
-        LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
-        sgKpf->setZeichenAlphabet( schrift->getAlphabetI( i ) );
-        sgKpf->speichern( outF );
-        Alphabet *alp = schrift->getAlphabetI( i );
-        for( int i1 = 0; i1 < sgKpf->getZeichenAnzahl(); ++i1 )
-        {
-            sgKpf->getPositionen()[ i1 ] = (int)outF->tellp();
-            LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf();
-            Buchstabe *zeichen = alp->getBuchstabe( sgKpf->getZeichen()[ i1 ] );
-            zeichKpf->init( sgKpf->getZeichen()[ i1 ], zeichen->getBreite(), zeichen->getHöhe() );
-            zeichKpf->speichern( outF );
-            LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() );
-            zeichKörp->setBuchstabe( zeichen->getThis() );
-            zeichKörp->speichern( outF );
-            zeichKörp->release();
-            zeichen->release();
-            zeichKpf->release();
-        }
-        alp->release();
-        int p = (int)outF->tellp();
-        outF->seekp( dateiKopf->getPositionList()[ i ], std::ios::beg );
-        sgKpf->speichern( outF );
-        outF->seekp( p, std::ios::beg );
-        sgKpf->release();
-    }
-    outF->seekp( 0, std::ios::beg );
-    dateiKopf->speichern( outF );
-    outF->close();
-    delete outF;
-    schrift->release();
+	if( !DateiExistiert( pfad->getThis() ) )
+	{
+		schrift->release();
+		return;
+	}
+	löscheDatei();
+	if( dateiKopf )
+		dateiKopf->release();
+	dateiKopf = new LTDSDateiKopf();
+	for( int i = 0; i < schrift->getAlphabetAnzahl(); ++i )
+	{
+		Alphabet *alp = schrift->getAlphabetI( i );
+		if( alp )
+		{
+			dateiKopf->addSG( alp->getSchriftSize() );
+			alp->release();
+		}
+	}
+	std::ofstream *outF = new std::ofstream( pfad->getText(), std::ios::binary );
+	dateiKopf->speichern( outF );
+	for( int i = 0; i < schrift->getAlphabetAnzahl(); ++i )
+	{
+		dateiKopf->getPositionList()[ i ] = (int)outF->tellp();
+		LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
+		sgKpf->setZeichenAlphabet( schrift->getAlphabetI( i ) );
+		sgKpf->speichern( outF );
+		Alphabet *alp = schrift->getAlphabetI( i );
+		for( int i1 = 0; i1 < sgKpf->getZeichenAnzahl(); ++i1 )
+		{
+			sgKpf->getPositionen()[ i1 ] = (int)outF->tellp();
+			LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf();
+			Buchstabe *zeichen = alp->getBuchstabe( sgKpf->getZeichen()[ i1 ] );
+			zeichKpf->init( sgKpf->getZeichen()[ i1 ], zeichen->getBreite(), zeichen->getHeight() );
+			zeichKpf->speichern( outF );
+			LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() );
+			zeichKörp->setBuchstabe( zeichen->getThis() );
+			zeichKörp->speichern( outF );
+			zeichKörp->release();
+			zeichen->release();
+			zeichKpf->release();
+		}
+		alp->release();
+		int p = (int)outF->tellp();
+		outF->seekp( dateiKopf->getPositionList()[ i ], std::ios::beg );
+		sgKpf->speichern( outF );
+		outF->seekp( p, std::ios::beg );
+		sgKpf->release();
+	}
+	outF->seekp( 0, std::ios::beg );
+	dateiKopf->speichern( outF );
+	outF->close();
+	delete outF;
+	schrift->release();
 }
 
 // constant 
 Schrift *LTDSDatei::ladeSchrift() // gibt die geladene Schrift zurück
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return 0;
-    if( !dateiKopf )
-        return 0;
-    Schrift *ret = new Schrift();
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-    inF->seekg( dateiKopf->getPositionList()[ 0 ], std::ios::beg );
-    for( int i = 0; i < dateiKopf->getSchriftGrößeAnzahl(); ++i )
-    {
-        LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
-        sgKpf->laden( inF );
-        Alphabet *alphabet = new Alphabet();
-        alphabet->setSchriftgröße( sgKpf->getSchriftGröße() );
-        alphabet->setDrawSchriftgröße( sgKpf->getSchriftGröße() );
-        for( int i1 = 0; i1 < sgKpf->getZeichenAnzahl(); ++i1 )
-        {
-            LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf();
-            zeichKpf->laden( inF );
-            LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() );
-            zeichKörp->laden( inF );
-            alphabet->setBuchstabe( zeichKpf->getZeichen(), zeichKörp->getBuchstabe() );
-            zeichKörp->release();
-            zeichKpf->release();
-        }
-        ret->addAlphabet( alphabet->getThis() );
-        alphabet->release();
-        sgKpf->release();
-    }
-    inF->close();
-    delete inF;
-    return ret;
+	if( !DateiExistiert( pfad->getThis() ) )
+		return 0;
+	if( !dateiKopf )
+		return 0;
+	Schrift *ret = new Schrift();
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+	inF->seekg( dateiKopf->getPositionList()[ 0 ], std::ios::beg );
+	for( int i = 0; i < dateiKopf->getSchriftGrößeAnzahl(); ++i )
+	{
+		LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
+		sgKpf->laden( inF );
+		Alphabet *alphabet = new Alphabet();
+		alphabet->setSchriftSize( sgKpf->getSchriftGröße() );
+		alphabet->setDrawSchriftSize( sgKpf->getSchriftGröße() );
+		for( int i1 = 0; i1 < sgKpf->getZeichenAnzahl(); ++i1 )
+		{
+			LTDSBuchstabenKopf *zeichKpf = new LTDSBuchstabenKopf();
+			zeichKpf->laden( inF );
+			LTDSBuchstabenKörper *zeichKörp = new LTDSBuchstabenKörper( zeichKpf->getThis() );
+			zeichKörp->laden( inF );
+			alphabet->setBuchstabe( zeichKpf->getZeichen(), zeichKörp->getBuchstabe() );
+			zeichKörp->release();
+			zeichKpf->release();
+		}
+		ret->addAlphabet( alphabet->getThis() );
+		alphabet->release();
+		sgKpf->release();
+	}
+	inF->close();
+	delete inF;
+	return ret;
 }
 
 Alphabet *LTDSDatei::ladeAlphabet( int schriftgröße ) // gibt eine geladene Schrift nur mit der angegebenen Schriftgröße zurück
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return 0;
-    if( !dateiKopf )
-        return 0;
-    Alphabet *ret = 0;
-    int sgNum = -1;
-    for( int i = 0; i < dateiKopf->getSchriftGrößeAnzahl(); ++i )
-    {
-        if( dateiKopf->getSchriftGrößeList()[ i ] == schriftgröße )
-        {
-            sgNum = i;
-            break;
-        }
-    }
-    if( sgNum == -1 )
-        return 0;
-    ret = new Alphabet();
-    ret->NeuAlphabet();
-    ret->setSchriftgröße( schriftgröße );
-    ret->setDrawSchriftgröße( schriftgröße );
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-    inF->seekg( dateiKopf->getPositionList()[ sgNum ], std::ios::beg );
-    LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
-    sgKpf->laden( inF );
-    for( int i = 0; i < sgKpf->getZeichenAnzahl(); ++i )
-    {
-        LTDSBuchstabenKopf *sgZKpf = new LTDSBuchstabenKopf();
-        sgZKpf->laden( inF );
-        LTDSBuchstabenKörper *sgZKörp = new LTDSBuchstabenKörper( sgZKpf->getThis() );
-        sgZKörp->laden( inF );
-        ret->setBuchstabe( sgZKpf->getZeichen(), sgZKörp->getBuchstabe() );
-        sgZKörp->release();
-        sgZKpf->release();
-    }
-    sgKpf->release();
-    inF->close();
-    delete inF;
-    return ret;
+	if( !DateiExistiert( pfad->getThis() ) )
+		return 0;
+	if( !dateiKopf )
+		return 0;
+	Alphabet *ret = 0;
+	int sgNum = -1;
+	for( int i = 0; i < dateiKopf->getSchriftGrößeAnzahl(); ++i )
+	{
+		if( dateiKopf->getSchriftGrößeList()[ i ] == schriftgröße )
+		{
+			sgNum = i;
+			break;
+		}
+	}
+	if( sgNum == -1 )
+		return 0;
+	ret = new Alphabet();
+	ret->NeuAlphabet();
+	ret->setSchriftSize( schriftgröße );
+	ret->setDrawSchriftSize( schriftgröße );
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+	inF->seekg( dateiKopf->getPositionList()[ sgNum ], std::ios::beg );
+	LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
+	sgKpf->laden( inF );
+	for( int i = 0; i < sgKpf->getZeichenAnzahl(); ++i )
+	{
+		LTDSBuchstabenKopf *sgZKpf = new LTDSBuchstabenKopf();
+		sgZKpf->laden( inF );
+		LTDSBuchstabenKörper *sgZKörp = new LTDSBuchstabenKörper( sgZKpf->getThis() );
+		sgZKörp->laden( inF );
+		ret->setBuchstabe( sgZKpf->getZeichen(), sgZKörp->getBuchstabe() );
+		sgZKörp->release();
+		sgZKpf->release();
+	}
+	sgKpf->release();
+	inF->close();
+	delete inF;
+	return ret;
 }
 
 Buchstabe *LTDSDatei::ladeBuchstabe( int schriftgröße, unsigned char zeichen )// Läd einen bestimmten Buchstaben
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return 0;
-    if( !dateiKopf )
-        return 0;
-    Buchstabe *ret = 0;
-    int sgNum = -1;
-    for( int i = 0; i < dateiKopf->getSchriftGrößeAnzahl(); ++i )
-    {
-        if( dateiKopf->getSchriftGrößeList()[ i ] == schriftgröße )
-        {
-            sgNum = i;
-            break;
-        }
-    }
-    if( sgNum == -1 )
-        return 0;
-    std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-    inF->seekg( dateiKopf->getPositionList()[ sgNum ], std::ios::beg );
-    LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
-    sgKpf->laden( inF );
-    int sgZNum = -1;
-    for( int i = 0; i < sgKpf->getZeichenAnzahl(); ++i )
-    {
-        if( sgKpf->getZeichen()[ i ] == zeichen )
-        {
-            sgZNum = i;
-            break;
-        }
-    }
-    if( sgZNum != -1 )
-    {
-        inF->seekg( sgKpf->getPositionen()[ sgZNum ], std::ios::beg );
-        LTDSBuchstabenKopf *sgZKpf = new LTDSBuchstabenKopf();
-        sgZKpf->laden( inF );
-        LTDSBuchstabenKörper *sgZKörp = new LTDSBuchstabenKörper( sgZKpf->getThis() );
-        sgZKörp->laden( inF );
-        ret = sgZKörp->getBuchstabe();
-        sgZKörp->release();
-        sgZKpf->release();
-    }
-    sgKpf->release();
-    inF->close();
-    delete inF;
-    if( ret )
-    {
-        ret->setSchriftGröße( schriftgröße );
-        ret->setDrawSchriftGröße( schriftgröße );
-    }
-    return ret;
+	if( !DateiExistiert( pfad->getThis() ) )
+		return 0;
+	if( !dateiKopf )
+		return 0;
+	Buchstabe *ret = 0;
+	int sgNum = -1;
+	for( int i = 0; i < dateiKopf->getSchriftGrößeAnzahl(); ++i )
+	{
+		if( dateiKopf->getSchriftGrößeList()[ i ] == schriftgröße )
+		{
+			sgNum = i;
+			break;
+		}
+	}
+	if( sgNum == -1 )
+		return 0;
+	std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+	inF->seekg( dateiKopf->getPositionList()[ sgNum ], std::ios::beg );
+	LTDSSchriftKopf *sgKpf = new LTDSSchriftKopf();
+	sgKpf->laden( inF );
+	int sgZNum = -1;
+	for( int i = 0; i < sgKpf->getZeichenAnzahl(); ++i )
+	{
+		if( sgKpf->getZeichen()[ i ] == zeichen )
+		{
+			sgZNum = i;
+			break;
+		}
+	}
+	if( sgZNum != -1 )
+	{
+		inF->seekg( sgKpf->getPositionen()[ sgZNum ], std::ios::beg );
+		LTDSBuchstabenKopf *sgZKpf = new LTDSBuchstabenKopf();
+		sgZKpf->laden( inF );
+		LTDSBuchstabenKörper *sgZKörp = new LTDSBuchstabenKörper( sgZKpf->getThis() );
+		sgZKörp->laden( inF );
+		ret = sgZKörp->getBuchstabe();
+		sgZKörp->release();
+		sgZKpf->release();
+	}
+	sgKpf->release();
+	inF->close();
+	delete inF;
+	if( ret )
+	{
+		ret->setSchriftSize( schriftgröße );
+		ret->setDrawSchriftSize( schriftgröße );
+	}
+	return ret;
 }
 
 Text *LTDSDatei::getPfad() const // gibt den Dateipfad zurück
 {
-    return pfad->getThis();
+	return pfad->getThis();
 }
 
 int LTDSDatei::getAnzahlSchriftgrößen() const // gibt die Anzahl der Schriftgrößen aus der Datei zurück
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return 0;
-    if( !dateiKopf )
-        return 0;
-    return dateiKopf->getSchriftGrößeAnzahl();
+	if( !DateiExistiert( pfad->getThis() ) )
+		return 0;
+	if( !dateiKopf )
+		return 0;
+	return dateiKopf->getSchriftGrößeAnzahl();
 }
 
 unsigned char *LTDSDatei::getSchriftGrößen() const // gibt einen Array von Schriftgrößen zurück
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return 0;
-    if( !dateiKopf )
-        return 0;
-    return dateiKopf->getSchriftGrößeList();
+	if( !DateiExistiert( pfad->getThis() ) )
+		return 0;
+	if( !dateiKopf )
+		return 0;
+	return dateiKopf->getSchriftGrößeList();
 }
 
 unsigned char LTDSDatei::getAnzahlBuchstaben( int sg ) // gibt die anzahl gespeicherter Buchstaben einer Schriftgröße zurück
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return 0;
-    if( !dateiKopf )
-        return 0;
-    int ret = 0;
-    unsigned char *größen = dateiKopf->getSchriftGrößeList();
-    unsigned char granzahl = dateiKopf->getSchriftGrößeAnzahl();
-    int grpos = -1;
-    for( int i = 0; i < granzahl; ++i )
-    {
-        if( größen[ i ] == sg )
-        {
-            grpos = i;
-            break;
-        }
-    }
-    if( grpos != -1 )
-    {
-        int *grposlist = dateiKopf->getPositionList();
-        LTDSSchriftKopf *sgkpf = new LTDSSchriftKopf();
-        std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-        inF->seekg( grposlist[ grpos ], std::ios::beg );
-        sgkpf->laden( inF );
-        ret = sgkpf->getZeichenAnzahl();
-        sgkpf->release();
-        inF->close();
-        delete inF;
-    }
-    return ret;
+	if( !DateiExistiert( pfad->getThis() ) )
+		return 0;
+	if( !dateiKopf )
+		return 0;
+	int ret = 0;
+	unsigned char *größen = dateiKopf->getSchriftGrößeList();
+	unsigned char granzahl = dateiKopf->getSchriftGrößeAnzahl();
+	int grpos = -1;
+	for( int i = 0; i < granzahl; ++i )
+	{
+		if( größen[ i ] == sg )
+		{
+			grpos = i;
+			break;
+		}
+	}
+	if( grpos != -1 )
+	{
+		int *grposlist = dateiKopf->getPositionList();
+		LTDSSchriftKopf *sgkpf = new LTDSSchriftKopf();
+		std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+		inF->seekg( grposlist[ grpos ], std::ios::beg );
+		sgkpf->laden( inF );
+		ret = sgkpf->getZeichenAnzahl();
+		sgkpf->release();
+		inF->close();
+		delete inF;
+	}
+	return ret;
 }
 
 unsigned char *LTDSDatei::getBuchstaben( int sg ) // gibt einen Array von Buchstaben einer Schriftgröße zurück
 {
-    if( !DateiExistiert( pfad->getThis() ) )
-        return 0;
-    if( !dateiKopf )
-        return 0;
-    unsigned char *ret = 0;
-    unsigned char *größen = dateiKopf->getSchriftGrößeList();
-    unsigned char granzahl = dateiKopf->getSchriftGrößeAnzahl();
-    int grpos = -1;
-    for( int i = 0; i < granzahl; ++i )
-    {
-        if( größen[ i ] == sg )
-        {
-            grpos = i;
-            break;
-        }
-    }
-    if( grpos != -1 )
-    {
-        int *grposlist = dateiKopf->getPositionList();
-        LTDSSchriftKopf *sgkpf = new LTDSSchriftKopf();
-        std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
-        inF->seekg( grposlist[ grpos ], std::ios::beg );
-        sgkpf->laden( inF );
-        int anz = sgkpf->getZeichenAnzahl();
-        ret = new unsigned char[ anz ];
-        for( int i = 0; i < anz; ++i )
-            ret[ i ] = sgkpf->getZeichen()[ i ];
-        sgkpf->release();
-        inF->close();
-        delete inF;
-    }
-    return ret;
+	if( !DateiExistiert( pfad->getThis() ) )
+		return 0;
+	if( !dateiKopf )
+		return 0;
+	unsigned char *ret = 0;
+	unsigned char *größen = dateiKopf->getSchriftGrößeList();
+	unsigned char granzahl = dateiKopf->getSchriftGrößeAnzahl();
+	int grpos = -1;
+	for( int i = 0; i < granzahl; ++i )
+	{
+		if( größen[ i ] == sg )
+		{
+			grpos = i;
+			break;
+		}
+	}
+	if( grpos != -1 )
+	{
+		int *grposlist = dateiKopf->getPositionList();
+		LTDSSchriftKopf *sgkpf = new LTDSSchriftKopf();
+		std::ifstream *inF = new std::ifstream( pfad->getText(), std::ios::binary );
+		inF->seekg( grposlist[ grpos ], std::ios::beg );
+		sgkpf->laden( inF );
+		int anz = sgkpf->getZeichenAnzahl();
+		ret = new unsigned char[ anz ];
+		for( int i = 0; i < anz; ++i )
+			ret[ i ] = sgkpf->getZeichen()[ i ];
+		sgkpf->release();
+		inF->close();
+		delete inF;
+	}
+	return ret;
 }
 
 // Reference Counting 
 LTDSDatei *LTDSDatei::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 LTDSDatei *LTDSDatei::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }
 #endif
 // Bit Funktionen
 int Framework::Bits( int a ) // gibt 1-bits in gewinschter anzahl zurück
 {
-    int ret = 0;
-    for( int i = 0; i < a; ++i )
-    {
-        ret <<= 1;
-        ++ret;
-    }
-    return ret;
+	int ret = 0;
+	for( int i = 0; i < a; ++i )
+	{
+		ret <<= 1;
+		++ret;
+	}
+	return ret;
 }
 
 int Framework::getBits( char c ) // gibt zurück, wie viele Bits c benötigt
 {
-    int ret = 0;
-    for( int i = 0; ( c & (char)Bits( i ) ) != c; ++i )
-        ++ret;
-    return ret;
+	int ret = 0;
+	for( int i = 0; ( c & (char)Bits( i ) ) != c; ++i )
+		++ret;
+	return ret;
 }

+ 27 - 27
DateiSystem.h

@@ -19,7 +19,7 @@ namespace Framework
 #endif
     class LTDBPixel; // aus dieser Datei
     class LTDBKopf; // aus dieser Datei
-    class LTDBKörper; // aus dieser Datei
+    class LTDBBody; // aus dieser Datei
     class LTDBDatei; // aus dieser Datei
     class LTDSPixel; // aus dieser Datei
 #ifdef WIN32
@@ -41,11 +41,11 @@ namespace Framework
         char iR, iG, iB, iA;
         char miR, miG, miB, miA;
         char maxIndex; // Länge des Pixels
-        bool änder : 1; // Verändert sich etwas an den volgenden 5 Variablen
-        bool änderR : 1; // Ändert sich Rot
-        bool änderG : 1; // Ändert sich Grün
-        bool änderB : 1; // Ändert sich Blau
-        bool änderA : 1; // Ändert sich Alpha
+        bool change : 1; // Verändert sich etwas an den volgenden 5 Variablen
+        bool changeR : 1; // Ändert sich Rot
+        bool changeG : 1; // Ändert sich Grün
+        bool changeB : 1; // Ändert sich Blau
+        bool changeA : 1; // Ändert sich Alpha
         unsigned char komp : 3; // Komprimierung der Farbwerte
         unsigned char R; // Rot
         unsigned char G; // Grün
@@ -79,13 +79,13 @@ namespace Framework
         // Gibt den Farbwert des Pixels zurück
         __declspec( dllexport ) int zuFarbe() const;
         // Gibt zurück, ob sich der Anteil an Rot in der Farbe im Vergleich zum Pixel davor geändert hat
-        __declspec( dllexport ) bool getÄnderR() const;
+        __declspec( dllexport ) bool getChangeR() const;
         // Gibt zurück, ob sich der Anteil an Grün in der Farbe im Vergleich zum Pixel davor geändert hat
-        __declspec( dllexport ) bool getÄnderG() const;
+        __declspec( dllexport ) bool getChangeG() const;
         // Gibt zurück, ob sich der Anteil an Blau in der Farbe im Vergleich zum Pixel davor geändert hat
-        __declspec( dllexport ) bool getÄnderB() const;
+        __declspec( dllexport ) bool getChangeB() const;
         // Gibt zurück, ob sich der Anteil an Alpha in der Farbe im Vergleich zum Pixel davor geändert hat
-        __declspec( dllexport ) bool getÄnderA() const;
+        __declspec( dllexport ) bool getChangeA() const;
         // Gibt die Komprimierung des Pixels zurück
         __declspec( dllexport ) unsigned char getKomp() const;
         // Gibt den Anteil an Rot in der Farbe des Pixels zurück
@@ -192,10 +192,10 @@ namespace Framework
         __declspec( dllexport ) void laden( std::ifstream *f );
         // Setzt die Informationen die gespeichert werden sollen
         //  titel: Der Titel des Bildes
-        //  größe: Die Größe des Bildes
+        //  size: Die Größe des Bildes
         //  return: Die Anzahl der Buchstaben aus dem Titel, die im LTDB Dateiformat nicht gespeichert werden können. Erlaubt ist nur a-z und A-Z und ä ü ö ß und Ä Ü Ö und .
         // Alle großbuchstaben im Titel werden in Kleinbuchstaben umgewandelt
-        __declspec( dllexport ) int Init( Text *titel, const Punkt &größe );
+        __declspec( dllexport ) int Init( Text *titel, const Punkt &size );
         // Lähd informationen aus geladenen Bits. Wird von der laden( std::ifstream ) Funktion verwendet.
         //  BeginBit: Der Index des ersten Bits, welches ausgewertet werden soll
         //  EndBit: Der Index des letzten Bits, welches nichtmehr ausgewertet werden soll
@@ -206,11 +206,11 @@ namespace Framework
         //  f: Der geöffnete und an die richtiege Stelle zeigende ofstream der LTDB Datei
         __declspec( dllexport ) void speichern( std::ofstream *f ) const;
         // Gibt die Länge des Titels zurück
-        __declspec( dllexport ) int getTitelLänge() const;
+        __declspec( dllexport ) int getTitelLength() const;
         // Gibt den Titel des Bildes zurück
         __declspec( dllexport ) Text *getTitel() const;
         // Gibt die Größe des Bildes zurück
-        __declspec( dllexport ) Punkt getGröße() const;
+        __declspec( dllexport ) Punkt getSize() const;
         // Gibt die nächsten zu speichernden Bits zurück
         //  begin: Der Index des ersten Bits, in das gespeichert werden soll
         //  end: Der Index des letzten Bits, in das gespeichert werden soll
@@ -226,22 +226,22 @@ namespace Framework
     };
 
     // Verwaltet die Pixeldaten eines einzelnen Bildes einer LTDB Datei
-    class LTDBKörper
+    class LTDBBody
     {
     private:
         Punkt gr;
         Bild *b;
-        int dateiLänge;
+        int dateiSize;
         int ref;
 
     public:
         // Konstruktor 
-        __declspec( dllexport ) LTDBKörper();
+        __declspec( dllexport ) LTDBBody();
         // Konstruktor
         //  k: Der LTDB Kopf des Bildes, der Informationen über die Größe des Bildes enthält
-        __declspec( dllexport ) LTDBKörper( LTDBKopf *k );
+        __declspec( dllexport ) LTDBBody( LTDBKopf *k );
         // Destruktor 
-        __declspec( dllexport ) ~LTDBKörper();
+        __declspec( dllexport ) ~LTDBBody();
         // Setzt die Informationen über die Größe des Bildes. Wird zum Laden benötigt.
         //  k: Der LTDB Kopf des Bildes
         __declspec( dllexport ) void init( LTDBKopf k );
@@ -262,13 +262,13 @@ namespace Framework
         // Gibt das geladene Bild zurück
         __declspec( dllexport ) Bild *getBild() const;
         // Gibt die Größe des Bildes zurück
-        __declspec( dllexport ) const Punkt &getGröße() const;
+        __declspec( dllexport ) const Punkt &getSize() const;
         // Erhöht den Reference Counting Zähler.
         //  return: this.
-        __declspec( dllexport ) LTDBKörper *getThis();
+        __declspec( dllexport ) LTDBBody *getThis();
         // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
         //  return: 0.
-        __declspec( dllexport ) LTDBKörper *release();
+        __declspec( dllexport ) LTDBBody *release();
     };
 
     // Verwaltet eine LTDB Datei
@@ -294,11 +294,11 @@ namespace Framework
         //  zF: Ein Fortschrittsbalken, der 0 sein kann
         __declspec( dllexport ) void leseDaten( FBalken *zF );
         // Löscht die LTDB Datei
-        __declspec( dllexport ) void löschen();
+        __declspec( dllexport ) void remove();
         // Löscht ein Bild aus der LTDB Datei
         //  zF: Ein Fortschrittsbalken der 0 sein kann
         //  name: Der Name des zu löschenden Bildes
-        __declspec( dllexport ) void löschen( FBalken *zF, Text *name );
+        __declspec( dllexport ) void remove( FBalken *zF, Text *name );
         // Lädt ein Bild aus der LTDB Datei
         //  zF: Ein Fortschrittsbalken, der 0 sein kann
         //  name: Der Name des Bildes, welches geladen werden soll
@@ -428,7 +428,7 @@ namespace Framework
     {
     private:
         int ref;
-        unsigned char schriftGröße;
+        unsigned char schriftSize;
         unsigned char *zeichen;
         int *pos;
         unsigned char zeichenAnzahl;
@@ -478,7 +478,7 @@ namespace Framework
     private:
         int ref;
         unsigned char zeichen;
-        Punkt größe;
+        Punkt size;
 
     public:
         // Konstruktor 
@@ -519,7 +519,7 @@ namespace Framework
     {
     private:
         int ref;
-        Punkt größe;
+        Punkt size;
         unsigned char zeichen;
         Buchstabe *buchstabe;
 

+ 120 - 120
Diagramm.cpp

@@ -50,7 +50,7 @@ void SLDiag::setSchriftZ( Schrift *schrift ) // setzt die Schrift
     rend = 1;
 }
 
-void SLDiag::setGGröße( Punkt &gr ) // setzt die Größe des Gitters
+void SLDiag::setGSize( Punkt &gr ) // setzt die Größe des Gitters
 {
     gitterGr = gr;
     rend = 1;
@@ -98,8 +98,8 @@ void SLDiag::addPunkt( int lNum, int x, int h ) // f
             pb_tmp->set( i, 0 );
         while( i < 0 )
         {
-            ph_tmp->lösche( 0 );
-            pb_tmp->lösche( 0 );
+            ph_tmp->remove( 0 );
+            pb_tmp->remove( 0 );
             if( !pb_tmp->getEintragAnzahl() || !ph_tmp->getEintragAnzahl() )
                 break;
             int ii = -i;
@@ -116,10 +116,10 @@ void SLDiag::addPunkt( int lNum, int x, int h ) // f
 
 void SLDiag::removeLinie( int lNum ) // entfernt eine Linie
 {
-    lFarbe->lösche( lNum );
-    lName->lösche( lNum );
-    ph->lösche( lNum );
-    pb->lösche( lNum );
+    lFarbe->remove( lNum );
+    lName->remove( lNum );
+    ph->remove( lNum );
+    pb->remove( lNum );
     --lines;
     rend = 1;
 }
@@ -129,36 +129,36 @@ void SLDiag::render( Bild &zRObj ) // zeichnet nach zRObj
     if( hatStyle( Style::Sichtbar ) )
     {
         lockZeichnung();
-        löscheStyle( Style::VScroll | Style::HScroll );
-        __super::render( zRObj );
-        if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
+        removeStyle( Style::VScroll | Style::HScroll );
+		ZeichnungHintergrund::render( zRObj );
+        if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
         {
             unlockZeichnung();
             return;
         }
-        int hv = getHöchstValue();
+        int hv = getHighestValue();
         hv = hv ? hv : 1;
-        double yFaktor = innenGröße.y / hv;
+        double yFaktor = innenSize.y / hv;
         if( hatStyle( Style::Gitter ) )
         {
-            double ghö = gitterGr.y * yFaktor;
-            int yo = innenGröße.y - 1;
-            int bo = innenGröße.x, ho = innenGröße.y;
-            int maxBr = (int)( (double)innenGröße.x / gitterGr.x + 0.5 );
-            int maxHö = ghö ? (int)( innenGröße.y / ghö + 0.5 ) : 0;
+            double ghi = gitterGr.y * yFaktor;
+            int yo = innenSize.y - 1;
+            int bo = innenSize.x, ho = innenSize.y;
+            int maxBr = (int)( (double)innenSize.x / gitterGr.x + 0.5 );
+            int maxHi = ghi ? (int)( innenSize.y / ghi + 0.5 ) : 0;
             if( hatStyle( Style::HAlpha ) )
             {
                 for( int i = 0; i < maxBr; ++i )
                     zRObj.drawLinieVAlpha( gitterGr.x * i, 0, ho, gF );
-                for( int i = 0; i < maxHö; ++i )
-                    zRObj.drawLinieHAlpha( 0, (int)( yo - ghö * i + 0.5 ), bo, gF );
+                for( int i = 0; i < maxHi; ++i )
+                    zRObj.drawLinieHAlpha( 0, (int)( yo - ghi * i + 0.5 ), bo, gF );
             }
             else
             {
                 for( int i = 0; i < maxBr; ++i )
                     zRObj.drawLinieV( gitterGr.x * i, 0, ho, gF );
-                for( int i = 0; i < maxHö; ++i )
-                    zRObj.drawLinieH( 0, (int)( yo - ghö * i + 0.5 ), bo, gF );
+                for( int i = 0; i < maxHi; ++i )
+                    zRObj.drawLinieH( 0, (int)( yo - ghi * i + 0.5 ), bo, gF );
             }
         }
         for( int i = 0; i < lines; ++i )
@@ -169,7 +169,7 @@ void SLDiag::render( Bild &zRObj ) // zeichnet nach zRObj
             Array< int > *pb_tmp = pb->z( i );
             if( hatStyle( Style::LinienName ) && schrift && n_tmp )
             {
-                schrift->setSchriftGröße( 12 );
+                schrift->setSchriftSize( 12 );
                 schrift->setDrawPosition( 5, 5 + 15 * i );
                 Text rtxt = n_tmp->getText();
                 rtxt += ": ";
@@ -179,7 +179,7 @@ void SLDiag::render( Bild &zRObj ) // zeichnet nach zRObj
             if( ph_tmp && pb_tmp )
             {
                 int lastX = 0;
-                int lastY = innenGröße.y - 1;
+                int lastY = innenSize.y - 1;
                 int ph_anz = ph_tmp->getEintragAnzahl();
                 int pb_anz = pb_tmp->getEintragAnzahl();
                 for( int ii = 0; ii < ph_anz && ii < pb_anz; ++ii )
@@ -187,7 +187,7 @@ void SLDiag::render( Bild &zRObj ) // zeichnet nach zRObj
                     if( !ph_tmp || !pb_tmp )
                         break;
                     int xpos = lastX + pb_tmp->get( ii );
-                    int ypos = innenGröße.y - (int)( ph_tmp->get( ii ) * yFaktor + 0.5 ) - 1;
+                    int ypos = innenSize.y - (int)( ph_tmp->get( ii ) * yFaktor + 0.5 ) - 1;
                     if( ypos == -1 )
                         ++ypos;
                     if( ypos < 0 || xpos < 0 )
@@ -219,7 +219,7 @@ Schrift *SLDiag::zSchrift() const
     return schrift;
 }
 
-const Punkt &SLDiag::getGGröße() const // gibt die Gitter Größe zurück
+const Punkt &SLDiag::getGSize() const // gibt die Gitter Größe zurück
 {
     return gitterGr;
 }
@@ -263,18 +263,18 @@ Text *SLDiag::zLinienNamen( int lNum ) const
     return lName->z( lNum );
 }
 
-int SLDiag::getHöchstValue() const // gibt den Höchsten Wert zurück
+int SLDiag::getHighestValue() const // gibt den Höchsten Wert zurück
 {
     int ret = 0;
     for( int i = 0; i < lines; ++i )
     {
-        int tmp = getHöchstValue( i );
+        int tmp = getHighestValue( i );
         ret = ret >= tmp ? ret : tmp;
     }
     return ret;
 }
 
-int SLDiag::getHöchstValue( int lNum ) const
+int SLDiag::getHighestValue( int lNum ) const
 {
     int ret = 0;
     Array< int > *tmp = ph->z( lNum );
@@ -367,7 +367,7 @@ DiagDaten::DiagDaten()
     : style( 0 ),
     rasterDicke( 0 ),
     rasterBreite( 0 ),
-    rasterHöhe( 0 ),
+    rasterHeight( 0 ),
     rasterFarbe( 0 ),
     hIntervallFarbe( 0xFFFFFFFF ),
     vIntervallFarbe( 0xFFFFFFFF ),
@@ -378,7 +378,7 @@ DiagDaten::DiagDaten()
     hIntervallWerte( new Array< double > ),
     vIntervallWerte( new Array< double > ),
     hIntervallBreite( 0 ),
-    vIntervallHöhe( 0 ),
+    vIntervallHeight( 0 ),
     werte( new RCArray< DiagWert >() ),
     ref( 1 )
 {}
@@ -415,9 +415,9 @@ DiagDaten *DiagDaten::release()
 // Konstruktor
 BaseDiag::BaseDiag( CRITICAL_SECTION *lock )
     : daten( new DiagDaten() ),
-    ref( 1 ),
     changed( 0 ),
-    lock( lock )
+    lock( lock ),
+	ref( 1 )
 {}
 
 // Destruktor
@@ -445,7 +445,7 @@ void BaseDiag::setDiagDaten( DiagDaten *dd ) // Kopiert die Daten eines Diagramm
         daten = new DiagDaten();
     daten->style = dd->style;
     daten->rasterBreite = dd->rasterBreite;
-    daten->rasterHöhe = dd->rasterHöhe;
+    daten->rasterHeight = dd->rasterHeight;
     daten->rasterFarbe = dd->rasterFarbe;
     daten->hIntervallFarbe = dd->hIntervallFarbe;
     daten->vIntervallFarbe = dd->vIntervallFarbe;
@@ -464,7 +464,7 @@ void BaseDiag::setDiagDaten( DiagDaten *dd ) // Kopiert die Daten eines Diagramm
             daten->vIntervallWerte->set( dd->vIntervallWerte->get( i ), i );
     }
     daten->hIntervallBreite = dd->hIntervallBreite;
-    daten->vIntervallHöhe = dd->vIntervallHöhe;
+    daten->vIntervallHeight = dd->vIntervallHeight;
     anz = dd->werte->getEintragAnzahl();
     for( int i = 0; i < anz; ++i )
     {
@@ -517,14 +517,14 @@ void BaseDiag::setRasterBreite( int br ) // Rasterbreite setzen
     LeaveCriticalSection( lock );
 }
 
-void BaseDiag::setRasterHöhe( int hö ) // Rasterhöhe setzen
+void BaseDiag::setRasterHeight( int hi ) // Rasterhöhe setzen
 {
     EnterCriticalSection( lock );
     if( !daten )
         daten = new DiagDaten();
-    if( daten->rasterHöhe != hö )
+    if( daten->rasterHeight != hi )
         changed = 1;
-    daten->rasterHöhe = hö;
+    daten->rasterHeight = hi;
     LeaveCriticalSection( lock );
 }
 
@@ -548,12 +548,12 @@ void BaseDiag::setHIntervallBreite( double br ) // Intervall Breite
     LeaveCriticalSection( lock );
 }
 
-void BaseDiag::setVIntervallHöhe( double hö ) // Intervall Höhe
+void BaseDiag::setVIntervallHeight( double hi ) // Intervall Höhe
 {
     EnterCriticalSection( lock );
     if( !daten )
         daten = new DiagDaten();
-    daten->vIntervallHöhe = hö;
+    daten->vIntervallHeight = hi;
     LeaveCriticalSection( lock );
 }
 
@@ -703,7 +703,7 @@ void BaseDiag::setHIntervallText( double hIntervall, char *text )
     changed = 1;
 }
 
-void BaseDiag::löscheHIntervallText( double hIntervall ) // Text eines Horizontalen Intervalls entfernen
+void BaseDiag::removeHIntervallText( double hIntervall ) // Text eines Horizontalen Intervalls entfernen
 {
     EnterCriticalSection( lock );
     if( !daten )
@@ -717,8 +717,8 @@ void BaseDiag::l
     {
         if( daten->hIntervallWerte->hat( i ) && daten->hIntervallWerte->get( i ) == hIntervall )
         {
-            daten->hIntervallTexte->lösche( i );
-            daten->hIntervallWerte->lösche( i );
+            daten->hIntervallTexte->remove( i );
+            daten->hIntervallWerte->remove( i );
             LeaveCriticalSection( lock );
             changed = 1;
             return;
@@ -799,7 +799,7 @@ void BaseDiag::setVIntervallText( double vIntervall, char *text )
     changed = 1;
 }
 
-void BaseDiag::löscheVIntervallText( double vIntervall ) // Text eines Vertikalen Intervalls entfernen
+void BaseDiag::removeVIntervallText( double vIntervall ) // Text eines Vertikalen Intervalls entfernen
 {
     EnterCriticalSection( lock );
     if( !daten )
@@ -813,8 +813,8 @@ void BaseDiag::l
     {
         if( daten->vIntervallWerte->hat( i ) && daten->vIntervallWerte->get( i ) == vIntervall )
         {
-            daten->vIntervallTexte->lösche( i );
-            daten->vIntervallWerte->lösche( i );
+            daten->vIntervallTexte->remove( i );
+            daten->vIntervallWerte->remove( i );
             LeaveCriticalSection( lock );
             changed = 1;
             return;
@@ -1021,7 +1021,7 @@ void BaseDiag::setPunkt( int wNum, int pNum, double h, double v )
 }
 
 // Löscht einen vorhandenen Punkt
-void BaseDiag::löschePunkt( int wNum, double hI )
+void BaseDiag::removePunkt( int wNum, double hI )
 {
     EnterCriticalSection( lock );
     if( !daten )
@@ -1038,7 +1038,7 @@ void BaseDiag::l
         if( daten->werte->z( wNum )->punkte->hat( i ) && daten->werte->z( wNum )->punkte->get( i )->hIntervall == hI )
         {
             delete daten->werte->z( wNum )->punkte->get( i );
-            daten->werte->z( wNum )->punkte->lösche( i );
+            daten->werte->z( wNum )->punkte->remove( i );
             LeaveCriticalSection( lock );
             changed = 1;
             return;
@@ -1047,7 +1047,7 @@ void BaseDiag::l
     LeaveCriticalSection( lock );
 }
 
-void BaseDiag::löschePunkt( int wNum, int pNum )
+void BaseDiag::removePunkt( int wNum, int pNum )
 {
     EnterCriticalSection( lock );
     if( !daten )
@@ -1061,7 +1061,7 @@ void BaseDiag::l
     if( daten->werte->z( wNum )->punkte->hat( pNum ) )
     {
         delete daten->werte->z( wNum )->punkte->get( pNum );
-        daten->werte->z( wNum )->punkte->lösche( pNum );
+        daten->werte->z( wNum )->punkte->remove( pNum );
         changed = 1;
     }
     LeaveCriticalSection( lock );
@@ -1074,7 +1074,7 @@ void BaseDiag::removeWert( int wNum ) // entfernt einen Wert
         daten = new DiagDaten();
     if( !daten->werte )
         daten->werte = new RCArray< DiagWert >();
-    daten->werte->lösche( wNum );
+    daten->werte->remove( wNum );
     LeaveCriticalSection( lock );
     changed = 1;
 }
@@ -1092,7 +1092,7 @@ void BaseDiag::removeWert( char *name )
         DiagWert *tmp = daten->werte->z( i );
         if( tmp && tmp->name && tmp->name->istGleich( name ) )
         {
-            daten->werte->lösche( i );
+            daten->werte->remove( i );
             LeaveCriticalSection( lock );
             changed = 1;
             return;
@@ -1130,10 +1130,10 @@ void BaseDiag::setDatenStyle( int style, bool addRemove )
     if( addRemove )
         addDatenStyle( style );
     else
-        löscheDatenStyle( style );
+        removeDatenStyle( style );
 }
 
-void BaseDiag::löscheDatenStyle( int style )
+void BaseDiag::removeDatenStyle( int style )
 {
     if( !daten )
         daten = new DiagDaten();
@@ -1175,10 +1175,10 @@ void BaseDiag::setWertStyle( int wNum, int style, bool addRemove )
     if( addRemove )
         addWertStyle( wNum, style );
     else
-        löscheWertStyle( wNum, style );
+        removeWertStyle( wNum, style );
 }
 
-void BaseDiag::löscheWertStyle( int wNum, int style )
+void BaseDiag::removeWertStyle( int wNum, int style )
 {
     if( wNum < 0 )
         return;
@@ -1342,7 +1342,7 @@ void LDiag::setSchriftZ( Schrift *schrift ) // Setzt die Schrift
     unlockZeichnung();
 }
 
-void LDiag::setSchriftGröße( int gr )
+void LDiag::setSchriftSize( int gr )
 {
     lockZeichnung();
     if( schriftGr != gr )
@@ -1416,8 +1416,8 @@ void LDiag::setDatenHintergrundBild( Bild *b )
     lockZeichnung();
     if( !dBgB )
         dBgB = new Bild();
-    dBgB->neuBild( b->getBreite(), b->getHöhe(), 0 );
-    dBgB->drawBild( 0, 0, b->getBreite(), b->getHöhe(), *b );
+    dBgB->neuBild( b->getBreite(), b->getHeight(), 0 );
+    dBgB->drawBild( 0, 0, b->getBreite(), b->getHeight(), *b );
     unlockZeichnung();
     b->release();
     rend = 1;
@@ -1439,7 +1439,7 @@ void LDiag::setDatenAlphaFeld( AlphaFeld *af )
     if( !dAf )
         dAf = new AlphaFeld();
     dAf->setFarbe( af->getFarbe() );
-    dAf->setStärke( af->getStärke() );
+    dAf->setStrength( af->getStrength() );
     unlockZeichnung();
     af->release();
     rend = 1;
@@ -1455,14 +1455,14 @@ void LDiag::setDatenAlphaFeldFarbe( int f )
     rend = 1;
 }
 
-void LDiag::setDatenAlphaFeldStärke( int st )
+void LDiag::setDatenAlphaFeldStrength( int st )
 {
     lockZeichnung();
     if( !dAf )
         dAf = new AlphaFeld();
-    if( dAf->getStärke() != st )
+    if( dAf->getStrength() != st )
         rend = 1;
-    dAf->setStärke( st );
+    dAf->setStrength( st );
     unlockZeichnung();
 }
 
@@ -1477,7 +1477,7 @@ void LDiag::doMausEreignis( MausEreignis &me )
             if( toolTip )
                 toolTip->setMausIn( 0 );
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -1485,13 +1485,13 @@ void LDiag::doMausEreignis( MausEreignis &me )
             return;
         }
     }
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt )
+    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves )
     {
         if( toolTip )
             toolTip->setMausIn( 0 );
         return;
     }
-    if( !mausIn && me.id != ME_Verlässt )
+    if( !mausIn && me.id != ME_Leaves )
     {
         if( toolTip )
             toolTip->setMausIn( 1 );
@@ -1509,7 +1509,7 @@ void LDiag::doMausEreignis( MausEreignis &me )
     {
         if( Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
         {
-            if( me.id != ME_Betritt && me.id != ME_Verlässt )
+            if( me.id != ME_Betritt && me.id != ME_Leaves )
             {
                 lockZeichnung();
                 int rbr = 0;
@@ -1540,20 +1540,20 @@ void LDiag::render( Bild &zRObj )
 {
     if( !hatDatenStyle( DiagDaten::Style::Sichtbar ) )
         return;
-    __super::render( zRObj );
-    if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
+	ZeichnungHintergrund::render( zRObj );
+    if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
         return;
     lockZeichnung();
     int dgy = 0;
-    int dgbr = innenGröße.x;
-    int dghö = innenGröße.y;
+    int dgbr = innenSize.x;
+    int dghi = innenSize.y;
     int vIAnz = 0;
     int hIAnz = 0;
     if( daten )
     { // Auto werte berechnen
         vIAnz = daten->vIntervallWerte ? daten->vIntervallWerte->getEintragAnzahl() : 0;
         hIAnz = daten->hIntervallWerte ? daten->hIntervallWerte->getEintragAnzahl() : 0;
-        if( daten->vIntervallWerte && hatDatenStyle( DiagDaten::Style::AutoIntervallHöhe ) )
+        if( daten->vIntervallWerte && hatDatenStyle( DiagDaten::Style::AutoIntervallHeight ) )
         {
             double maxW = 0;
             for( int i = 0; i < vIAnz; ++i )
@@ -1562,12 +1562,12 @@ void LDiag::render( Bild &zRObj )
                     maxW = daten->vIntervallWerte->get( i );
             }
             if( vertikalScrollBar && hatStyle( Style::VScroll ) )
-                daten->vIntervallHöhe = maxW ? ( vertikalScrollBar->getScroll() / maxW ) : 0;
+                daten->vIntervallHeight = maxW ? ( vertikalScrollBar->getScroll() / maxW ) : 0;
             else
-                daten->vIntervallHöhe = maxW ? ( vIntervallRB->getBreite() / maxW ) : 0;
+                daten->vIntervallHeight = maxW ? ( vIntervallRB->getBreite() / maxW ) : 0;
         }
-        if( hatDatenStyle( DiagDaten::Style::AutoRasterHöhe ) )
-            daten->rasterHöhe = daten->vIntervallHöhe;
+        if( hatDatenStyle( DiagDaten::Style::AutoRasterHeight ) )
+            daten->rasterHeight = daten->vIntervallHeight;
         if( daten->hIntervallWerte && hatDatenStyle( DiagDaten::Style::AutoIntervallBreite ) )
         {
             double maxW = 0;
@@ -1586,17 +1586,17 @@ void LDiag::render( Bild &zRObj )
     }
     if( hatDatenStyle( DiagDaten::Style::VIntervall ) && schrift && schriftGr && daten )
     { // Rendern des vertikalen Intervalls
-        int vIRBbr = innenGröße.y;
+        int vIRBbr = innenSize.y;
         if( hatDatenStyle( DiagDaten::Style::HIntervall ) && daten->hIntervallFarbe )
             vIRBbr -= schriftGr + 2;
         if( vIRBbr > 0 )
         {
-            if( vIntervallRB->getBreite() != vIRBbr || vIntervallRB->getHöhe() != schriftGr + 2 )
+            if( vIntervallRB->getBreite() != vIRBbr || vIntervallRB->getHeight() != schriftGr + 2 )
                 vIntervallRB->neuBild( vIRBbr, schriftGr + 2, 0 );
             else
-                vIntervallRB->füllRegion( 0, 0, vIRBbr, schriftGr + 2, 0 );
+                vIntervallRB->fillRegion( 0, 0, vIRBbr, schriftGr + 2, 0 );
             schrift->lock();
-            schrift->setSchriftGröße( schriftGr );
+            schrift->setSchriftSize( schriftGr );
             if( daten->vIntervallWerte )
             {
                 int *rf = new int[ vIAnz ];
@@ -1634,7 +1634,7 @@ void LDiag::render( Bild &zRObj )
                         txt = daten->vIntervallTexte->z( rf[ i ] )->getText();
                     else if( hatDatenStyleNicht( DiagDaten::Style::VIntervallTexte ) || !daten->vIntervallWerte )
                         txt = daten->vIntervallWerte->get( rf[ i ] );
-                    xPos = (int)( daten->vIntervallWerte->get( rf[ i ] ) * daten->vIntervallHöhe );
+                    xPos = (int)( daten->vIntervallWerte->get( rf[ i ] ) * daten->vIntervallHeight );
                     xPos = ( vertikalScrollBar && hatStyle( Style::VScroll ) ? vertikalScrollBar->getScroll() : vIntervallRB->getBreite() ) - xPos;
                     if( vertikalScrollBar && hatStyle( Style::VScroll ) )
                         xPos -= vertikalScrollBar->getScroll();
@@ -1654,31 +1654,31 @@ void LDiag::render( Bild &zRObj )
             {
                 int vinbr = schrift->getTextBreite( daten->vIntervallName );
                 int vinx = vIntervallRB->getBreite() / 2 - vinbr / 2;
-                vIntervallRB->füllRegion( vinx - 5, 1, vinbr + 10, schriftGr, 0 );
+                vIntervallRB->fillRegion( vinx - 5, 1, vinbr + 10, schriftGr, 0 );
                 schrift->setDrawPosition( vinx, 1 );
                 schrift->renderText( daten->vIntervallName, *vIntervallRB, daten->vIntervallFarbe );
             }
             schrift->unlock();
             if( hatDatenStyle( DiagDaten::Style::HIntervall ) && daten->hIntervallFarbe )
-                zRObj.alphaBild90( innenGröße.x - vIntervallRB->getHöhe(), schriftGr + 2, vIntervallRB->getBreite(), vIntervallRB->getHöhe(), *vIntervallRB );
+                zRObj.alphaBild90( innenSize.x - vIntervallRB->getHeight(), schriftGr + 2, vIntervallRB->getBreite(), vIntervallRB->getHeight(), *vIntervallRB );
             else
-                zRObj.alphaBild90( innenGröße.x - vIntervallRB->getHöhe(), 0, vIntervallRB->getBreite(), vIntervallRB->getHöhe(), *vIntervallRB );
-            dgbr -= vIntervallRB->getHöhe();
+                zRObj.alphaBild90( innenSize.x - vIntervallRB->getHeight(), 0, vIntervallRB->getBreite(), vIntervallRB->getHeight(), *vIntervallRB );
+            dgbr -= vIntervallRB->getHeight();
         }
     }
     if( hatDatenStyle( DiagDaten::Style::HIntervall ) && schrift && schriftGr && daten )
     { // Rendern des horizontalen Intervalls
-        int hIRBbr = innenGröße.x;
+        int hIRBbr = innenSize.x;
         if( hatDatenStyle( DiagDaten::Style::VIntervall ) && daten->vIntervallFarbe )
             hIRBbr -= schriftGr + 2;
         if( hIRBbr > 0 )
         {
-            if( hIntervallRB->getBreite() != hIRBbr || hIntervallRB->getHöhe() != schriftGr + 2 )
+            if( hIntervallRB->getBreite() != hIRBbr || hIntervallRB->getHeight() != schriftGr + 2 )
                 hIntervallRB->neuBild( hIRBbr, schriftGr + 2, 0 );
             else
-                hIntervallRB->füllRegion( 0, 0, hIRBbr, schriftGr + 2, 0 );
+                hIntervallRB->fillRegion( 0, 0, hIRBbr, schriftGr + 2, 0 );
             schrift->lock();
-            schrift->setSchriftGröße( schriftGr );
+            schrift->setSchriftSize( schriftGr );
             if( daten->hIntervallWerte )
             {
                 int *rf = new int[ hIAnz ];
@@ -1735,17 +1735,17 @@ void LDiag::render( Bild &zRObj )
             {
                 int hinbr = schrift->getTextBreite( daten->hIntervallName );
                 int hinx = hIntervallRB->getBreite() / 2 - hinbr / 2;
-                hIntervallRB->füllRegion( hinx - 5, 1, hinbr + 10, schriftGr, 0 );
+                hIntervallRB->fillRegion( hinx - 5, 1, hinbr + 10, schriftGr, 0 );
                 schrift->setDrawPosition( hinx, 1 );
                 schrift->renderText( daten->hIntervallName, *hIntervallRB, daten->hIntervallFarbe );
             }
             schrift->unlock();
-            zRObj.alphaBild( 0, 0, hIntervallRB->getBreite(), hIntervallRB->getHöhe(), *hIntervallRB );
-            dghö -= hIntervallRB->getHöhe();
-            dgy += hIntervallRB->getHöhe();
+            zRObj.alphaBild( 0, 0, hIntervallRB->getBreite(), hIntervallRB->getHeight(), *hIntervallRB );
+            dghi -= hIntervallRB->getHeight();
+            dgy += hIntervallRB->getHeight();
         }
     }
-    if( !zRObj.setDrawOptions( 0, dgy, dgbr, dghö ) )
+    if( !zRObj.setDrawOptions( 0, dgy, dgbr, dghi ) )
     {
         zRObj.releaseDrawOptions();
         unlockZeichnung();
@@ -1755,11 +1755,11 @@ void LDiag::render( Bild &zRObj )
     int dgrbr = 0;
     if( hatStyle( Style::DatenRahmen ) && dRam )
     {
-        dRam->setGröße( dgbr, dghö );
+        dRam->setSize( dgbr, dghi );
         dRam->render( zRObj );
         dgrbr = dRam->getRBreite();
     }
-    if( !zRObj.setDrawOptions( dgrbr, dgrbr, dgbr - dgrbr * 2, dghö - dgrbr * 2 ) )
+    if( !zRObj.setDrawOptions( dgrbr, dgrbr, dgbr - dgrbr * 2, dghi - dgrbr * 2 ) )
     {
         zRObj.releaseDrawOptions();
         zRObj.releaseDrawOptions();
@@ -1769,41 +1769,41 @@ void LDiag::render( Bild &zRObj )
     if( hatStyle( Style::DatenHintergrund ) )
     {
         if( hatStyle( Style::DatenHAlpha ) )
-            zRObj.alphaRegion( 0, 0, dgbr - dgrbr * 2, dghö - dgrbr * 2, dBgF );
+            zRObj.alphaRegion( 0, 0, dgbr - dgrbr * 2, dghi - dgrbr * 2, dBgF );
         else
-            zRObj.füllRegion( 0, 0, dgbr - dgrbr * 2, dghö - dgrbr * 2, dBgF );
+            zRObj.fillRegion( 0, 0, dgbr - dgrbr * 2, dghi - dgrbr * 2, dBgF );
         if( hatStyle( Style::DatenHBild ) && dBgB )
         {
             if( hatStyle( Style::DatenHAlpha ) )
-                zRObj.alphaBild( 0, 0, dgbr - dgrbr * 2, dghö - dgrbr * 2, *dBgB );
+                zRObj.alphaBild( 0, 0, dgbr - dgrbr * 2, dghi - dgrbr * 2, *dBgB );
             else
-                zRObj.drawBild( 0, 0, dgbr - dgrbr * 2, dghö - dgrbr * 2, *dBgB );
+                zRObj.drawBild( 0, 0, dgbr - dgrbr * 2, dghi - dgrbr * 2, *dBgB );
         }
     }
     if( hatStyle( Style::DatenBuffered ) && dAf )
     {
-        dAf->setGröße( dgbr - dgrbr * 2, dghö - dgrbr * 2 );
+        dAf->setSize( dgbr - dgrbr * 2, dghi - dgrbr * 2 );
         dAf->render( zRObj );
     }
-    if( hatDatenStyle( DiagDaten::Style::Raster ) && daten && daten->rasterDicke && daten->rasterBreite && daten->rasterHöhe )
+    if( hatDatenStyle( DiagDaten::Style::Raster ) && daten && daten->rasterDicke && daten->rasterBreite && daten->rasterHeight )
     { // Raster
         int maxBr = dgbr;
         if( horizontalScrollBar && hatStyle( Style::HScroll ) )
             maxBr = horizontalScrollBar->getScroll();
-        int maxHö = dghö;
+        int maxHi = dghi;
         if( vertikalScrollBar && hatStyle( Style::VScroll ) )
-            maxHö = vertikalScrollBar->getScroll();
+            maxHi = vertikalScrollBar->getScroll();
         for( double x = horizontalScrollBar && hatStyle( Style::HScroll ) ? -horizontalScrollBar->getScroll() : 0; x < maxBr; x += daten->rasterBreite )
         {
             for( int i = 0; i < daten->rasterDicke; ++i )
             {
                 if( hatDatenStyle( DiagDaten::Style::RasterAlpha ) )
-                    zRObj.drawLinieVAlpha( (int)( x + i ), dgy + dgrbr, dghö - dgrbr * 2, daten->rasterFarbe );
+                    zRObj.drawLinieVAlpha( (int)( x + i ), dgy + dgrbr, dghi - dgrbr * 2, daten->rasterFarbe );
                 else
-                    zRObj.drawLinieV( (int)( x + i ), dgy + dgrbr, dghö - dgrbr * 2, daten->rasterFarbe );
+                    zRObj.drawLinieV( (int)( x + i ), dgy + dgrbr, dghi - dgrbr * 2, daten->rasterFarbe );
             }
         }
-        for( double y = maxHö; y > ( vertikalScrollBar && hatStyle( Style::VScroll ) ? -vertikalScrollBar->getScroll() : 0 ); y -= daten->rasterHöhe )
+        for( double y = maxHi; y > ( vertikalScrollBar && hatStyle( Style::VScroll ) ? -vertikalScrollBar->getScroll() : 0 ); y -= daten->rasterHeight )
         {
             for( int i = 0; i < daten->rasterDicke; ++i )
             {
@@ -1814,7 +1814,7 @@ void LDiag::render( Bild &zRObj )
             }
         }
     }
-    if( daten && daten->werte && daten->werte->getEintragAnzahl() && daten->hIntervallBreite && daten->vIntervallHöhe )
+    if( daten && daten->werte && daten->werte->getEintragAnzahl() && daten->hIntervallBreite && daten->vIntervallHeight )
     { // Werte
         int wAnz = daten->werte->getEintragAnzahl();
         for( int i = 0; i < wAnz; ++i )
@@ -1849,7 +1849,7 @@ void LDiag::render( Bild &zRObj )
                 int rpx = horizontalScrollBar && hatStyle( Style::HScroll ) ? -horizontalScrollBar->getScroll() : 0;
                 int rpy = vertikalScrollBar && hatStyle( Style::VScroll ) ? -vertikalScrollBar->getScroll() : 0;
                 rpy += dgy;
-                int dgmhö = vertikalScrollBar && hatStyle( Style::VScroll ) ? dgy + vertikalScrollBar->getScrollData()->max + dgrbr : dgy + dghö - dgrbr;
+                int dgmhi = vertikalScrollBar && hatStyle( Style::VScroll ) ? dgy + vertikalScrollBar->getScrollData()->max + dgrbr : dgy + dghi - dgrbr;
                 if( hatWertStyle( i, DiagWert::Style::Hintergrund ) )
                 {
                     DiagPunkt *vorher = 0;
@@ -1860,15 +1860,15 @@ void LDiag::render( Bild &zRObj )
                         if( jetzt && vorher )
                         {
                             int ax = (int)( rpx + vorher->hIntervall * daten->hIntervallBreite );
-                            int ay = (int)( dgmhö - vorher->vIntervall * daten->vIntervallHöhe );
+                            int ay = (int)( dgmhi - vorher->vIntervall * daten->vIntervallHeight );
                             int bx = (int)( rpx + jetzt->hIntervall * daten->hIntervallBreite );
-                            int by = (int)( dgmhö - jetzt->vIntervall * daten->vIntervallHöhe );
+                            int by = (int)( dgmhi - jetzt->vIntervall * daten->vIntervallHeight );
                             if( ax >= bx )
                             {
                                 vorher = jetzt;
                                 continue;
                             }
-                            if( !( ax > dgbr - dgrbr || bx < 0 || ( ay > dgy + dghö - dgrbr && by > dgy + dghö - dgrbr ) ) )
+                            if( !( ax > dgbr - dgrbr || bx < 0 || ( ay > dgy + dghi - dgrbr && by > dgy + dghi - dgrbr ) ) )
                             {
                                 double yf = (double)( by - ay ) / ( bx - ax );
                                 double y = (double)ay;
@@ -1877,12 +1877,12 @@ void LDiag::render( Bild &zRObj )
                                 if( hatWertStyle( i, DiagWert::Style::HAlpha ) )
                                 {
                                     for( int x = ax; x < bx; x++, y += yf )
-                                        zRObj.drawLinieVAlpha( x, (int)( y + 0.5 ), dgmhö - (int)( y + 0.5 ), wert->hintergrund );
+                                        zRObj.drawLinieVAlpha( x, (int)( y + 0.5 ), dgmhi - (int)( y + 0.5 ), wert->hintergrund );
                                 }
                                 else
                                 {
                                     for( int x = ax; x < bx; x++, y += yf )
-                                        zRObj.drawLinieV( x, (int)( y + 0.5 ), dgmhö - (int)( y + 0.5 ), wert->hintergrund );
+                                        zRObj.drawLinieV( x, (int)( y + 0.5 ), dgmhi - (int)( y + 0.5 ), wert->hintergrund );
                                 }
                                 if( hatWertStyle( i, DiagWert::Style::Alpha ) )
                                     zRObj.drawLinieAlpha( Punkt( ax, ay ), Punkt( bx, by ), wert->farbe );
@@ -1903,11 +1903,11 @@ void LDiag::render( Bild &zRObj )
                         if( jetzt && vorher )
                         {
                             if( hatWertStyle( i, DiagWert::Style::Alpha ) )
-                                zRObj.drawLinieAlpha( Punkt( (int)( rpx + vorher->hIntervall * daten->hIntervallBreite ), (int)( dgmhö - vorher->vIntervall * daten->vIntervallHöhe ) ),
-                                                      Punkt( (int)( rpx + jetzt->hIntervall * daten->hIntervallBreite ), (int)( dgmhö - jetzt->vIntervall * daten->vIntervallHöhe ) ), wert->farbe );
+                                zRObj.drawLinieAlpha( Punkt( (int)( rpx + vorher->hIntervall * daten->hIntervallBreite ), (int)( dgmhi - vorher->vIntervall * daten->vIntervallHeight ) ),
+                                                      Punkt( (int)( rpx + jetzt->hIntervall * daten->hIntervallBreite ), (int)( dgmhi - jetzt->vIntervall * daten->vIntervallHeight ) ), wert->farbe );
                             else
-                                zRObj.drawLinie( Punkt( (int)( rpx + vorher->hIntervall * daten->hIntervallBreite ), (int)( dgmhö - vorher->vIntervall * daten->vIntervallHöhe ) ),
-                                                 Punkt( (int)( rpx + jetzt->hIntervall * daten->hIntervallBreite ), (int)( dgmhö - jetzt->vIntervall * daten->vIntervallHöhe ) ), wert->farbe );
+                                zRObj.drawLinie( Punkt( (int)( rpx + vorher->hIntervall * daten->hIntervallBreite ), (int)( dgmhi - vorher->vIntervall * daten->vIntervallHeight ) ),
+                                                 Punkt( (int)( rpx + jetzt->hIntervall * daten->hIntervallBreite ), (int)( dgmhi - jetzt->vIntervall * daten->vIntervallHeight ) ), wert->farbe );
                         }
                         vorher = jetzt;
                     }
@@ -1922,7 +1922,7 @@ void LDiag::render( Bild &zRObj )
         int rx = 5;
         int ry = 5;
         schrift->lock();
-        schrift->setSchriftGröße( schriftGr );
+        schrift->setSchriftSize( schriftGr );
         for( int i = 0; i < wAnz; ++i )
         {
             DiagWert *w = daten->werte->z( i );
@@ -2004,9 +2004,9 @@ int LDiag::getDatenAlphaFeldFarbe() const
     return dAf ? dAf->getFarbe() : 0;
 }
 
-int LDiag::getDatenAlphaFeldStärke() const
+int LDiag::getDatenAlphaFeldStrength() const
 {
-    return dAf ? dAf->getStärke() : 0;
+    return dAf ? dAf->getStrength() : 0;
 }
 
 // Reference Counting

+ 26 - 26
Diagramm.h

@@ -43,13 +43,13 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) SLDiag();
         // Destruktor 
-        __declspec( dllexport ) ~SLDiag();
+        __declspec( dllexport ) virtual ~SLDiag();
         // 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 );
+        __declspec( dllexport ) void setGSize( Punkt &gr );
         // Setzt die Farbe der Raster Linien
         //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setGFarbe( int f );
@@ -79,7 +79,7 @@ namespace Framework
         // Gibt die verwendete Schrift ohne erhöhten Reference Counter zurück
         __declspec( dllexport ) Schrift *zSchrift() const;
         // 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;
+        __declspec( dllexport ) const Punkt &getGSize() const;
         // Gibt die Farbe des Gitters in A8R8G8B8 Format zurück
         __declspec( dllexport ) int getGFarbe() const;
         // Gibt den Index eines Graphen zurück
@@ -95,10 +95,10 @@ namespace Framework
         //  lNum: Der Index des Graphen
         __declspec( dllexport ) Text *zLinienNamen( int lNum ) const;
         // Gibt den Höchsten y Wert von allen Graphen zurück
-        __declspec( dllexport ) int getHöchstValue() const;
+        __declspec( dllexport ) int getHighestValue() 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 getHighestValue( int lNum ) const;
         // Gibt den Durchschnittswert aller im Diagramm gespeicherten Punkten eines Graphen zurück
         //  lNum: Der Index des Graphen
         __declspec( dllexport ) int getMedian( int lNum ) const;
@@ -173,19 +173,19 @@ namespace Framework
             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 AutoIntervallHeight = 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 AutoRasterHeight = 0x1000; // Legt fest, ob der Abstand zwischen den Horizontalen Rasterlinien automatisch gewählt werden soll
 
             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
+            const static int autoRaster = AutoRasterHeight | AutoRasterBreite | Raster; // Vereint die Flags AutoRasterHöhe, AutoRasterBreite, Raster
+            const static int autoIntervall = AutoIntervallHeight | AutoIntervallBreite; // Vereint die Flags AutoIntervallHöhe, AutoIntervallBreite
         };
         // Style eines Diagramms
         int style;
@@ -194,7 +194,7 @@ namespace Framework
         // Breite eines Rasterkästchens
         double rasterBreite;
         // Höhe eines Rasterkästchens
-        double rasterHöhe;
+        double rasterHeight;
         // Farbe des Rasters
         int rasterFarbe;
         // Schriftfarbe des Horizontalen Intervalls
@@ -216,7 +216,7 @@ namespace Framework
         // Breite des Wertes 1 in Pixeln bei dem horizontalen Intervall ( wird durch das setzen von AutoIntervallBreite überschrieben )
         double hIntervallBreite;
         // Höhe des Wertes 1 in Pixeln bei dem vertikalen Intervall ( wird durch das setzen von AutoIntervallHöhe überschrieben )
-        double vIntervallHöhe;
+        double vIntervallHeight;
         // Werte, die in dem Diagramm visualisiert werden
         RCArray< DiagWert > *werte;
 
@@ -250,7 +250,7 @@ namespace Framework
         //  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();
+        __declspec( dllexport ) virtual ~BaseDiag();
         // Setzt einen Zeiger auf die Daten des Diagramms
         //  dd: Die Daten
         __declspec( dllexport ) void setDiagDatenZ( DiagDaten *dd );
@@ -264,8 +264,8 @@ namespace Framework
         //  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ö );
+        //  hi: Der Abstand zwischen zwei Horizontalen Rasterlinien in Pixeln
+        __declspec( dllexport ) void setRasterHeight( int hi );
         // Rasterfarbe setzen
         //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setRasterFarbe( int f );
@@ -273,8 +273,8 @@ namespace Framework
         //  br: Der Abstand zwischen den Werten 0 und 1 auf der X Achse in Pixeln
         __declspec( dllexport ) void setHIntervallBreite( double br );
         // 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ö );
+        //  hi: Der Abstand zwischen den Werten 0 und 1 auf der Y Achse in Pixeln
+        __declspec( dllexport ) void setVIntervallHeight( double hi );
         // Setzt die Farbe der X Achse
         //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setHIntervallFarbe( int f );
@@ -315,7 +315,7 @@ namespace Framework
         __declspec( dllexport ) void setHIntervallText( double hIntervall, char *text );
         // 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 );
+        __declspec( dllexport ) void removeHIntervallText( double hIntervall );
         // 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
@@ -338,7 +338,7 @@ namespace Framework
         __declspec( dllexport ) void setVIntervallText( double vIntervall, char *text );
         // 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 );
+        __declspec( dllexport ) void removeVIntervallText( double vIntervall );
         // Fügt einen im Diagramm dargestellten Wert (Graph) hinzu
         //  w: Der neue Wert
         __declspec( dllexport ) void addWertZ( DiagWert *w );
@@ -403,11 +403,11 @@ namespace Framework
         // 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 );
+        __declspec( dllexport ) void removePunkt( 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 );
+        __declspec( dllexport ) void removePunkt( int wNum, int pNum );
         // entfernt einen Wert
         //  wNum: Der Index des Wertes
         __declspec( dllexport ) void removeWert( int wNum );
@@ -429,7 +429,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void removeDatenStyle( int style );
         // Fügt einem bestimmten Wert bestimmte Styles hinzu
         //  wNum: Der Index des Wertes
         //  style: Die neuen Styles
@@ -446,7 +446,7 @@ namespace Framework
         // 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 );
+        __declspec( dllexport ) void removeWertStyle( int wNum, int style );
         // Gibt die Daten des Diagramms zurück
         __declspec( dllexport ) DiagDaten *getDiagDaten() const;
         // Gibt die Daten des Diagramms ohne erhöhten Reference Counter zurück
@@ -526,13 +526,13 @@ namespace Framework
         // Konstruktor
         __declspec( dllexport ) LDiag();
         // Destruktor
-        __declspec( dllexport ) ~LDiag();
+        __declspec( dllexport ) virtual ~LDiag();
         // 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 );
+        __declspec( dllexport ) void setSchriftSize( int gr );
         // Setzt den inneren Rahmen um das eigentliche Diagramm (Rahmen um die Daten)
         //  ram: Der Rahmen
         __declspec( dllexport ) void setDatenRahmenZ( LRahmen *ram );
@@ -560,7 +560,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setDatenAlphaFeldStrength( int st );
         // Verarbeitet Maus Nachrichten
         //  me: Das Ereignis, was durch die Mauseingabe ausgelößt wurde
         __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;
@@ -592,7 +592,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getDatenAlphaFeldStrength() const;
         // 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;

+ 2 - 2
DreieckListe.h

@@ -62,13 +62,13 @@ namespace Framework
         }
 
         // Löscht den letzten Punkt
-        void löscheLetztenPunkt()
+        void removeLetztenPunkt()
         {
             int i = punkte->getEintragAnzahl() - 1;
             if( !punkte->hat( i ) )
                 return;
             delete punkte->get( i );
-            punkte->lösche( i );
+            punkte->remove( i );
         }
 
         // Löscht alle Ecken

+ 8 - 8
Ebene3D.h

@@ -35,11 +35,11 @@ namespace Framework
         // Bringt den Normalen Vektor der Ebene auf die Länge 1
         inline Ebene3D &normalize()
         {
-            const T länge = län();
-            x /= länge;
-            y /= länge;
-            z /= länge;
-            w /= länge;
+            const T length = len();
+            x /= length;
+            y /= length;
+            z /= length;
+            w /= length;
             return *this;
         }
         // Tauscht die Werte zweier Ebenen
@@ -108,14 +108,14 @@ namespace Framework
             return{ (T2)x, (T2)y, (T2)z, (T2)w };
         }
         // Errehnet das Quadrat der Länge des Normalen Vektors der Ebene
-        inline T länSq() const
+        inline T lenSq() const
         {
             return x * x + y * y + z * z;
         }
         // Errechnet die Länge des Normalen Vektors
-        inline T län() const
+        inline T len() const
         {
-            return sqrt( länSq() );
+            return sqrt( lenSq() );
         }
         // Berechnet die Entfernung der Ebene zu einem Vektor
         //  r: Der Vektor

+ 237 - 236
Fenster.cpp

@@ -8,12 +8,14 @@
 #include "Rahmen.h"
 #include "TextFeld.h"
 #include "Scroll.h"
-#include "Maus.h"
 #include "ToolTip.h"
 #include "Globals.h"
+#ifdef WIN32
+#include "Maus.h"
+#endif
 
 using namespace Framework;
-
+#ifdef WIN32
 // Fensterklasse erzeugen
 WNDCLASS Framework::F_Normal( HINSTANCE hInst )// Erzeugen einer normalen Fensterklasse
 {
@@ -176,7 +178,7 @@ LRESULT CALLBACK Framework::WindowProc( HWND hwnd, UINT message, WPARAM wparam,
         if( 1 )
         {
             MausTrack = 1;
-            MausEreignis me = { ME_Verlässt, (int)LOWORD( lparam ), (int)HIWORD( lparam ), 0, 0, 0 };
+            MausEreignis me = { ME_Leaves, (int)LOWORD( lparam ), (int)HIWORD( lparam ), 0, 0, 0 };
             me.rmx = me.mx;
             me.rmy = me.my;
             WFensterA.sendMausMessage( hwnd, me );
@@ -397,7 +399,7 @@ unsigned char Framework::VirtualZuChar( int Virtual )
         up = 1;
     if( CAPSLOCK && !SHIFT )
         up = 1;
-    ret = KleinOrGroß( ret, up );
+    ret = smallOrBig( ret, up );
     return ret;
 }
 
@@ -533,7 +535,7 @@ void WFenster::setPosition( Punkt &p )// Fenster Position
     SetWindowPos( hWnd, 0, res.left, res.top, res.right, res.bottom, 0 ); // Position ändern
 }
 
-void WFenster::setGröße( Punkt &g )// Fenster Größe
+void WFenster::setSize( Punkt &g )// Fenster Größe
 {
     RECT r;
     GetWindowRect( hWnd, &r ); // vorherige Größe herausfinden
@@ -553,7 +555,7 @@ void WFenster::setGr
     SetWindowPos( hWnd, 0, res.left, res.top, res.right, res.bottom, 0 ); // Größe ändern
 }
 
-void WFenster::setGröße( int breite, int höhe )
+void WFenster::setSize( int breite, int höhe )
 {
     RECT r;
     GetWindowRect( hWnd, &r ); // vorherige Größe herausfinden
@@ -604,7 +606,7 @@ void WFenster::doMausAktion( MausEreignis &me )
 {
     if( !MausAktion || !MausAktion( makParam, this, me ) )
         return;
-    if( screen && me.id != ME_Betritt && me.id != ME_Verlässt )
+    if( screen && me.id != ME_Betritt && me.id != ME_Leaves )
     {
         screen->doMausEreignis( me );
         if( !me.verarbeitet && verschiebbar )
@@ -737,7 +739,7 @@ void WFenster::ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ) // setzt einen
     info.bmiHeader.biSize = sizeof( info.bmiHeader );
     info.bmiHeader.biBitCount = 32;
     info.bmiHeader.biWidth = zBild->getBreite();
-    info.bmiHeader.biHeight = -zBild->getHöhe();
+    info.bmiHeader.biHeight = -zBild->getHeight();
     info.bmiHeader.biCompression = BI_RGB;
     info.bmiHeader.biPlanes = 1;
     unsigned char *pPixels = 0;
@@ -749,7 +751,7 @@ void WFenster::ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ) // setzt einen
     int pitch = ( ( zBild->getBreite() * 32 + 31 ) & ~31 ) >> 3;
     unsigned char *pRow = 0;
     int *buffer = zBild->getBuffer();
-    for( int i = 0; i < zBild->getHöhe(); ++i )
+    for( int i = 0; i < zBild->getHeight(); ++i )
     {
         pRow = &pPixels[ i * pitch ];
         for( int i2 = 0; i2 < zBild->getBreite(); ++i2 )
@@ -765,7 +767,7 @@ void WFenster::ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ) // setzt einen
     if( zBild->getBreite() * 4 == pitch )
     {
         int i = 0;
-        int totalBytes = zBild->getBreite() * zBild->getHöhe() * 4;
+        int totalBytes = zBild->getBreite() * zBild->getHeight() * 4;
 
         for( i = 0; i < totalBytes; i += 4 )
         {
@@ -780,7 +782,7 @@ void WFenster::ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ) // setzt einen
         int x = 0;
         int y = 0;
 
-        for( y = 0; y < zBild->getHöhe(); ++y )
+        for( y = 0; y < zBild->getHeight(); ++y )
         {
             for( x = 0; x < zBild->getBreite(); ++x )
             {
@@ -801,7 +803,7 @@ void WFenster::ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ) // setzt einen
                                  0,
                                  0,
                                  zBild->getBreite(),
-                                 zBild->getHöhe(),
+                                 zBild->getHeight(),
                                  0,
                                  0,
                                  wcl.hInstance,
@@ -816,7 +818,7 @@ void WFenster::ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ) // setzt einen
                 HGDIOBJ hPrevObj = NULL;
                 POINT ptDest = { 0, 0 };
                 POINT ptSrc = { 0, 0 };
-                SIZE client = { zBild->getBreite(), zBild->getHöhe() };
+                SIZE client = { zBild->getBreite(), zBild->getHeight() };
                 BLENDFUNCTION blendFunc = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA };
 
                 hPrevObj = SelectObject( hdc, bitmap );
@@ -828,8 +830,8 @@ void WFenster::ladeRahmenFenster( Bild *zBild, HINSTANCE hinst ) // setzt einen
                 ReleaseDC( rahmen, h );
             }
             UpdateWindow( rahmen );
-            Punkt pos = getPosition() + ( getGröße() - zBild->getGröße() ) / 2;
-            SetWindowPos( rahmen, 0, pos.x, pos.y, zBild->getBreite(), zBild->getHöhe(), 0 );
+            Punkt pos = getPosition() + ( getGröße() - zBild->getSize() ) / 2;
+            SetWindowPos( rahmen, 0, pos.x, pos.y, zBild->getBreite(), zBild->getHeight(), 0 );
         }
     }
 }
@@ -1084,28 +1086,29 @@ void Framework::WMessageBox( HWND hWnd, Text *titel, Text *meldung, UINT style )
     titel->release();
     meldung->release();
 }
+#endif
 
 // Inhalt der Fenster Klasse aus Fenster.h
 // Konstruktor 
 Fenster::Fenster()
     : Zeichnung(),
-    schließenMe( 0 ),
-    schließenMeParam( 0 ),
+    closingMe( 0 ),
+    closingMeParam( 0 ),
     rahmen( 0 ),
     titel( 0 ),
     members( 0 ),
-    bgKörperFarbe( 0xFF000000 ),
-    bgKörperBild( 0 ),
-    körperBuffer( 0 ),
-    bgSchließFarbe( 0xFF000000 ),
-    bgSchließBild( 0 ),
-    schließBuffer( 0 ),
-    schließKlickBuffer( 0 ),
+    bgBodyColor( 0xFF000000 ),
+    bgBodyPicture( 0 ),
+    bodyBuffer( 0 ),
+    bgClosingFarbe( 0xFF000000 ),
+    bgClosingBild( 0 ),
+    closeBuffer( 0 ),
+    closeKlickBuffer( 0 ),
     vScroll( 0 ),
     hScroll( 0 ),
     kMin( 0, 0 ),
     kMax( 0, 0 ),
-    schließKlick( 0 ),
+    closeKlick( 0 ),
     klick( 0 ),
     mx( 0 ),
     my( 0 ),
@@ -1126,16 +1129,16 @@ Fenster::~Fenster()
         titel->release();
     if( members )
         delete members;
-    if( körperBuffer )
-        körperBuffer->release();
-    if( bgKörperBild )
-        bgKörperBild->release();
-    if( bgSchließBild )
-        bgSchließBild->release();
-    if( schließBuffer )
-        schließBuffer->release();
-    if( schließKlickBuffer )
-        schließKlickBuffer->release();
+    if( bodyBuffer )
+        bodyBuffer->release();
+    if( bgBodyPicture )
+        bgBodyPicture->release();
+    if( bgClosingBild )
+        bgClosingBild->release();
+    if( closeBuffer )
+        closeBuffer->release();
+    if( closeKlickBuffer )
+        closeKlickBuffer->release();
     if( vScroll )
         vScroll->release();
     if( hScroll )
@@ -1218,11 +1221,11 @@ void Fenster::setTSFarbe( int f ) // setzt die Titel Schrift Farbe
     rend = 1;
 }
 
-void Fenster::setTSGröße( int gr ) // setzt die Titel Schrift Größe
+void Fenster::setTSSize( int gr ) // setzt die Titel Schrift Größe
 {
     if( !titel )
         titel = new TextFeld();
-    titel->setSchriftGröße( gr );
+    titel->setSchriftSize( (unsigned char)gr );
     rend = 1;
 }
 
@@ -1252,11 +1255,11 @@ void Fenster::setTAfFarbe( int f ) // setzt die Titel AlphFeld Farbe
     rend = 1;
 }
 
-void Fenster::setTAfStärke( int st ) // setzt die Stärke des Titel AlphaFeldes
+void Fenster::setTAfStrength( int st ) // setzt die Stärke des Titel AlphaFeldes
 {
     if( !titel )
         titel = new TextFeld();
-    titel->setAlphaFeldStärke( st );
+    titel->setAlphaFeldStrength( st );
     rend = 1;
 }
 
@@ -1305,19 +1308,19 @@ void Fenster::setTRBreite( int br ) // setzt die Titel Rahmen Breite
 // -- Körper Hintergrund -- 
 void Fenster::setKBgFarbe( int f ) // setzt die Körper Hintergrund Farbe
 {
-    bgKörperFarbe = f;
+    bgBodyColor = f;
     rend = 1;
 }
 
 // -- Körper Hintergrund Bild -- 
 void Fenster::setKBgBild( Bild *b ) // setzt das Körper Hintergrund Bild
 {
-    if( !bgKörperBild )
-        bgKörperBild = new Bild();
-    bgKörperBild->neuBild( b->getBreite(), b->getHöhe(), 0 );
-    int *buff1 = bgKörperBild->getBuffer();
+    if( !bgBodyPicture )
+        bgBodyPicture = new Bild();
+    bgBodyPicture->neuBild( b->getBreite(), b->getHeight(), 0 );
+    int *buff1 = bgBodyPicture->getBuffer();
     int *buff2 = b->getBuffer();
-    int gr = bgKörperBild->getBreite() * bgKörperBild->getHöhe();
+    int gr = bgBodyPicture->getBreite() * bgBodyPicture->getHeight();
     for( int i = 0; i < gr; ++i )
         buff1[ i ] = buff2[ i ];
     b->release();
@@ -1326,64 +1329,64 @@ void Fenster::setKBgBild( Bild *b ) // setzt das K
 
 void Fenster::setKBgBildZ( Bild *b )
 {
-    if( bgKörperBild )
-        bgKörperBild->release();
-    bgKörperBild = b;
+    if( bgBodyPicture )
+        bgBodyPicture->release();
+    bgBodyPicture = b;
     rend = 1;
 }
 
 // -- Körper AlphaFeld -- 
 void Fenster::setKAlphaFeldZ( AlphaFeld *af ) // setzt das Körper AlphaFeld
 {
-    if( körperBuffer )
-        körperBuffer->release();
-    körperBuffer = af;
+    if( bodyBuffer )
+        bodyBuffer->release();
+    bodyBuffer = af;
     rend = 1;
 }
 
 void Fenster::setKAfFarbe( int f ) // setzt Körper AlphaFeld Farbe
 {
-    if( !körperBuffer )
-        körperBuffer = new AlphaFeld();
-    körperBuffer->setFarbe( f );
+    if( !bodyBuffer )
+        bodyBuffer = new AlphaFeld();
+    bodyBuffer->setFarbe( f );
     rend = 1;
 }
 
-void Fenster::setKAfStärke( int st ) // setzt die Stärke des Körper AlphaFeldes
+void Fenster::setKAfStrength( int st ) // setzt die Stärke des Körper AlphaFeldes
 {
-    if( !körperBuffer )
-        körperBuffer = new AlphaFeld();
-    körperBuffer->setStärke( st );
+    if( !bodyBuffer )
+        bodyBuffer = new AlphaFeld();
+    bodyBuffer->setStrength( st );
     rend = 1;
 }
 
 // -- Schließen --
-void Fenster::setSchließenMeParam( void *param )
+void Fenster::setClosingMeParam( void *param )
 {
-    schließenMeParam = param;
+    closingMeParam = param;
 }
 
-void Fenster::setSchließenMe( bool( *schließenMe )( void *, void *, MausEreignis ) ) // setzt das Schließen Mausereignis
+void Fenster::setClosingMe( bool( *closeMe )( void *, void *, MausEreignis ) ) // setzt das Schließen Mausereignis
 {
-    this->schließenMe = schließenMe;
+    this->closingMe = closeMe;
 }
 
 // -- Schließen Hintergrund -- 
 void Fenster::setSBgFarbe( int f ) // setzt die Schließ Hintergrund Farbe
 {
-    bgSchließFarbe = f;
+    bgClosingFarbe = f;
     rend = 1;
 }
 
 // -- Schließen Hintergrund Bild -- 
 void Fenster::setSBgBild( Bild *b ) // setzt das Schließ Hintergrund Bild
 {
-    if( !bgSchließBild )
-        bgSchließBild = new Bild();
-    bgSchließBild->neuBild( b->getBreite(), b->getHöhe(), 0 );
-    int *buff1 = bgSchließBild->getBuffer();
+    if( !bgClosingBild )
+        bgClosingBild = new Bild();
+    bgClosingBild->neuBild( b->getBreite(), b->getHeight(), 0 );
+    int *buff1 = bgClosingBild->getBuffer();
     int *buff2 = b->getBuffer();
-    int gr = bgSchließBild->getBreite() * bgSchließBild->getHöhe();
+    int gr = bgClosingBild->getBreite() * bgClosingBild->getHeight();
     for( int i = 0; i < gr; ++i )
         buff1[ i ] = buff2[ i ];
     b->release();
@@ -1392,59 +1395,59 @@ void Fenster::setSBgBild( Bild *b ) // setzt das Schlie
 
 void Fenster::setSBgBildZ( Bild *b )
 {
-    if( bgSchließBild )
-        bgSchließBild->release();
-    bgSchließBild = b;
+    if( bgClosingBild )
+        bgClosingBild->release();
+    bgClosingBild = b;
     rend = 1;
 }
 
 // -- Schließen AlphaFeld -- 
 void Fenster::setSAlphaFeldZ( AlphaFeld *af ) // setzt das Schließ AlphaFeld
 {
-    if( schließBuffer )
-        schließBuffer->release();
-    schließBuffer = af;
+    if( closeBuffer )
+        closeBuffer->release();
+    closeBuffer = af;
     rend = 1;
 }
 
 void Fenster::setSAfFarbe( int f ) // setzt die Farbe des Schließ AlphaFeldes
 {
-    if( !schließBuffer )
-        schließBuffer = new AlphaFeld();
-    schließBuffer->setFarbe( f );
+    if( !closeBuffer )
+        closeBuffer = new AlphaFeld();
+    closeBuffer->setFarbe( f );
     rend = 1;
 }
 
-void Fenster::setSAfStärke( int st ) // setzt die Stärke des Schließ AlphaFeldes
+void Fenster::setSAfStrength( int st ) // setzt die Stärke des Schließ AlphaFeldes
 {
-    if( !schließBuffer )
-        schließBuffer = new AlphaFeld();
-    schließBuffer->setStärke( st );
+    if( !closeBuffer )
+        closeBuffer = new AlphaFeld();
+    closeBuffer->setStrength( st );
     rend = 1;
 }
 
 // -- Schließen Klick AlphaFeld -- 
 void Fenster::setSKAlphaFeldZ( AlphaFeld *af ) // setzt das Schließ klick AlphaFeld
 {
-    if( schließKlickBuffer )
-        schließKlickBuffer->release();
-    schließKlickBuffer = af;
+    if( closeKlickBuffer )
+        closeKlickBuffer->release();
+    closeKlickBuffer = af;
     rend = 1;
 }
 
 void Fenster::setSKAfFarbe( int f ) // setzt die Farbe des Schließ klick AlphaFeldes
 {
-    if( !schließKlickBuffer )
-        schließKlickBuffer = new AlphaFeld();
-    schließKlickBuffer->setFarbe( f );
+    if( !closeKlickBuffer )
+        closeKlickBuffer = new AlphaFeld();
+    closeKlickBuffer->setFarbe( f );
     rend = 1;
 }
 
-void Fenster::setSKAfStärke( int st ) // setzt die Stärke des Schließ klick AlphaFeldes
+void Fenster::setSKAfStrength( int st ) // setzt die Stärke des Schließ klick AlphaFeldes
 {
-    if( !schließKlickBuffer )
-        schließKlickBuffer = new AlphaFeld();
-    schließKlickBuffer->setStärke( st );
+    if( !closeKlickBuffer )
+        closeKlickBuffer = new AlphaFeld();
+    closeKlickBuffer->setStrength( st );
     rend = 1;
 }
 
@@ -1533,7 +1536,7 @@ void Fenster::setVSBMax( int max )
     if( hatStyle( Style::Rahmen ) && rahmen )
         rbr = rahmen->getRBreite();
     if( hatStyle( Style::Titel ) && titel )
-        th = titel->getHöhe();
+        th = titel->getHeight();
     int hsh = 0;
     if( hatStyle( Style::HScroll ) && hScroll )
         hsh = 15;
@@ -1601,7 +1604,7 @@ void Fenster::doMausEreignis( MausEreignis &me )
         {
             mausIn = 0;
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -1609,7 +1612,7 @@ void Fenster::doMausEreignis( MausEreignis &me )
             return;
         }
     }
-    else if( !mausIn && me.id != ME_Verlässt )
+    else if( !mausIn && me.id != ME_Leaves )
     {
         mausIn = 1;
         MausEreignis me2;
@@ -1634,76 +1637,76 @@ void Fenster::doMausEreignis( MausEreignis &me )
             rbr = rahmen->getRBreite();
         int th = 0;
         if( hatStyle( Style::Titel ) && titel )
-            th = titel->getHöhe();
+            th = titel->getHeight();
         bool hSc = hatStyle( Style::HScroll ) && hScroll;
         bool vSc = hatStyle( Style::VScroll ) && vScroll;
         if( !me.verarbeitet && me.id == ME_Bewegung && klick )
         {
-            if( hatStyle( Style::Beweglich ) || hatStyle( Style::HöheÄnderbar ) || hatStyle( Style::BreiteÄnderbar ) || hatStyle( Style::TitelHöheÄnderbar ) )
+            if( hatStyle( Style::Beweglich ) || hatStyle( Style::HeightChangeable ) || hatStyle( Style::BreiteChangeable ) || hatStyle( Style::TitelHeightChangeable ) )
             {
                 if( Mak( makParam, this, me ) )
                 {
                     mpr = 1;
                     bool ret1 = 0;
                     bool mset = 0;
-                    int schö = 0;
+                    int schi = 0;
                     int scbr = 0;
                     if( hSc )
                     {
-                        schö = 15;
+                        schi = 15;
                         scbr = 40;
                     }
                     if( vSc )
                     {
                         scbr += 15;
-                        schö = 40;
+                        schi = 40;
                     }
                     bool minXb, maxXb, minYb, maxYb;
                     bool kMinXb, kMaxXb, kMinYb, kMaxYb;
                     minXb = hatStyle( Style::MinBr );
                     maxXb = hatStyle( Style::MaxBr );
-                    minYb = hatStyle( Style::MinHö );
-                    maxYb = hatStyle( Style::MaxHö );
-                    kMinXb = hatStyle( Style::Körper_minBr );
-                    kMaxXb = hatStyle( Style::Körper_maxBr );
-                    kMinYb = hatStyle( Style::Körper_minHö );
-                    kMaxYb = hatStyle( Style::Körper_maxHö );
+                    minYb = hatStyle( Style::MinHi );
+                    maxYb = hatStyle( Style::MaxHi );
+                    kMinXb = hatStyle( Style::BodyMinBr );
+                    kMaxXb = hatStyle( Style::BodyMaxBr );
+                    kMinYb = hatStyle( Style::BodyMinHi );
+                    kMaxYb = hatStyle( Style::BodyMaxHi );
                     int fMinBr = rbr * 2 + scbr;
                     if( minXb )
                         fMinBr = fMinBr < min.x ? min.x : fMinBr;
                     if( kMinXb )
                         fMinBr = fMinBr < ( rbr * 2 + kMin.x + scbr ) ? ( rbr * 2 + kMin.x + scbr ) : fMinBr;
-                    int fMinHö = rbr * 2 + th + schö;
+                    int fMinHi = rbr * 2 + th + schi;
                     if( minYb )
-                        fMinHö = fMinHö < min.y ? min.y : fMinHö;
+                        fMinHi = fMinHi < min.y ? min.y : fMinHi;
                     if( kMinYb )
-                        fMinHö = fMinHö < ( rbr * 2 + kMin.y + th + schö ) ? ( rbr * 2 + kMin.y + th + schö ) : fMinHö;
+                        fMinHi = fMinHi < ( rbr * 2 + kMin.y + th + schi ) ? ( rbr * 2 + kMin.y + th + schi ) : fMinHi;
                     int fMaxBr = 0;
                     if( maxXb )
                         fMaxBr = max.x;
                     if( kMaxXb )
                         fMaxBr = fMaxBr < ( rbr * 2 + kMax.x + scbr ) ? ( rbr * 2 + kMax.x + scbr ) : fMaxBr;
-                    int fMaxHö = 0;
+                    int fMaxHi = 0;
                     if( maxYb )
-                        fMaxHö = max.y;
+                        fMaxHi = max.y;
                     if( kMaxYb )
-                        fMaxHö = fMaxHö < ( rbr * 2 + kMax.y + th + schö ) ? ( rbr * 2 + kMax.y + th + schö ) : fMaxHö;
+                        fMaxHi = fMaxHi < ( rbr * 2 + kMax.y + th + schi ) ? ( rbr * 2 + kMax.y + th + schi ) : fMaxHi;
                     minXb |= kMinXb, maxXb |= kMaxXb, minYb |= kMinYb, maxYb |= kMaxYb;
-                    if( hatStyle( Style::HöheÄnderbar ) )
+                    if( hatStyle( Style::HeightChangeable ) )
                     {
                         if( mx > -5 && mx < gr.x + 5 && my > -5 && my < rbr )
                         {
                             pos.y -= my - me.my;
                             gr.y += my - me.my;
-                            if( gr.y < fMinHö )
+                            if( gr.y < fMinHi )
                             {
-                                pos.y += fMinHö - gr.y;
-                                gr.y = fMinHö;
+                                pos.y += fMinHi - gr.y;
+                                gr.y = fMinHi;
                             }
-                            else if( maxYb && gr.y > fMaxHö )
+                            else if( maxYb && gr.y > fMaxHi )
                             {
-                                pos.y += gr.y - fMaxHö;
-                                gr.y = fMaxHö;
+                                pos.y += gr.y - fMaxHi;
+                                gr.y = fMaxHi;
                             }
                             else if( vSc )
                                 vScroll->getScrollData()->anzeige = gr.y;
@@ -1713,10 +1716,10 @@ void Fenster::doMausEreignis( MausEreignis &me )
                         else if( mx > -5 && mx < gr.x + 5 && my > gr.y - rbr && my < gr.y + 5 )
                         {
                             gr.y += me.my - my;
-                            if( gr.y < fMinHö )
-                                gr.y = fMinHö;
-                            else if( maxYb && gr.y > fMaxHö )
-                                gr.y = fMaxHö;
+                            if( gr.y < fMinHi )
+                                gr.y = fMinHi;
+                            else if( maxYb && gr.y > fMaxHi )
+                                gr.y = fMaxHi;
                             else
                             {
                                 mset = 1;
@@ -1727,7 +1730,7 @@ void Fenster::doMausEreignis( MausEreignis &me )
                             ret1 = 1;
                         }
                     }
-                    if( hatStyle( Style::BreiteÄnderbar ) )
+                    if( hatStyle( Style::BreiteChangeable ) )
                     {
                         if( mx > -5 && mx < rbr && my > -5 && my < gr.y + 5 )
                         {
@@ -1765,18 +1768,18 @@ void Fenster::doMausEreignis( MausEreignis &me )
                             ret1 = 1;
                         }
                     }
-                    if( hatStyle( Style::TitelHöheÄnderbar ) && titel && mx > -5 && mx < gr.x + 5 && my < rbr + th + 5 && my > rbr + th )
+                    if( hatStyle( Style::TitelHeightChangeable ) && titel && mx > -5 && mx < gr.x + 5 && my < rbr + th + 5 && my > rbr + th )
                     {
-                        int maxTh = gr.y - rbr * 2 - schö;
+                        int maxTh = gr.y - rbr * 2 - schi;
                         if( kMaxYb )
                             maxTh = maxTh < ( gr.x - rbr * 2 - kMin.y ) ? maxTh : ( gr.x - rbr * 2 - kMin.y );
-                        if( hatStyle( Style::Schließbar ) )
+                        if( hatStyle( Style::Closable ) )
                             maxTh = ( gr.x - th - 5 - rbr * 2 - me.my + my ) < 0 ? th : maxTh;
-                        titel->setGröße( titel->getBreite(), titel->getHöhe() + me.my - my );
-                        if( titel->getHöhe() > maxTh )
-                            titel->setGröße( titel->getBreite(), maxTh );
-                        else if( titel->getHöhe() < 5 )
-                            titel->setGröße( titel->getBreite(), 5 );
+                        titel->setSize( titel->getBreite(), titel->getHeight() + me.my - my );
+                        if( titel->getHeight() > maxTh )
+                            titel->setSize( titel->getBreite(), maxTh );
+                        else if( titel->getHeight() < 5 )
+                            titel->setSize( titel->getBreite(), 5 );
                         else
                             mset = 1;
                         rend = 1;
@@ -1805,16 +1808,16 @@ void Fenster::doMausEreignis( MausEreignis &me )
         {
             if( me.id == ME_RLinks )
             {
-                if( schließKlick )
+                if( closeKlick )
                     rend = 1;
-                schließKlick = 0, klick = 0;
+                closeKlick = 0, klick = 0;
                 mx = -1, my = -1;
             }
-            if( me.id == ME_Verlässt )
+            if( me.id == ME_Leaves )
             {
-                if( schließKlick != 0 )
+                if( closeKlick != 0 )
                     rend = 1;
-                schließKlick = 0, klick = 0;
+                closeKlick = 0, klick = 0;
                 mx = -1, my = -1;
             }
             if( !me.verarbeitet )
@@ -1824,30 +1827,30 @@ void Fenster::doMausEreignis( MausEreignis &me )
                     klick = 1;
                     mx = me.mx, my = me.my;
                 }
-                if( hatStyle( Style::Schließbar ) && me.my <= th + rbr && me.mx >= gr.x + rbr - th && me.my >= rbr && me.mx <= gr.x - rbr )
+                if( hatStyle( Style::Closable ) && me.my <= th + rbr && me.mx >= gr.x + rbr - th && me.my >= rbr && me.mx <= gr.x - rbr )
                 {
-                    if( !schließenMe || schließenMe( schließenMeParam, this, me ) )
+                    if( !closingMe || closingMe( closingMeParam, this, me ) )
                     {
                         if( me.id == ME_PLinks )
                         {
-                            schließKlick = 1;
+                            closeKlick = 1;
                             rend = 1;
                         }
-                        if( !schließKlick && MausStand[ M_Links ] )
+                        if( !closeKlick && MausStand[ M_Links ] )
                         {
-                            schließKlick = 1;
+                            closeKlick = 1;
                             rend = 1;
                         }
                         me.verarbeitet = 1;
                     }
                 }
-                else if( schließKlick )
+                else if( closeKlick )
                 {
-                    schließKlick = 0;
+                    closeKlick = 0;
                     rend = 1;
                 }
             }
-            if( members && me.id != ME_Betritt && me.id != ME_Verlässt )
+            if( members && me.id != ME_Betritt && me.id != ME_Leaves )
             {
                 if( vSc )
                 {
@@ -1927,11 +1930,11 @@ void Fenster::render( Bild &zRObj ) // zeichent nach zRObj
             unlockZeichnung();
             return;
         }
-        __super::render( zRObj );
+		Zeichnung::render( zRObj );
         int rbr = 0;
         if( hatStyle( Style::Rahmen ) && rahmen )
         {
-            rahmen->setGröße( gr );
+            rahmen->setSize( gr );
             rahmen->render( zRObj );
             rbr = rahmen->getRBreite();
         }
@@ -1942,7 +1945,7 @@ void Fenster::render( Bild &zRObj ) // zeichent nach zRObj
             titel->setStyle( TextFeld::Style::HAlpha, hatStyle( Style::TitelHAlpha ) );
             titel->setStyle( TextFeld::Style::HBild, hatStyle( Style::TitelHBild ) );
             titel->setStyle( TextFeld::Style::Buffered, hatStyle( Style::TitelBuffered ) );
-            th = titel->getHöhe();
+            th = titel->getHeight();
             if( !zRObj.setDrawOptions( rbr, rbr, gr.x - rbr * 2, th ) )
             {
                 zRObj.releaseDrawOptions();
@@ -1950,42 +1953,42 @@ void Fenster::render( Bild &zRObj ) // zeichent nach zRObj
                 return;
             }
             int sbr = 0;
-            if( hatStyle( Style::Schließbar ) )
+            if( hatStyle( Style::Closable ) )
             {
                 sbr = th;
-                if( hatStyle( Style::SchließHintergrund ) )
+                if( hatStyle( Style::ClosingHintergrund ) )
                 {
-                    if( hatStyle( Style::SchließHAlpha ) )
-                        zRObj.alphaRegion( gr.x - th - rbr * 2, 0, th, th, bgSchließFarbe );
+                    if( hatStyle( Style::ClosingHAlpha ) )
+                        zRObj.alphaRegion( gr.x - th - rbr * 2, 0, th, th, bgClosingFarbe );
                     else
-                        zRObj.füllRegion( gr.x - th - rbr * 2, 0, th, th, bgSchließFarbe );
-                    if( hatStyle( Style::SchließHBild ) && bgSchließBild )
+                        zRObj.fillRegion( gr.x - th - rbr * 2, 0, th, th, bgClosingFarbe );
+                    if( hatStyle( Style::ClosingHBild ) && bgClosingBild )
                     {
-                        if( hatStyle( Style::SchließHAlpha ) )
-                            zRObj.alphaBild( gr.x - th - rbr * 2, 0, th, th, *bgSchließBild );
+                        if( hatStyle( Style::ClosingHAlpha ) )
+                            zRObj.alphaBild( gr.x - th - rbr * 2, 0, th, th, *bgClosingBild );
                         else
-                            zRObj.drawBild( gr.x - th - rbr * 2, 0, th, th, *bgSchließBild );
+                            zRObj.drawBild( gr.x - th - rbr * 2, 0, th, th, *bgClosingBild );
                     }
                 }
-                if( !hatStyle( Style::SchließHBild ) || !bgSchließBild )
+                if( !hatStyle( Style::ClosingHBild ) || !bgClosingBild )
                 {
                     zRObj.drawLinie( Punkt( gr.x - th - rbr * 2, 0 ), Punkt( gr.x - rbr * 2, th ), 0xFFFFFFFF );
                     zRObj.drawLinie( Punkt( gr.x - rbr * 2, 0 ), Punkt( gr.x - th - rbr * 2, th ), 0xFFFFFFFF );
                 }
-                if( hatStyle( Style::SchließBuffer ) && schließBuffer )
+                if( hatStyle( Style::ClosingBuffer ) && closeBuffer )
                 {
-                    schließBuffer->setPosition( gr.x - th - rbr * 2, 0 );
-                    schließBuffer->setGröße( th, th );
-                    schließBuffer->render( zRObj );
+                    closeBuffer->setPosition( gr.x - th - rbr * 2, 0 );
+                    closeBuffer->setSize( th, th );
+                    closeBuffer->render( zRObj );
                 }
-                if( hatStyle( Style::SchließKlickBuffer ) && schließKlickBuffer && schließKlick )
+                if( hatStyle( Style::ClosingKlickBuffer ) && closeKlickBuffer && closeKlick )
                 {
-                    schließKlickBuffer->setPosition( gr.x - th - rbr * 2, 0 );
-                    schließKlickBuffer->setGröße( th, th );
-                    schließKlickBuffer->render( zRObj );
+                    closeKlickBuffer->setPosition( gr.x - th - rbr * 2, 0 );
+                    closeKlickBuffer->setSize( th, th );
+                    closeKlickBuffer->render( zRObj );
                 }
             }
-            titel->setGröße( gr.x - rbr * 2 - sbr, th );
+            titel->setSize( gr.x - rbr * 2 - sbr, th );
             titel->render( zRObj );
             zRObj.releaseDrawOptions();
         }
@@ -2003,37 +2006,35 @@ void Fenster::render( Bild &zRObj ) // zeichent nach zRObj
         int x = rbr;
         int y = rbr + th;
         int br = gr.x - rbr * 2;
-        int hö = gr.y - rbr * 2 - th;
+        int hi = gr.y - rbr * 2 - th;
         if( vSc )
             br -= 16;
         if( hSc )
-            hö -= 16;
-        if( !zRObj.setDrawOptions( x, y, br, hö ) )
+            hi -= 16;
+        if( !zRObj.setDrawOptions( x, y, br, hi ) )
         {
             zRObj.releaseDrawOptions();
             unlockZeichnung();
             return;
         }
-        if( hatStyle( Style::KörperHintergrund ) )
+        if( hatStyle( Style::BodyHintergrund ) )
         {
-            if( hatStyle( Style::KörperHAlpha ) )
-                zRObj.alphaRegion( 0, 0, br, hö, bgKörperFarbe );
+            if( hatStyle( Style::BodyHAlpha ) )
+                zRObj.alphaRegion( 0, 0, br, hi, bgBodyColor );
             else
-                zRObj.füllRegion( 0, 0, br, hö, bgKörperFarbe );
-            if( hatStyle( Style::KörperHBild ) && bgKörperBild )
+                zRObj.fillRegion( 0, 0, br, hi, bgBodyColor );
+            if( hatStyle( Style::BodyHBild ) && bgBodyPicture )
             {
-                int *bgBuff = bgKörperBild->getBuffer();
-                int bgBr = bgKörperBild->getBreite();
-                if( hatStyle( Style::KörperHAlpha ) )
-                    zRObj.alphaBild( 0, 0, br, hö, *bgKörperBild );
+                if( hatStyle( Style::BodyHAlpha ) )
+                    zRObj.alphaBild( 0, 0, br, hi, *bgBodyPicture );
                 else
-                    zRObj.drawBild( 0, 0, br, hö, *bgKörperBild );
+                    zRObj.drawBild( 0, 0, br, hi, *bgBodyPicture );
             }
         }
-        if( hatStyle( Style::KörperBuffered ) && körperBuffer )
+        if( hatStyle( Style::BodyBuffered ) && bodyBuffer )
         {
-            körperBuffer->setGröße( br, hö );
-            körperBuffer->render( zRObj );
+            bodyBuffer->setSize( br, hi );
+            bodyBuffer->render( zRObj );
         }
         if( members )
         {
@@ -2128,11 +2129,11 @@ int Fenster::getTSFarbe() const // gibt die Titel Schrift Farbe zur
     return titel->getSchriftFarbe();
 }
 
-int Fenster::getTSGröße() const // gibt die Titel Schrift Größe zurück
+int Fenster::getTSSize() const // gibt die Titel Schrift Größe zurück
 {
     if( !titel )
         return 0;
-    return titel->getSchriftGröße();
+    return titel->getSchriftSize();
 }
 
 // -- Titel Hintergrund -- 
@@ -2165,11 +2166,11 @@ int Fenster::getTAfFarbe() const // gibt die Farbe des Titel AlphaFeldes zur
     return titel->getAlphaFeldFarbe();
 }
 
-int Fenster::getTAfStärke() const // gibt die Stärke des TitelAlphaFeldes zurück
+int Fenster::getTAfStrength() const // gibt die Stärke des TitelAlphaFeldes zurück
 {
     if( !titel )
         return 0;
-    return titel->getAlphaFeldStärke();
+    return titel->getAlphaFeldStrength();
 }
 
 // -- Titel Hintergrund Bild -- 
@@ -2219,120 +2220,120 @@ int Fenster::getTRBreite() const // gibt die Breite des Titel Rahmens zur
 // -- Körper Hintergrund -- 
 int Fenster::getKBgFarbe() const // gibt die Körper Hintergrund Farbe zurück
 {
-    return bgKörperFarbe;
+    return bgBodyColor;
 }
 
 // -- Körper Hintergrund Bild -- 
 Bild *Fenster::getKBgBild() const // gibt das Körper Hintergrund Bild zurück
 {
-    if( !bgKörperBild )
+    if( !bgBodyPicture )
         return 0;
-    return bgKörperBild->getThis();
+    return bgBodyPicture->getThis();
 }
 
 Bild *Fenster::zKBgBild() const
 {
-    return bgKörperBild;
+    return bgBodyPicture;
 }
 
 // -- Körper AlphaFeld -- 
 AlphaFeld *Fenster::getKAlphaFeld() const // gibt das Körper AlphaFeld zurück
 {
-    if( !körperBuffer )
+    if( !bodyBuffer )
         return 0;
-    return körperBuffer->getThis();
+    return bodyBuffer->getThis();
 }
 
 AlphaFeld *Fenster::zKAlphaFeld() const
 {
-    return körperBuffer;
+    return bodyBuffer;
 }
 
 int Fenster::getKAfFarbe() const // gibt die Farbe des Körper AlphaFeldes zurück
 {
-    if( !körperBuffer )
+    if( !bodyBuffer )
         return 0;
-    return körperBuffer->getFarbe();
+    return bodyBuffer->getFarbe();
 }
 
-int Fenster::getKAfStärke() const // gibt die Stärke des Körper AlphaFeldes zurück
+int Fenster::getKAfStrength() const // gibt die Stärke des Körper AlphaFeldes zurück
 {
-    if( !körperBuffer )
+    if( !bodyBuffer )
         return 0;
-    return körperBuffer->getStärke();
+    return bodyBuffer->getStrength();
 }
 
 // -- Schließen Hintergrund -- 
 int Fenster::getSBgFarbe() const // gibt die Schließ Hintergrund Farbe zurück
 {
-    return bgSchließFarbe;
+    return bgClosingFarbe;
 }
 
 // -- Schließen Hintergrund Bild -- 
 Bild *Fenster::getSBgBild() const // gibt das Schließ Hintergrund Bild zurück
 {
-    if( !bgSchließBild )
+    if( !bgClosingBild )
         return 0;
-    return bgSchließBild->getThis();
+    return bgClosingBild->getThis();
 }
 
 Bild *Fenster::zSBgBild() const
 {
-    return bgSchließBild;
+    return bgClosingBild;
 }
 
 // -- Schließen AlphaFeld -- 
 AlphaFeld *Fenster::getSAlphaFeld() const // gibt das Schließ AlphaFeld zurück
 {
-    if( !schließBuffer )
+    if( !closeBuffer )
         return 0;
-    return schließBuffer->getThis();
+    return closeBuffer->getThis();
 }
 
 AlphaFeld *Fenster::zSAlphaFeld() const
 {
-    return schließBuffer;
+    return closeBuffer;
 }
 
 int Fenster::getSAfFarbe() const // gibt die Farbe des Schließ AlphaFeldes zurück
 {
-    if( !schließBuffer )
+    if( !closeBuffer )
         return 0;
-    return schließBuffer->getFarbe();
+    return closeBuffer->getFarbe();
 }
 
-int Fenster::getSAfStärke() const // gibt die Stärke des Schließ AlphaFeldes zurück
+int Fenster::getSAfStrength() const // gibt die Stärke des Schließ AlphaFeldes zurück
 {
-    if( !schließBuffer )
+    if( !closeBuffer )
         return 0;
-    return schließBuffer->getStärke();
+    return closeBuffer->getStrength();
 }
 
 // -- Schließen Klick AlphaFeld -- 
 AlphaFeld *Fenster::getSKAlphaFeld() const // gibt das Schließ Klick AlphaFeld zurück
 {
-    if( !schließKlickBuffer )
+    if( !closeKlickBuffer )
         return 0;
-    return schließKlickBuffer->getThis();
+    return closeKlickBuffer->getThis();
 }
 
 AlphaFeld *Fenster::zSKAlphaFeld() const
 {
-    return schließKlickBuffer;
+    return closeKlickBuffer;
 }
 
 int Fenster::getSKAfFarbe() const // gibt die Farbe des Schließ Klick AlphaFeldes zurück
 {
-    if( !schließKlickBuffer )
+    if( !closeKlickBuffer )
         return 0;
-    return schließKlickBuffer->getFarbe();
+    return closeKlickBuffer->getFarbe();
 }
 
-int Fenster::getSKAfStärke() const // gibt die Stärke des Schließ Klick AlphaFeldes zurück
+int Fenster::getSKAfStrength() const // gibt die Stärke des Schließ Klick AlphaFeldes zurück
 {
-    if( !schließKlickBuffer )
+    if( !closeKlickBuffer )
         return 0;
-    return schließKlickBuffer->getStärke();
+    return closeKlickBuffer->getStrength();
 }
 
 // -- min max -- 
@@ -2392,7 +2393,7 @@ Zeichnung *Fenster::dublizieren() const // Erzeugt eine Kopie des Fensters
 {
     Fenster *ret = new Fenster();
     ret->setPosition( pos );
-    ret->setGröße( gr );
+    ret->setSize( gr );
     ret->setMausEreignisParameter( makParam );
     ret->setTastaturEreignisParameter( takParam );
     ret->setMausEreignis( Mak );
@@ -2400,8 +2401,8 @@ Zeichnung *Fenster::dublizieren() const // Erzeugt eine Kopie des Fensters
     if( toolTip )
         ret->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
     ret->setStyle( style );
-    ret->setSchließenMeParam( schließenMeParam );
-    ret->setSchließenMe( schließenMe );
+    ret->setClosingMeParam( closingMeParam );
+    ret->setClosingMe( closingMe );
     if( rahmen )
     {
         ret->setRBreite( rahmen->getRBreite() );
@@ -2409,26 +2410,26 @@ Zeichnung *Fenster::dublizieren() const // Erzeugt eine Kopie des Fensters
     }
     if( titel )
         ret->setTTextFeldZ( (TextFeld*)titel->dublizieren() );
-    ret->setKBgFarbe( bgKörperFarbe );
-    if( bgKörperBild )
-        ret->setKBgBild( bgKörperBild->getThis() );
-    if( körperBuffer )
+    ret->setKBgFarbe( bgBodyColor );
+    if( bgBodyPicture )
+        ret->setKBgBild( bgBodyPicture->getThis() );
+    if( bodyBuffer )
     {
-        ret->setKAfFarbe( körperBuffer->getFarbe() );
-        ret->setKAfStärke( körperBuffer->getStärke() );
+        ret->setKAfFarbe( bodyBuffer->getFarbe() );
+        ret->setKAfStrength( bodyBuffer->getStrength() );
     }
-    ret->setSBgFarbe( bgSchließFarbe );
-    if( bgSchließBild )
-        ret->setSBgBild( bgSchließBild->getThis() );
-    if( schließBuffer )
+    ret->setSBgFarbe( bgClosingFarbe );
+    if( bgClosingBild )
+        ret->setSBgBild( bgClosingBild->getThis() );
+    if( closeBuffer )
     {
-        ret->setSAfFarbe( schließBuffer->getFarbe() );
-        ret->setSAfStärke( schließBuffer->getStärke() );
+        ret->setSAfFarbe( closeBuffer->getFarbe() );
+        ret->setSAfStrength( closeBuffer->getStrength() );
     }
-    if( schließKlickBuffer )
+    if( closeKlickBuffer )
     {
-        ret->setSKAfFarbe( schließKlickBuffer->getFarbe() );
-        ret->setSKAfStärke( schließKlickBuffer->getStärke() );
+        ret->setSKAfFarbe( closeKlickBuffer->getFarbe() );
+        ret->setSKAfStrength( closeKlickBuffer->getStrength() );
     }
     if( vScroll )
     {

+ 50 - 50
Fenster.h

@@ -17,7 +17,7 @@ namespace Framework
     class WFenster; // aus dieser Datei
     class WFensterArray; // aus dieser Datei
     class Fenster; // aus dieser Datei
-
+#ifdef WIN32
     // 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 );
@@ -82,11 +82,11 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setSize( 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 );
+        __declspec( dllexport ) void setSize( 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
@@ -229,7 +229,7 @@ namespace Framework
     //  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 );
-
+#endif
     // Fenster Klasse im Programm
     class Fenster : public Zeichnung
     {
@@ -237,63 +237,63 @@ namespace Framework
         class Style : public Zeichnung::Style
         {
         public:
-            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 BodyHintergrund = 0x000000008; // Legt fest, ob der Körper des Fensters einen Hintergrund hat
+            const static __int64 BodyHAlpha = 0x000000010; // Legt fest, ob beim zeichnen des Körperhintergrundes alpha blending verwendet werden soll
+            const static __int64 BodyHBild = 0x000000020; // Legt fest, ob ein Bild als Hintergrund des Körpers verwendet werden soll
+            const static __int64 BodyBuffered = 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 Closable = 0x000001000; // Legt fest, ob in der Titelleiste ein Knopf zum Schließen des Fensters angezeigt werden soll
+            const static __int64 ClosingHintergrund = 0x000002000; // Legt fest, ob der Schließen Knopf einen Hintergrund hat
+            const static __int64 ClosingHAlpha = 0x000004000; // Legt fest, ob beim Zeichnen des Hintergrunds des Schließen Knopfes alpha blending verwendet werden soll
+            const static __int64 ClosingHBild = 0x000008000; // Legt fest, ob für den Hintergrund des Schließen Knopfes ein Bild verwendet werden soll
+            const static __int64 ClosingBuffer = 0x000010000; // Legt fest, ob der Schließen Knopf einen Farbübergang besitzt
+            const static __int64 ClosingKlickBuffer = 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 BreiteChangeable = 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 HeightChangeable = 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 TitelHeightChangeable = 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 MinHi = 0x001000000; // Legt fest, ob es eine Minimale Höhe des Fensters gibt
+            const static __int64 MaxHi = 0x002000000; // Legt fest, ob es eine Maximale Höhe des Fensters gibt
+            const static __int64 BodyMinBr = 0x004000000; // Legt fest, ob es eine Minimale Breite des Körpers gibt
+            const static __int64 BodyMaxBr = 0x008000000; // Legt fest, ob es eine Maximale Breite des Körpers gibt
+            const static __int64 BodyMinHi = 0x010000000; // Legt fest, ob es eine Minimale Höhe des Körpers gibt
+            const static __int64 BodyMaxHi = 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ö; // 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 min_max = MinHi | MaxHi | MaxBr | MaxHi; // Vereint die Flags MinHö, MaxHö, MaxBr, MaxHö
+            const static __int64 body_min_max = BodyMinBr | BodyMaxBr | BodyMinHi | BodyMaxBr; // 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 nichtfixiert = TitelHeightChangeable | HeightChangeable | BreiteChangeable | 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; // Vereint die Flags Sichtbar, Erlaubt, Rahmen, Titel, TitelBuffered, Schließbar, SchließHBild, SchließKlickBuffer, Beweglich
+            const static __int64 normal = Sichtbar | Erlaubt | Rahmen | Titel | TitelBuffered | Closable | ClosingHBild | ClosingKlickBuffer | 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;
+        bool( *closingMe )( void *, void *, MausEreignis );
+        void *closingMeParam;
         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;
+        int bgBodyColor;
+        Bild *bgBodyPicture;
+        AlphaFeld *bodyBuffer;
+        int bgClosingFarbe;
+        Bild *bgClosingBild;
+        AlphaFeld *closeBuffer;
+        AlphaFeld *closeKlickBuffer;
         VScrollBar *vScroll;
         HScrollBar *hScroll;
         Punkt min, max;
         Punkt kMin, kMax;
-        bool schließKlick, klick;
+        bool closeKlick, klick;
         int mx, my;
         int ref;
 
@@ -301,7 +301,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) Fenster();
         // Destruktor 
-        __declspec( dllexport ) ~Fenster();
+        __declspec( dllexport ) virtual ~Fenster();
         // Setzt einen Zeiger auf den Rahmen des Fensters
         //  ram: Der Rahmen
         __declspec( dllexport ) void setRahmenZ( LRahmen *ram );
@@ -331,7 +331,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setTSSize( int gr );
         // Setzt die Hintergrund Farbe des Titels
         //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setTBgFarbe( int f );
@@ -343,7 +343,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setTAfStrength( int st );
         // Setzt das Hintergrund Bild des Titels durch kopieren
         //  b: Das Bild, was kopiert werden soll
         __declspec( dllexport ) void setTBgBild( Bild *b );
@@ -376,15 +376,15 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setKAfStrength( 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 );
+        __declspec( dllexport ) void setClosingMeParam( 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 ) );
+        __declspec( dllexport ) void setClosingMe( bool( *closingMe )( void *, void *, MausEreignis ) );
         // Setzt die Hintergrund Farbe des Schließen Knopfes
         //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setSBgFarbe( int f );
@@ -402,7 +402,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setSAfStrength( 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 );
@@ -411,7 +411,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setSKAfStrength( int st );
         // Setzt die Minimale Größe des Fensters
         //  mx: Die Minimale Breite in Pixeln
         //  my: Die Minimale Höhe in Pixeln
@@ -500,7 +500,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getTSSize() const;
         // Gibt die Hintergrundfarbe des Titels im A8R8G8B8 Format zurück
         __declspec( dllexport ) int getTBgFarbe() const;
         // Gibt den Farbübergang des Titels zurück
@@ -510,7 +510,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getTAfStrength() 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
@@ -536,7 +536,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getKAfStrength() 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
@@ -550,7 +550,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getSAfStrength() 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
@@ -558,7 +558,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getSKAfStrength() 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

+ 17 - 17
Fortschritt.cpp

@@ -21,7 +21,7 @@ FBalken::FBalken()
     fBgBild( 0 ),
     schrift( 0 ),
     schriftFarbe( 0 ),
-    schriftGröße( 0 ),
+    schriftSize( 0 ),
     ref( 1 )
 {
     style = 0;
@@ -103,11 +103,11 @@ void FBalken::setFAFFarbe( int f ) // setzt die Fertig Alpha Feld Farbe
     rend = 1;
 }
 
-void FBalken::setFAFStärke( int st ) // setzt die Stärke des Fertig Alpha Feldes
+void FBalken::setFAFStrength( int st ) // setzt die Stärke des Fertig Alpha Feldes
 {
     if( !fBuffer )
         fBuffer = new AlphaFeld();
-    fBuffer->setStärke( st );
+    fBuffer->setStrength( st );
     rend = 1;
 }
 
@@ -129,8 +129,8 @@ void FBalken::setFBgBild( Bild *b ) // kopiert in das Fertig Hintergrund Bild
 {
     if( !fBgBild )
         fBgBild = new Bild();
-    fBgBild->neuBild( b->getBreite(), b->getHöhe(), 0 );
-    fBgBild->drawBild( 0, 0, b->getBreite(), b->getHöhe(), *b );
+    fBgBild->neuBild( b->getBreite(), b->getHeight(), 0 );
+    fBgBild->drawBild( 0, 0, b->getBreite(), b->getHeight(), *b );
     b->release();
     rend = 1;
 }
@@ -149,9 +149,9 @@ void FBalken::setSFarbe( int f ) // setzt die Schrift Farbe
     rend = 1;
 }
 
-void FBalken::setSGröße( unsigned char gr ) // setzt die Schrift größe
+void FBalken::setSSize( unsigned char gr ) // setzt die Schrift größe
 {
-    schriftGröße = gr;
+    schriftSize = gr;
     rend = 1;
 }
 
@@ -160,8 +160,8 @@ void FBalken::render( Bild &zRObj ) // zeichnet nach zRObj
     if( !hatStyle( Style::Sichtbar ) )
         return;
     lockZeichnung();
-    löscheStyle( Style::VScroll | Style::HScroll );
-    __super::render( zRObj );
+    removeStyle( Style::VScroll | Style::HScroll );
+	ZeichnungHintergrund::render( zRObj );
     if( !zRObj.setDrawOptions( pos, gr ) )
     {
         unlockZeichnung();
@@ -196,7 +196,7 @@ void FBalken::render( Bild &zRObj ) // zeichnet nach zRObj
     int rbr = 0;
     if( hatStyle( Style::FRahmen ) && fRahmen )
     {
-        fRahmen->setGröße( b, h );
+        fRahmen->setSize( b, h );
         fRahmen->render( zRObj );
         rbr = fRahmen->getRBreite();
     }
@@ -205,7 +205,7 @@ void FBalken::render( Bild &zRObj ) // zeichnet nach zRObj
         if( hatStyle( Style::FAlpha ) )
             zRObj.alphaRegion( rbr, rbr, b - rbr * 2, h - rbr * 2, fBgF );
         else
-            zRObj.füllRegion( rbr, rbr, b - rbr * 2, h - rbr * 2, fBgF );
+            zRObj.fillRegion( rbr, rbr, b - rbr * 2, h - rbr * 2, fBgF );
     }
     if( hatStyle( Style::FBild ) && fBgBild )
     {
@@ -216,17 +216,17 @@ void FBalken::render( Bild &zRObj ) // zeichnet nach zRObj
     }
     if( hatStyle( Style::FBuffered ) && fBuffer )
     {
-        fBuffer->setGröße( b - rbr * 2, h - rbr * 2 );
+        fBuffer->setSize( b - rbr * 2, h - rbr * 2 );
         fBuffer->render( zRObj );
     }
     zRObj.releaseDrawOptions();
     if( hatStyle( Style::Prozent ) && schrift )
     {
-        schrift->setSchriftGröße( schriftGröße );
+        schrift->setSchriftSize( schriftSize );
         Text txt;
-        txt.anhängen( (int)getProzent() );
-        txt.anhängen( "%" );
-        schrift->setDrawPosition( rbr + ( gr.x - rbr * 2 ) / 2 - schrift->getTextBreite( &txt ) / 2, rbr + ( gr.y - rbr * 2 ) / 2 - schrift->getTextHöhe( &txt ) / 2 );
+        txt.append( (int)getProzent() );
+        txt.append( "%" );
+        schrift->setDrawPosition( rbr + ( gr.x - rbr * 2 ) / 2 - schrift->getTextBreite( &txt ) / 2, rbr + ( gr.y - rbr * 2 ) / 2 - schrift->getTextHeight( &txt ) / 2 );
         schrift->renderText( &txt, zRObj, schriftFarbe );
     }
     zRObj.releaseDrawOptions();
@@ -243,7 +243,7 @@ double FBalken::getProzent() const // gibt die momentane Prozentzahl zur
 {
     if( !maxAk )
         return 0;
-    return ak / ( maxAk / 100.0 );
+    return (double)ak / ( (double)maxAk / 100.0 );
 }
 
 __int64 FBalken::getAktion() const // gibt die fertigen Aktionen zurück

+ 4 - 4
Fortschritt.h

@@ -42,14 +42,14 @@ namespace Framework
         Bild *fBgBild;
         Schrift *schrift;
         int schriftFarbe;
-        unsigned char schriftGröße;
+        unsigned char schriftSize;
         int ref;
 
     public:
         // Konstruktor 
         __declspec( dllexport ) FBalken();
         // Destructor 
-        __declspec( dllexport ) ~FBalken();
+        __declspec( dllexport ) virtual ~FBalken();
         // Setzt die Anzahl an benötigten Operationen um 100% Fortschritt zu erreichen
         //  ak: Die Anzahl an Operationen
         __declspec( dllexport ) void setAktionAnzahl( __int64 ak );
@@ -75,7 +75,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setFAFStrength( 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 );
@@ -92,7 +92,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setSSize( 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;

+ 221 - 0
Framework Linux.vcxproj

@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|ARM">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM">
+      <Configuration>Release</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x86">
+      <Configuration>Debug</Configuration>
+      <Platform>x86</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x86">
+      <Configuration>Release</Configuration>
+      <Platform>x86</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8492d63f-6800-439e-8fc1-42031b90f00f}</ProjectGuid>
+    <Keyword>Linux</Keyword>
+    <RootNamespace>Framework_Linux</RootNamespace>
+    <MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
+    <ApplicationType>Linux</ApplicationType>
+    <ApplicationTypeRevision>1.0</ApplicationTypeRevision>
+    <TargetLinuxPlatform>Generic</TargetLinuxPlatform>
+    <LinuxProjectType>{D51BCBC9-82E9-4017-911E-C93873C4EA2B}</LinuxProjectType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'" Label="Configuration">
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'" Label="Configuration">
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings" />
+  <ImportGroup Label="Shared" />
+  <ImportGroup Label="PropertySheets" />
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+    <TargetExt>.so</TargetExt>
+    <RemoteProjectDir>$(RemoteRootDir)/Framework</RemoteProjectDir>
+    <TargetName>libdbg$(ProjectName)</TargetName>
+    <IncludePath>D:\Visual Studio 2017\Common7\IDE\VC\Linux\include\usr\include\c++\5;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+    <TargetExt>.so</TargetExt>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <TargetExt>.so</TargetExt>
+    <RemoteProjectDir>$(RemoteRootDir)/Framework/Debug</RemoteProjectDir>
+    <TargetName>libdbgFramework</TargetName>
+    <IncludePath>D:\Visual Studio 2017\Common7\IDE\VC\Linux\include\usr\include\c++\5;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <TargetExt>.so</TargetExt>
+    <RemoteProjectDir>$(RemoteRootDir)/Framework/Release</RemoteProjectDir>
+    <TargetName>libFramework</TargetName>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
+    <TargetExt>.so</TargetExt>
+    <RemoteProjectDir>$(RemoteRootDir)/Framework</RemoteProjectDir>
+    <TargetName>libdbg$(ProjectName)</TargetName>
+    <IncludePath>D:\Visual Studio 2017\Common7\IDE\VC\Linux\include\usr\include\c++\5;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
+    <TargetExt>.so</TargetExt>
+  </PropertyGroup>
+  <ItemGroup>
+    <ClCompile Include="AlphaFeld.cpp" />
+    <ClCompile Include="Animation.cpp" />
+    <ClCompile Include="AuswahlBox.cpp" />
+    <ClCompile Include="Bild.cpp" />
+    <ClCompile Include="Bildschirm.cpp" />
+    <ClCompile Include="Cube.cpp" />
+    <ClCompile Include="Datei.cpp" />
+    <ClCompile Include="DateiSystem.cpp" />
+    <ClCompile Include="Diagramm.cpp" />
+    <ClCompile Include="DXBuffer.cpp" />
+    <ClCompile Include="Fenster.cpp" />
+    <ClCompile Include="Fortschritt.cpp" />
+    <ClCompile Include="Global.cpp" />
+    <ClCompile Include="InitDatei.cpp" />
+    <ClCompile Include="Key.cpp" />
+    <ClCompile Include="Knopf.cpp" />
+    <ClCompile Include="KSGTDatei.cpp" />
+    <ClCompile Include="Liste.cpp" />
+    <ClCompile Include="M2Datei.cpp" />
+    <ClCompile Include="M2DVorschau.cpp" />
+    <ClCompile Include="M3Datei.cpp" />
+    <ClCompile Include="MausEreignis.cpp" />
+    <ClCompile Include="Model2D.cpp" />
+    <ClCompile Include="Model3D.cpp" />
+    <ClCompile Include="Model3DList.cpp" />
+    <ClCompile Include="Prozess.cpp" />
+    <ClCompile Include="Punkt.cpp" />
+    <ClCompile Include="Rahmen.cpp" />
+    <ClCompile Include="Schrift.cpp" />
+    <ClCompile Include="Scroll.cpp" />
+    <ClCompile Include="Tabelle.cpp" />
+    <ClCompile Include="TastaturEreignis.cpp" />
+    <ClCompile Include="Text.cpp" />
+    <ClCompile Include="TextFeld.cpp" />
+    <ClCompile Include="Textur.cpp" />
+    <ClCompile Include="TexturList.cpp" />
+    <ClCompile Include="TexturModel.cpp" />
+    <ClCompile Include="Thread.cpp" />
+    <ClCompile Include="ToolTip.cpp" />
+    <ClCompile Include="Welt3D.cpp" />
+    <ClCompile Include="Zeichnung.cpp" />
+    <ClCompile Include="Zeichnung3D.cpp" />
+    <ClCompile Include="Zeit.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="AlphaFeld.h" />
+    <ClInclude Include="Animation.h" />
+    <ClInclude Include="Animation3D.h" />
+    <ClInclude Include="Array.h" />
+    <ClInclude Include="AuswahlBox.h" />
+    <ClInclude Include="Betriebssystem.h" />
+    <ClInclude Include="Bild.h" />
+    <ClInclude Include="Bildschirm.h" />
+    <ClInclude Include="Cube.h" />
+    <ClInclude Include="Datei.h" />
+    <ClInclude Include="DateiSystem.h" />
+    <ClInclude Include="Diagramm.h" />
+    <ClInclude Include="DreieckListe.h" />
+    <ClInclude Include="DXBuffer.h" />
+    <ClInclude Include="Ebene3D.h" />
+    <ClInclude Include="Fenster.h" />
+    <ClInclude Include="Fortschritt.h" />
+    <ClInclude Include="FrameworkMath.h" />
+    <ClInclude Include="Globals.h" />
+    <ClInclude Include="InitDatei.h" />
+    <ClInclude Include="Key.h" />
+    <ClInclude Include="Knopf.h" />
+    <ClInclude Include="KSGTDatei.h" />
+    <ClInclude Include="Liste.h" />
+    <ClInclude Include="M2Datei.h" />
+    <ClInclude Include="M2DVorschau.h" />
+    <ClInclude Include="M3Datei.h" />
+    <ClInclude Include="Mat3.h" />
+    <ClInclude Include="Mat4.h" />
+    <ClInclude Include="MausEreignis.h" />
+    <ClInclude Include="Model2D.h" />
+    <ClInclude Include="Model3D.h" />
+    <ClInclude Include="Model3DList.h" />
+    <ClInclude Include="ObjectRegister.h" />
+    <ClInclude Include="Prozess.h" />
+    <ClInclude Include="Punkt.h" />
+    <ClInclude Include="Rahmen.h" />
+    <ClInclude Include="Schrift.h" />
+    <ClInclude Include="Scroll.h" />
+    <ClInclude Include="Tabelle.h" />
+    <ClInclude Include="TastaturEreignis.h" />
+    <ClInclude Include="Text.h" />
+    <ClInclude Include="TextFeld.h" />
+    <ClInclude Include="Textur.h" />
+    <ClInclude Include="TexturList.h" />
+    <ClInclude Include="TexturModel.h" />
+    <ClInclude Include="Thread.h" />
+    <ClInclude Include="ToolTip.h" />
+    <ClInclude Include="Vec2.h" />
+    <ClInclude Include="Vec3.h" />
+    <ClInclude Include="Welt3D.h" />
+    <ClInclude Include="Zeichnung.h" />
+    <ClInclude Include="Zeichnung3D.h" />
+    <ClInclude Include="Zeit.h" />
+  </ItemGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <CppAdditionalWarning>switch;no-deprecated-declarations;empty-body;conversion;return-type;parentheses;no-format;uninitialized;unreachable-code;unused-function;unused-value;unused-variable;%(CppAdditionalWarning)</CppAdditionalWarning>
+      <AdditionalOptions>-fPIC</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>$(StlAdditionalDependencies)</AdditionalDependencies>
+      <LibraryDependencies>pthread;%(LibraryDependencies)</LibraryDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Link>
+      <AdditionalDependencies>
+      </AdditionalDependencies>
+      <LibraryDependencies>pthread;%(LibraryDependencies)</LibraryDependencies>
+    </Link>
+    <ClCompile>
+      <AdditionalOptions>-fPIC</AdditionalOptions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets" />
+</Project>

+ 369 - 0
Framework Linux.vcxproj.filters

@@ -0,0 +1,369 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Quelldateien">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Ressourcendateien">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien\Framework">
+      <UniqueIdentifier>{ebc032cb-0fe8-4712-8cba-6f8cf72c9e6e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\OS">
+      <UniqueIdentifier>{446e41c7-ea7d-4519-9cd1-1238232b08f8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\Grafik">
+      <UniqueIdentifier>{d87f71ae-4946-4766-a9e3-e93f41e7f079}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\Grafik\3D">
+      <UniqueIdentifier>{c3d8b482-b58f-48c6-9945-797f38a60fcf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\Grafik\2D">
+      <UniqueIdentifier>{98ccc730-0ee3-4075-bfba-8998571c99e5}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\Grafik\DX">
+      <UniqueIdentifier>{cbb56eda-8286-4f8b-9a06-47b5af838106}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework">
+      <UniqueIdentifier>{c35d3344-6ec8-4fa4-b32c-1976b6520a35}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\OS">
+      <UniqueIdentifier>{d5fa078e-3896-4292-a26d-67a78fed965a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\Grafik">
+      <UniqueIdentifier>{8af2e4df-a840-42d3-a393-5d6b4bf7d569}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\Grafik\2D">
+      <UniqueIdentifier>{849a8e90-f586-4537-8265-3b69a810dd5d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\Grafik\DX">
+      <UniqueIdentifier>{4f762c9c-38af-494e-81a5-7a8fff22d551}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\OS\Datei">
+      <UniqueIdentifier>{fbd720d3-b19c-4501-b4dd-600cdbbea72d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\OS\Datei">
+      <UniqueIdentifier>{3ce6b48b-5906-41a0-b86b-2cce0876825b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\Grafik\4D">
+      <UniqueIdentifier>{638c4ef2-2ea4-4d4f-872a-f2012f97a696}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\Objekte3D">
+      <UniqueIdentifier>{28760380-5f68-43aa-87ae-353d20cad63d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\Objekte3D">
+      <UniqueIdentifier>{867266da-c3c0-4633-8374-989d2b60863c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\Grafik\3D">
+      <UniqueIdentifier>{6b73527a-d839-4081-a7b5-7e1d79b67cbd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Headerdateien\Framework\Objekte2D">
+      <UniqueIdentifier>{c85aabf4-2e43-4a74-90bc-2d92b7bf3259}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Quelldateien\Framework\Objekte2D">
+      <UniqueIdentifier>{446facfc-5180-4e05-a2ff-c5c0287705d2}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Model2D.h">
+      <Filter>Headerdateien\Framework\Grafik\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Vec2.h">
+      <Filter>Headerdateien\Framework\Grafik\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Vec3.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Mat3.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="AlphaFeld.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Knopf.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Fenster.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Fortschritt.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Liste.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Diagramm.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Rahmen.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Tabelle.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="TextFeld.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="ToolTip.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Scroll.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Bildschirm.h">
+      <Filter>Headerdateien\Framework\Grafik\DX</Filter>
+    </ClInclude>
+    <ClInclude Include="Betriebssystem.h">
+      <Filter>Headerdateien\Framework\OS</Filter>
+    </ClInclude>
+    <ClInclude Include="AuswahlBox.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Prozess.h">
+      <Filter>Headerdateien\Framework\OS</Filter>
+    </ClInclude>
+    <ClInclude Include="Thread.h">
+      <Filter>Headerdateien\Framework\OS</Filter>
+    </ClInclude>
+    <ClInclude Include="Bild.h">
+      <Filter>Headerdateien\Framework\Grafik\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="MausEreignis.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="TastaturEreignis.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Array.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Schrift.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Text.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Punkt.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Globals.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="FrameworkMath.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Zeit.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Datei.h">
+      <Filter>Headerdateien\Framework\OS\Datei</Filter>
+    </ClInclude>
+    <ClInclude Include="DateiSystem.h">
+      <Filter>Headerdateien\Framework\OS\Datei</Filter>
+    </ClInclude>
+    <ClInclude Include="InitDatei.h">
+      <Filter>Headerdateien\Framework\OS\Datei</Filter>
+    </ClInclude>
+    <ClInclude Include="KSGTDatei.h">
+      <Filter>Headerdateien\Framework\OS\Datei</Filter>
+    </ClInclude>
+    <ClInclude Include="M2Datei.h">
+      <Filter>Headerdateien\Framework\OS\Datei</Filter>
+    </ClInclude>
+    <ClInclude Include="M2DVorschau.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="ObjectRegister.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="Zeichnung.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="M3Datei.h">
+      <Filter>Headerdateien\Framework\OS\Datei</Filter>
+    </ClInclude>
+    <ClInclude Include="Model3D.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Zeichnung3D.h">
+      <Filter>Headerdateien\Framework\Objekte3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Mat4.h">
+      <Filter>Headerdateien\Framework\Grafik\4D</Filter>
+    </ClInclude>
+    <ClInclude Include="DreieckListe.h">
+      <Filter>Headerdateien\Framework\Grafik\2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Welt3D.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Textur.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Cube.h">
+      <Filter>Headerdateien\Framework\Objekte3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Model3DList.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="TexturList.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Animation3D.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="TexturModel.h">
+      <Filter>Headerdateien\Framework\Objekte3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Animation.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
+    <ClInclude Include="Ebene3D.h">
+      <Filter>Headerdateien\Framework\Grafik\3D</Filter>
+    </ClInclude>
+    <ClInclude Include="Key.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
+    <ClInclude Include="DXBuffer.h">
+      <Filter>Headerdateien\Framework\Grafik\DX</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="Prozess.cpp">
+      <Filter>Quelldateien\Framework\OS</Filter>
+    </ClCompile>
+    <ClCompile Include="Thread.cpp">
+      <Filter>Quelldateien\Framework\OS</Filter>
+    </ClCompile>
+    <ClCompile Include="AlphaFeld.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="AuswahlBox.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Diagramm.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Fenster.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Fortschritt.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Knopf.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Liste.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Rahmen.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Scroll.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Tabelle.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="TextFeld.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="ToolTip.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Bild.cpp">
+      <Filter>Quelldateien\Framework\Grafik\2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Bildschirm.cpp">
+      <Filter>Quelldateien\Framework\Grafik\DX</Filter>
+    </ClCompile>
+    <ClCompile Include="Global.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="MausEreignis.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="Model2D.cpp">
+      <Filter>Quelldateien\Framework\Grafik\2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Punkt.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="Schrift.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="TastaturEreignis.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="Text.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="Zeit.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="Datei.cpp">
+      <Filter>Quelldateien\Framework\OS\Datei</Filter>
+    </ClCompile>
+    <ClCompile Include="DateiSystem.cpp">
+      <Filter>Quelldateien\Framework\OS\Datei</Filter>
+    </ClCompile>
+    <ClCompile Include="InitDatei.cpp">
+      <Filter>Quelldateien\Framework\OS\Datei</Filter>
+    </ClCompile>
+    <ClCompile Include="KSGTDatei.cpp">
+      <Filter>Quelldateien\Framework\OS\Datei</Filter>
+    </ClCompile>
+    <ClCompile Include="M2Datei.cpp">
+      <Filter>Quelldateien\Framework\OS\Datei</Filter>
+    </ClCompile>
+    <ClCompile Include="M2DVorschau.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Zeichnung.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="M3Datei.cpp">
+      <Filter>Quelldateien\Framework\OS\Datei</Filter>
+    </ClCompile>
+    <ClCompile Include="Zeichnung3D.cpp">
+      <Filter>Quelldateien\Framework\Objekte3D</Filter>
+    </ClCompile>
+    <ClCompile Include="Welt3D.cpp">
+      <Filter>Quelldateien\Framework\Grafik\3D</Filter>
+    </ClCompile>
+    <ClCompile Include="Textur.cpp">
+      <Filter>Quelldateien\Framework\Grafik\3D</Filter>
+    </ClCompile>
+    <ClCompile Include="Model3D.cpp">
+      <Filter>Quelldateien\Framework\Grafik\3D</Filter>
+    </ClCompile>
+    <ClCompile Include="Cube.cpp">
+      <Filter>Quelldateien\Framework\Objekte3D</Filter>
+    </ClCompile>
+    <ClCompile Include="Model3DList.cpp">
+      <Filter>Quelldateien\Framework\Grafik\3D</Filter>
+    </ClCompile>
+    <ClCompile Include="TexturList.cpp">
+      <Filter>Quelldateien\Framework\Grafik\3D</Filter>
+    </ClCompile>
+    <ClCompile Include="TexturModel.cpp">
+      <Filter>Quelldateien\Framework\Objekte3D</Filter>
+    </ClCompile>
+    <ClCompile Include="Animation.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
+    <ClCompile Include="Key.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
+    <ClCompile Include="DXBuffer.cpp">
+      <Filter>Quelldateien\Framework\Grafik\DX</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>

+ 20 - 2
Framework.sln

@@ -1,26 +1,44 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.22823.1
+# Visual Studio 15
+VisualStudioVersion = 15.0.26014.0
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Framework", "Framework.vcxproj", "{C67E1D50-8FED-42FC-9538-1818297CF817}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Framework Linux", "Framework Linux.vcxproj", "{8492D63F-6800-439E-8FC1-42031B90F00F}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|ARM = Debug|ARM
 		Debug|Win32 = Debug|Win32
 		Debug|x64 = Debug|x64
+		Release|ARM = Release|ARM
 		Release|Win32 = Release|Win32
 		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C67E1D50-8FED-42FC-9538-1818297CF817}.Debug|ARM.ActiveCfg = Debug|Win32
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Debug|Win32.ActiveCfg = Debug|Win32
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Debug|Win32.Build.0 = Debug|Win32
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Debug|x64.ActiveCfg = Debug|x64
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Debug|x64.Build.0 = Debug|x64
+		{C67E1D50-8FED-42FC-9538-1818297CF817}.Release|ARM.ActiveCfg = Release|Win32
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Release|Win32.ActiveCfg = Release|Win32
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Release|Win32.Build.0 = Release|Win32
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Release|x64.ActiveCfg = Release|x64
 		{C67E1D50-8FED-42FC-9538-1818297CF817}.Release|x64.Build.0 = Release|x64
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Debug|ARM.ActiveCfg = Debug|ARM
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Debug|ARM.Build.0 = Debug|ARM
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Debug|Win32.ActiveCfg = Debug|x86
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Debug|Win32.Build.0 = Debug|x86
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Debug|x64.ActiveCfg = Debug|x64
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Debug|x64.Build.0 = Debug|x64
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Release|ARM.ActiveCfg = Release|ARM
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Release|ARM.Build.0 = Release|ARM
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Release|Win32.ActiveCfg = Release|x86
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Release|Win32.Build.0 = Release|x86
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Release|x64.ActiveCfg = Release|x64
+		{8492D63F-6800-439E-8FC1-42031B90F00F}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 10 - 25
Framework.vcxproj

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -28,27 +28,27 @@
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
     <UseDebugLibraries>false</UseDebugLibraries>
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>v140</PlatformToolset>
+    <PlatformToolset>v141</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
@@ -127,20 +127,7 @@
       <AdditionalDependencies>d3dcompiler.lib;d3d9.lib;d3d11.lib;DXGI.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     <CustomBuildStep>
-      <Command>copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Main Server\Main Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Register Server\Register Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Patch Server\Patch Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Login Server\Login Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Information Server\Information Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Chat Server\Chat Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\DatenbankServer\DatenbankServer\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Anmeldung Server\Anmeldung Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Spiel Server\Spiel Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Erhaltung Server\Erhaltung Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Shop Server\Shop Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\Historie Server\Historie Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Server\News Server\News Server\framework.dll"
-copy "x64\Debug\Framework.dll" "..\Test\Test\framework.dll"
+      <Command>copy "x64\Debug\Framework.dll" "..\Test\Test\framework.dll"
 copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Klient\Start\Start\framework.dll"
 copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Klient\patcher\patcher\framework.dll"
 copy "x64\Debug\Framework.dll" "..\..\Spiele Platform\Klient\Icon\Icon\framework.dll"
@@ -172,8 +159,7 @@ copy "x64\Debug\Framework.dll" "..\GSL Konverter\GSL Konverter\framework.dll"</C
       <AdditionalDependencies>d3dcompiler.lib;d3d9.lib;d3d11.lib;DXGI.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     <CustomBuildStep>
-      <Command>copy "Release\Framework.dll" "..\..\Spiele Platform\Server\Fertig\x32\dlls\framework.dll"
-copy "Release\Framework.dll" "..\..\Spiele Platform\Klient\Fertig\x32\framework.dll"
+      <Command>copy "Release\Framework.dll" "..\..\Spiele Platform\Klient\Fertig\x32\framework.dll"
 copy "Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x32\framework.dll"</Command>
     </CustomBuildStep>
     <CustomBuildStep>
@@ -200,8 +186,7 @@ copy "Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x32\framework.dll
       <AdditionalDependencies>d3dcompiler.lib;d3d9.lib;d3d11.lib;DXGI.lib;dxguid.lib;winmm.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     <CustomBuildStep>
-      <Command>copy "x64\Release\Framework.dll" "..\..\Spiele Platform\Server\Fertig\x64\dlls\framework.dll"
-copy "x64\Release\Framework.dll" "..\..\Spiele Platform\Klient\Fertig\x64\framework.dll"
+      <Command>copy "x64\Release\Framework.dll" "..\..\Spiele Platform\Klient\Fertig\x64\framework.dll"
 copy "x64\Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x64\framework.dll"</Command>
       <Outputs>kopiere...;%(Outputs)</Outputs>
     </CustomBuildStep>
@@ -258,7 +243,7 @@ copy "x64\Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x64\framework
     <ClInclude Include="Punkt.h" />
     <ClInclude Include="Rahmen.h" />
     <ClInclude Include="RenderThread.h" />
-    <ClInclude Include="Schluessel.h" />
+    <ClInclude Include="Key.h" />
     <ClInclude Include="Schrift.h" />
     <ClInclude Include="Scroll.h" />
     <ClInclude Include="Tabelle.h" />
@@ -313,7 +298,7 @@ copy "x64\Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x64\framework
     <ClCompile Include="Punkt.cpp" />
     <ClCompile Include="Rahmen.cpp" />
     <ClCompile Include="RenderThread.cpp" />
-    <ClCompile Include="Schluessel.cpp" />
+    <ClCompile Include="Key.cpp" />
     <ClCompile Include="Schrift.cpp" />
     <ClCompile Include="Scroll.cpp" />
     <ClCompile Include="Tabelle.cpp" />

+ 6 - 6
Framework.vcxproj.filters

@@ -150,9 +150,6 @@
     <ClInclude Include="Maus.h">
       <Filter>Headerdateien\Framework\OS</Filter>
     </ClInclude>
-    <ClInclude Include="Schluessel.h">
-      <Filter>Headerdateien\Framework</Filter>
-    </ClInclude>
     <ClInclude Include="Schrift.h">
       <Filter>Headerdateien\Framework</Filter>
     </ClInclude>
@@ -258,6 +255,9 @@
     <ClInclude Include="Ebene3D.h">
       <Filter>Headerdateien\Framework\Grafik\3D</Filter>
     </ClInclude>
+    <ClInclude Include="Key.h">
+      <Filter>Headerdateien\Framework</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="Maus.cpp">
@@ -326,9 +326,6 @@
     <ClCompile Include="Punkt.cpp">
       <Filter>Quelldateien\Framework</Filter>
     </ClCompile>
-    <ClCompile Include="Schluessel.cpp">
-      <Filter>Quelldateien\Framework</Filter>
-    </ClCompile>
     <ClCompile Include="Schrift.cpp">
       <Filter>Quelldateien\Framework</Filter>
     </ClCompile>
@@ -407,5 +404,8 @@
     <ClCompile Include="Animation.cpp">
       <Filter>Quelldateien\Framework\Objekte2D</Filter>
     </ClCompile>
+    <ClCompile Include="Key.cpp">
+      <Filter>Quelldateien\Framework</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>

+ 19 - 21
Global.cpp

@@ -5,11 +5,11 @@
 #pragma comment( lib, "gdiplus.lib" )
 #include "Fenster.h"
 #include "Maus.h"
-#include "Model3DList.h"
-#include "TexturList.h"
 
 #endif
 #define Global
+#include "Model3DList.h"
+#include "TexturList.h"
 #include "Globals.h"
 #include "Thread.h"
 
@@ -23,15 +23,15 @@ void Framework::initFramework()
     Gdiplus::GdiplusStartup( &gdiplusToken, &gdiplusStartupInput, 0 );
     msgExit = 0;
     MausTrack = 1;
-    for( int i = 0; i < 255; ++i )
-        TastenStand[ i ] = 0;
-    for( int i = 0; i < 3; ++i )
-        MausStand[ i ] = 0;
-    Model3DList::init();
-    m3dRegister = new Model3DList();
-    TexturList::init();
-    texturRegister = new TexturList();
 #endif
+	for( int i = 0; i < 255; ++i )
+		TastenStand[ i ] = 0;
+	for( int i = 0; i < 3; ++i )
+		MausStand[ i ] = 0;
+	Model3DList::init();
+	m3dRegister = new Model3DList();
+	TexturList::init();
+	texturRegister = new TexturList();
     istInitialisiert = 1;
     thRegister = new ThreadRegister();
 }
@@ -42,12 +42,10 @@ void Framework::releaseFramework()
         return;
     thRegister->cleanUpClosedThreads();
     delete thRegister;
-#ifdef WIN32
-    m3dRegister->release();
-    Model3DList::destroy();
-    texturRegister->release();
-    TexturList::destroy();
-#endif
+	m3dRegister->release();
+	Model3DList::destroy();
+	texturRegister->release();
+	TexturList::destroy();
     istInitialisiert = 0;
 }
 
@@ -69,6 +67,8 @@ const Framework::Punkt &Framework::getMausPos()
     return mausPos;
 }
 
+#endif
+
 bool Framework::getMausStand( int taste )
 {
     return MausStand[ taste ];
@@ -87,13 +87,11 @@ bool Framework::getTastenStand( unsigned char taste )
 // Gibt das Model3DData Register des Frameworks ohne erhöhten reference Counter zurück
 Framework::Model3DList *Framework::zM3DRegister()
 {
-    return m3dRegister;
+	return m3dRegister;
 }
 
 // Gibt das Textur Register des Frameworks ohne erhöhten reference Counter zurück
 Framework::TexturList *Framework::zTexturRegister()
 {
-    return texturRegister;
-}
-
-#endif
+	return texturRegister;
+}

+ 11 - 11
Globals.h

@@ -11,28 +11,29 @@ namespace Framework
 {
     class ThreadRegister; // Thread.h
     class Thread; // Thread.h
+	class Model3DList; // Model3DList.h
+	class TexturList; // TexturList.h
 #ifdef WIN32
     class Maus; // Maus.h
     class WFensterArray; // Fenster.h
-    class Model3DList; // Model3DList.h
-    class TexturList; // TexturList.h
 
     Global WFensterArray WFensterA;
     Global bool MausTrack;
-    Global bool MausStand[ 3 ];
-    Global bool TastenStand[ 255 ];
     Global Maus MausZeiger;
     Global bool msgExit;
     Global Punkt mausPos;
-    Global Model3DList *m3dRegister;
-    Global TexturList *texturRegister;
 #endif
+	Global bool TastenStand[ 255 ];
+	Global bool MausStand[ 3 ];
+	Global Model3DList *m3dRegister;
+	Global TexturList *texturRegister;
     Global bool istInitialisiert;
     Global ThreadRegister *thRegister;
 
 #ifdef WIN32
     // Gibt die Koordinaten der Maus auf dem Bildschirm zurück
     __declspec( dllexport ) const Punkt &getMausPos();
+#endif
     // Gibt zurück, ob eine Taste der Maus momentan gedrückt wird
     //  taste: Die Taste, die geprüft werden soll
     // Beispiel: getMausStand( M_Links ); (Benötigt include <MausEreignis.h>
@@ -46,11 +47,10 @@ namespace Framework
     //  taste: Die Taste, deren Status gesetzt werden soll
     //  st: Ob die Taste momentan gedrückt wird. (true), wenn ja. (false) sonnst.
     __declspec( dllexport ) void setTastenStand( unsigned char taste, bool st );
-    // Gibt das Model3DData Register des Frameworks ohne erhöhten reference Counter zurück
-    __declspec( dllexport ) Model3DList *zM3DRegister();
-    // Gibt das Textur Register des Frameworks ohne erhöhten reference Counter zurück
-    __declspec( dllexport ) TexturList *zTexturRegister();
-#endif
+	// Gibt das Model3DData Register des Frameworks ohne erhöhten reference Counter zurück
+	__declspec( dllexport ) Model3DList *zM3DRegister();
+	// Gibt das Textur Register des Frameworks ohne erhöhten reference Counter zurück
+	__declspec( dllexport ) TexturList *zTexturRegister();
     // Initialisiert das Framework
     // Wird in der (WinMain) des Frameworks automatisch aufgerufen
     __declspec( dllexport ) void initFramework();

+ 24 - 24
InitDatei.cpp

@@ -57,17 +57,17 @@ bool InitDatei::laden()
 {
     Datei *dat = new Datei();
     dat->setDatei( pfad->getText() );
-    if( !dat->öffnen( Datei::Style::lesen ) )
+    if( !dat->open( Datei::Style::lesen ) )
     {
         dat->release();
         return 0;
     }
-    löscheAlle();
+    removeAlle();
     Text *zeile = dat->leseZeile();
     for( int i = 0; zeile; ++i )
     {
-        zeile->löschen( "\r\n" );
-        zeile->löschen( "\n" );
+        zeile->remove( "\r\n" );
+        zeile->remove( "\n" );
         Text *n = zeile->getTeilText( 0, zeile->positionVon( '=' ) );
         Text *w = zeile->getTeilText( zeile->positionVon( '=' ) + 1 );
         name->set( n, i );
@@ -76,7 +76,7 @@ bool InitDatei::laden()
         zeile = dat->leseZeile();
         feldAnzahl = i + 1;
     }
-    dat->schließen();
+    dat->close();
     dat->release();
     return 1;
 }
@@ -167,7 +167,7 @@ bool InitDatei::setWert( int num, const char *wert )
     return 1;
 }
 
-bool InitDatei::löscheWert( Text *name )
+bool InitDatei::removeWert( Text *name )
 {
     if( !wertExistiert( name->getText() ) )
     {
@@ -178,8 +178,8 @@ bool InitDatei::l
     {
         if( this->name->z( i )->istGleich( name->getText() ) )
         {
-            this->name->lösche( i );
-            this->wert->lösche( i );
+            this->name->remove( i );
+            this->wert->remove( i );
             --feldAnzahl;
             name->release();
             return 1;
@@ -189,7 +189,7 @@ bool InitDatei::l
     return 0;
 }
 
-bool InitDatei::löscheWert( const char *name )
+bool InitDatei::removeWert( const char *name )
 {
     if( !wertExistiert( name ) )
         return 0;
@@ -197,8 +197,8 @@ bool InitDatei::l
     {
         if( this->name->z( i )->istGleich( name ) )
         {
-            this->name->lösche( i );
-            this->wert->lösche( i );
+            this->name->remove( i );
+            this->wert->remove( i );
             --feldAnzahl;
             return 1;
         }
@@ -206,22 +206,22 @@ bool InitDatei::l
     return 0;
 }
 
-bool InitDatei::löscheWert( int num )
+bool InitDatei::removeWert( int num )
 {
     if( num >= feldAnzahl )
         return 0;
-    this->name->lösche( num );
-    this->wert->lösche( num );
+    this->name->remove( num );
+    this->wert->remove( num );
     --feldAnzahl;
     return 1;
 }
 
-void InitDatei::löscheAlle()
+void InitDatei::removeAlle()
 {
     for( ; feldAnzahl > 0; --feldAnzahl )
     {
-        this->name->lösche( 0 );
-        this->wert->lösche( 0 );
+        this->name->remove( 0 );
+        this->wert->remove( 0 );
     }
 }
 
@@ -231,7 +231,7 @@ bool InitDatei::speichern()
     dat->setDatei( pfad->getText() );
     if( !dat->existiert() )
         dat->erstellen();
-    if( !dat->öffnen( Datei::Style::schreiben ) )
+    if( !dat->open( Datei::Style::schreiben ) )
     {
         dat->release();
         return 0;
@@ -239,14 +239,14 @@ bool InitDatei::speichern()
     for( int i = 0; i < feldAnzahl; ++i )
     {
         Text *zeile = new Text( "" );
-        zeile->anhängen( name->z( i )->getText() );
-        zeile->anhängen( "=" );
-        zeile->anhängen( wert->z( i )->getText() );
-        zeile->anhängen( "\n" );
-        dat->schreibe( zeile->getText(), zeile->getLänge() );
+        zeile->append( name->z( i )->getText() );
+        zeile->append( "=" );
+        zeile->append( wert->z( i )->getText() );
+        zeile->append( "\n" );
+        dat->schreibe( zeile->getText(), zeile->getLength() );
         zeile->release();
     }
-    dat->schließen();
+    dat->close();
     dat->release();
     return 1;
 }

+ 4 - 4
InitDatei.h

@@ -70,17 +70,17 @@ namespace Framework
         // Löscht einen bestimmten Wert
         //  name: Der Name des Wertes, der gelöscht werden soll
         //  return: 1, falls der Wert vorhanden war und erfolgreich gelöscht werden konnte
-        __declspec( dllexport ) bool löscheWert( Text *name );
+        __declspec( dllexport ) bool removeWert( Text *name );
         // Löscht einen bestimmten Wert
         //  name: Der Name des Wertes, der gelöscht werden soll
         //  return: 1, falls der Wert vorhanden war und erfolgreich gelöscht werden konnte
-        __declspec( dllexport ) bool löscheWert( const char *name );
+        __declspec( dllexport ) bool removeWert( const char *name );
         // Löscht einen bestimmten Wert
         //  num: Der Index des Wertes der gelöscht werden soll
         //  return: 1, falls der Wert vorhanden war und erfolgreich gelöscht werden konnte
-        __declspec( dllexport ) bool löscheWert( int num );
+        __declspec( dllexport ) bool removeWert( int num );
         // Löscht alle Werte aus der Datei
-        __declspec( dllexport ) void löscheAlle();
+        __declspec( dllexport ) void removeAlle();
         // Speichert alle Werte in der Datei
         //  return: 1, falls das Speichern erfolgreich war
         __declspec( dllexport ) bool speichern();

+ 17 - 17
KSGTDatei.cpp

@@ -62,21 +62,21 @@ bool KSGTDatei::laden()
     {
         inf.seekg( pos, std::ios::beg );
         char c = 1;
-        int län = 0;
+        int len = 0;
         do
         {
             inf.read( &c, 1 );
-            ++län;
-        } while( c != 0 && c != '\n' && pos + län < gr );
-        if( pos + län == gr )
-            ++län;
+            ++len;
+        } while( c != 0 && c != '\n' && pos + len < gr );
+        if( pos + len == gr )
+            ++len;
         inf.seekg( pos, std::ios::beg );
-        char *v = new char[ län ];
-        v[ län - 1 ] = 0;
-        if( län > 1 )
-            inf.read( v, län - 1 );
-        pos += län;
-        if( län > 1 && !data->z( zeilenPos ) )
+        char *v = new char[ len ];
+        v[ len - 1 ] = 0;
+        if( len > 1 )
+            inf.read( v, len - 1 );
+        pos += len;
+        if( len > 1 && !data->z( zeilenPos ) )
             data->set( new RCArray< Text >, zeilenPos );
         if( !data->z( zeilenPos )->z( feldPos ) )
             data->z( zeilenPos )->set( new Text(), feldPos );
@@ -116,12 +116,12 @@ bool KSGTDatei::setZeile( int zeile, int feldAnzahl, RCArray< Text > *zWert )
     return 1;
 }
 
-bool KSGTDatei::löscheZeile( int zeile )
+bool KSGTDatei::removeZeile( int zeile )
 {
     int zA = getZeilenAnzahl();
     if( zeile >= zA )
         return 0;
-    data->lösche( zeile );
+    data->remove( zeile );
     return 1;
 }
 
@@ -211,7 +211,7 @@ bool KSGTDatei::setFeld( int zeile, int feld, const char *wert )
     return 1;
 }
 
-bool KSGTDatei::löscheFeld( int zeile, int feld )
+bool KSGTDatei::removeFeld( int zeile, int feld )
 {
     int zA = getZeilenAnzahl();
     if( zeile >= zA )
@@ -219,13 +219,13 @@ bool KSGTDatei::l
     int fA = getFeldAnzahl( zeile );
     if( feld >= fA )
         return 0;
-    data->z( zeile )->lösche( feld );
+    data->z( zeile )->remove( feld );
     return 1;
 }
 
 bool KSGTDatei::speichern()
 {
-    if( !pfad->getLänge() )
+    if( !pfad->getLength() )
         return 0;
     if( !DateiExistiert( pfad->getText() ) )
         DateiPfadErstellen( pfad->getText() );
@@ -243,7 +243,7 @@ bool KSGTDatei::speichern()
             if( f )
                 of.write( "\0", 1 );
             if( data->z( z ) && data->z( z )->z( f ) )
-                of.write( data->z( z )->z( f )->getText(), data->z( z )->z( f )->getLänge() );
+                of.write( data->z( z )->z( f )->getText(), data->z( z )->z( f )->getLength() );
         }
     }
     of.close();

+ 2 - 2
KSGTDatei.h

@@ -49,7 +49,7 @@ namespace Framework
         // Löscht eine Zeile
         //  zeile: Der Index der Zeile, die gelöscht werden soll
         //  return: 1, wenn die Zeile gelöscht wurde. 0, wenn die Zeile nicht gefunden wurde
-        __declspec( dllexport ) bool löscheZeile( int zeile );
+        __declspec( dllexport ) bool removeZeile( int zeile );
         // Fügt einer Bestimmten Zeile einen Wert hinzu
         //  zeile: Der Index der Zeile, der ein Wert hinzugefügt werden soll
         //  pos: Die Position in der Zeile, an der der Wert hinzugefügt werden soll
@@ -88,7 +88,7 @@ namespace Framework
         //  zeile: Der Index der Zeile, aus der ein Wert gelöscht werden soll
         //  feld: Die Position in der Zeile, an der der Wert gelöscht werden soll
         //  return: 1, falls Der Wert erfolgreich gelöscht wurde. 0, falls die Zeile oder der Wert nicht existiert
-        __declspec( dllexport ) bool löscheFeld( int zeile, int feld );
+        __declspec( dllexport ) bool removeFeld( int zeile, int feld );
         // Speichert die Tabelle in der Datei
         //  return: 1, falls die Tabbelle erfolgreich gespeichert wurde
         __declspec( dllexport ) bool speichern();

+ 4 - 4
Kam3D.cpp

@@ -14,7 +14,7 @@ using namespace Framework;
 // Konstruktor
 Kam3D::Kam3D()
 {
-    öffnungswinkel = (float)PI / 4;
+    openingAngle = (float)PI / 4;
     minZ = 0.1f;
     maxZ = 5000;
     pos = Vec3< float >( 0, 0, -1000 );
@@ -51,7 +51,7 @@ Kam3D::~Kam3D()
 void Kam3D::updateMatrix()
 {
     view = view.rotationX( -rotX ) * view.rotationY( -rotY ) * view.rotationZ( -rotZ ) * view.translation( Vec3< float >( -pos.x, -pos.y, -pos.z ) );
-    proj = proj.projektion( öffnungswinkel, viewport->Width / viewport->Height, minZ, maxZ );
+    proj = proj.projektion( openingAngle, viewport->Width / viewport->Height, minZ, maxZ );
 }
 
 // Setzt die Position der Kamera in der 3D Welt
@@ -107,7 +107,7 @@ void Kam3D::setBildschirmPosition( int x, int y )
 
 // Setzt die Größe des Bildes auf dem Bildschirm
 //  p: Ein Punkt, mit x als Breite und y als Höhe in Pixlen
-void Kam3D::setBildschirmGröße( Punkt p )
+void Kam3D::setBildschirmSize( Punkt p )
 {
     viewport->Width = (float)p.x;
     viewport->Height = (float)p.y;
@@ -117,7 +117,7 @@ void Kam3D::setBildschirmGr
 // Setzt die Größe des Bildes auf dem Bildschirm
 //  br: Die Breite in Pixeln
 //  hö: Die Höhe in Pixeln
-void Kam3D::setBildschirmGröße( int br, int hö )
+void Kam3D::setBildschirmSize( int br, int hö )
 {
     viewport->Width = (float)br;
     viewport->Height = (float)hö;

+ 4 - 4
Kam3D.h

@@ -21,7 +21,7 @@ namespace Framework
         Mat4< float > view;
         Mat4< float > proj;
 
-        float öffnungswinkel;
+        float openingAngle;
         float minZ;
         float maxZ;
         Vec3< float > pos;
@@ -61,11 +61,11 @@ namespace Framework
         __declspec( dllexport ) void setBildschirmPosition( int x, int y );
         // Setzt die Größe des Bildes auf dem Bildschirm
         //  p: Ein Punkt, mit x als Breite und y als Höhe in Pixlen
-        __declspec( dllexport ) void setBildschirmGröße( Punkt p );
+        __declspec( dllexport ) void setBildschirmSize( Punkt p );
         // Setzt die Größe des Bildes auf dem Bildschirm
         //  br: Die Breite in Pixeln
-        //  hö: Die Höhe in Pixeln
-        __declspec( dllexport ) void setBildschirmGröße( int br, int hö );
+        //  hi: Die Höhe in Pixeln
+        __declspec( dllexport ) void setBildschirmSize( int br, int hi );
         // Setzt die Welt, die gezeichnet werden soll
         //  w: Die Welt
         __declspec( dllexport ) void setWelt( Welt3D *w );

+ 64 - 64
Schluessel.cpp → Key.cpp

@@ -1,27 +1,27 @@
-#include "Schluessel.h"
+#include "Key.h"
 
-using namespace Framework::Verschlüsselung;
+using namespace Framework::Encryption;
 
 // Inhalt der Bytes Klasse aus Schlüssel.h
 // Konstruktor
 Bytes::Bytes()
     : bytes( 0 ),
     del( 1 ),
-    län( 0 ),
+    length( 0 ),
     ref( 1 )
 {}
 
-Bytes::Bytes( int län )
-    : bytes( new char[ län ] ),
+Bytes::Bytes( int len )
+    : bytes( new char[ len ] ),
     del( 1 ),
-    län( län ),
+	length( len ),
     ref( 1 )
 {}
 
-Bytes::Bytes( const char *daten, int län )
-    : bytes( new char[ län ] ),
+Bytes::Bytes( const char *daten, int len )
+    : bytes( new char[ len ] ),
     del( 1 ),
-    län( län ),
+	length( len ),
     ref( 1 )
 {
     setBytes( daten );
@@ -39,69 +39,69 @@ void Bytes::setBytes( const char *daten )
 {
     if( !bytes || !daten )
         return;
-    char *end = bytes + län;
+    char *end = bytes + length;
     for( char *c = bytes; c < end; c++, ++daten )
         *c = *daten;
 }
 
-void Bytes::setBytes( const char *daten, int län )
+void Bytes::setBytes( const char *daten, int len )
 {
-    if( !daten || !län )
+    if( !daten || !len )
         return;
     if( del )
         delete[] bytes;
     del = 1;
-    bytes = new char[ län ];
-    this->län = län;
+    bytes = new char[ len ];
+    this->length = len;
     setBytes( daten );
 }
 
-void Bytes::setBytesZ( char *daten, int län )
+void Bytes::setBytesZ( char *daten, int len )
 {
     if( del )
         delete[] bytes;
     del = 0;
     bytes = daten;
-    this->län = län;
+    this->length = len;
 }
 
-void Bytes::füll( const char c )
+void Bytes::fill( const char c )
 {
     if( !bytes )
         return;
-    char *end = bytes + län;
+    char *end = bytes + length;
     for( char *b = bytes; b < end; ++b )
         *b = c;
 }
 
-void Bytes::füll( const char c, int län )
+void Bytes::fill( const char c, int len )
 {
     if( !bytes )
-        bytes = new char[ län ];
-    län = län > this->län ? this->län : län;
-    char *end = bytes + län;
+        bytes = new char[ len ];
+    len = len > this->length ? this->length : len;
+    char *end = bytes + len;
     for( char *b = bytes; b < end; ++b )
         *b = c;
 }
 
-void Bytes::füll( const char c, int beg, int end )
+void Bytes::fill( const char c, int beg, int end )
 {
-    if( beg >= län )
+    if( beg >= length )
         return;
     if( !bytes )
         bytes = new char[ end - beg ];
-    end = end > this->län ? this->län : end;
+    end = end > this->length ? this->length : end;
     char *endB = bytes + end;
     for( char *b = bytes + beg; b < endB; ++b )
         *b = c;
 }
 
-void Bytes::füll( const char *c, int cLän )
+void Bytes::fill( const char *c, int cLen )
 {
-    if( !c || !cLän || !bytes )
+    if( !c || !cLen || !bytes )
         return;
-    char *endB = bytes + län;
-    const char *endC = c + cLän;
+    char *endB = bytes + length;
+    const char *endC = c + cLen;
     const char *d = c;
     for( char *b = bytes; b < endB; b++, d = d < endC - 1 ? d + 1 : c )
         *b = *d;
@@ -109,15 +109,15 @@ void Bytes::f
 
 void Bytes::set( const char c, int pos )
 {
-    if( !bytes || pos >= län )
+    if( !bytes || pos >= length )
         return;
     bytes[ pos ] = c;
 }
 
 // constant
-int Bytes::getLänge() const
+int Bytes::getLength() const
 {
-    return län;
+    return length;
 }
 
 char *Bytes::getBytes() const
@@ -143,95 +143,95 @@ Bytes *Bytes::release()
 
 // Inhalt der Schlüssel Klasse aus Schlüssel.h
 // Konstruktor
-Schlüssel::Schlüssel()
-    : schlüssel( 0 ),
-    län( 0 ),
+Key::Key()
+    : key( 0 ),
+    length( 0 ),
     pos( 0 ),
     ref( 1 )
 {}
 
-Schlüssel::Schlüssel( const char *s, int län )
-    : schlüssel( new unsigned char[ län ] ),
-    län( län ),
+Key::Key( const char *s, int len )
+    : key( new unsigned char[ len ] ),
+    length( len ),
     pos( 0 ),
     ref( 1 )
 {
-    for( int i = 0; i < län; ++i )
-        schlüssel[ i ] = s[ i ];
+    for( int i = 0; i < len; ++i )
+        key[ i ] = s[ i ];
 }
 
 // Destruktor
-Schlüssel::~Schlüssel()
+Key::~Key()
 {
-    delete[] schlüssel;
+    delete[] key;
 }
 
 // nicht constant
-void Schlüssel::setPos( int p )
+void Key::setPos( __int64 p )
 {
     if( p < 0 )
         p = 0;
-    pos = p % län;
+    pos = (int)(p % length);
 }
 
-void Schlüssel::setSchlüssel( const char *s, int län )
+void Key::setKey( const char *s, int len )
 {
-    delete[] schlüssel;
-    schlüssel = new unsigned char[ län ];
-    for( int i = 0; i < län; ++i )
-        schlüssel[ i ] = s[ i ];
+    delete[] key;
+    key = new unsigned char[ len ];
+    for( int i = 0; i < len; ++i )
+        key[ i ] = s[ i ];
     pos = 0;
-    this->län = län;
+    this->length = len;
 }
 
-void Schlüssel::codieren( Bytes *daten )
+void Key::codieren( Bytes *daten )
 {
-    if( !schlüssel || !län )
+    if( !key || !length )
     {
         daten->release();
         return;
     }
-    int dLän = daten->getLänge();
+    int dLen = daten->getLength();
     char *bytes = daten->getBytes();
-    char *bEnd = bytes + dLän;
+    char *bEnd = bytes + dLen;
     for( char *c = bytes; c < bEnd; ++c )
     {
-        *c = *c + schlüssel[ pos ];
+        *c = (char)( *c + key[ pos ] );
         ++pos;
-        if( pos >= län )
+        if( pos >= length )
             pos = 0;
     }
     daten->release();
 }
 
-void Schlüssel::decodieren( Bytes *daten )
+void Key::decodieren( Bytes *daten )
 {
-    if( !schlüssel || !län )
+    if( !key || !length )
     {
         daten->release();
         return;
     }
-    int dLän = daten->getLänge();
+    int dLen = daten->getLength();
     char *bytes = daten->getBytes();
-    char *bEnd = bytes + dLän;
+    char *bEnd = bytes + dLen;
     for( char *c = bytes; c < bEnd; ++c )
     {
-        *c = *c - schlüssel[ pos ];
+        *c = (char)( *c - key[ pos ] );
         ++pos;
-        if( pos >= län )
+        if( pos >= length )
             pos = 0;
     }
     daten->release();
 }
 
 // Reference Counting
-Schlüssel *Schlüssel::getThis()
+Key *Key::getThis()
 {
     ++ref;
     return this;
 }
 
-Schlüssel *Schlüssel::release()
+Key *Key::release()
 {
     --ref;
     if( !ref )

+ 31 - 31
Schluessel.h → Key.h

@@ -1,11 +1,11 @@
-#ifndef Schluessel_H
-#define Schluessel_H
+#ifndef Key_H
+#define Key_H
 
 #include "Betriebssystem.h"
 
 namespace Framework
 {
-    namespace Verschlüsselung
+    namespace Encryption
     {
         // Speichert einen Array von bytes
         class Bytes
@@ -13,19 +13,19 @@ namespace Framework
         private:
             char *bytes;
             bool del;
-            int län;
+            int length;
             int ref;
 
         public:
             // Erzeugt einen lehren Byte Array
             __declspec( dllexport ) Bytes();
             // Erzeugt einen neuen Byte Array mit bestimmter Länge
-            //  län: Die Länge des Arrays
-            __declspec( dllexport ) Bytes( int län );
+            //  length: Die Länge des Arrays
+            __declspec( dllexport ) Bytes( int length );
             // Erzeugt ein neuen Byte Array durch kopieren der bytes
             //  daten: Die Bytes, die kopiert werden sollen
-            //  län: Die Anzahl der Bytes die kopiert werden sollen
-            __declspec( dllexport ) Bytes( const char *daten, int län );
+            //  length: Die Anzahl der Bytes die kopiert werden sollen
+            __declspec( dllexport ) Bytes( const char *daten, int length );
             // Löscht den Array
             __declspec( dllexport ) ~Bytes();
             // Befüllt den Bytearray durch kopieren der Bytes
@@ -33,34 +33,34 @@ namespace Framework
             __declspec( dllexport ) void setBytes( const char *daten );
             // Löscht den Array und erzeugt einen neuen
             //  daten: Die Bytes, die kopiert werden sollen
-            //  län: Die nänge des Arrays
-            __declspec( dllexport ) void setBytes( const char *daten, int län );
+            //  length: Die nänge des Arrays
+            __declspec( dllexport ) void setBytes( const char *daten, int length );
             // Löscht den Array und übernimmt den übergebenen ohne zu kopieren
             //  daten: Der neue Byte Array
-            //  län: Die nänge des Arrays
-            __declspec( dllexport ) void setBytesZ( char *daten, int län );
+            //  length: Die nänge des Arrays
+            __declspec( dllexport ) void setBytesZ( char *daten, int length );
             // Setzt alle Bytes des Arrays auf einen bestimmten Wert
             //  c: Der Wert, auf den die Bytes gesetzt werden sollen
-            __declspec( dllexport ) void füll( const char c );
+            __declspec( dllexport ) void fill( const char c );
             // Setzt eine bestimmte Anzahl von Bytes des Arrays auf einen bestimmten Wert
             //  c: Der Wert, auf den die Bytes gesetzt werden sollen
-            //  län: Die Anzahl der Bytes die gesetzt werden sollen
-            __declspec( dllexport ) void füll( const char c, int län );
+            //  len: Die Anzahl der Bytes die gesetzt werden sollen
+            __declspec( dllexport ) void fill( const char c, int len );
             // Setzt einen bestimmte Abschnitt von Bytes des Arrays auf einen bestimmten Wert
             //  c: Der Wert, auf den die Bytes gesetzt werden sollen
             //  beg: Die Startposition des zu setzenden Abschnittes
             //  end: Die Endposition des zu setzenden Abschnittes (nicht enthalten)
-            __declspec( dllexport ) void füll( const char c, int beg, int end );
+            __declspec( dllexport ) void fill( const char c, int beg, int end );
             // Kopiert bestimmte bytes in den Array
             //  c: Die Bytes, die kopiert werden sollen
-            //  cLän: Die Anzahl an Bytes, die gesetzt werden sollen
-            __declspec( dllexport ) void füll( const char *c, int cLän );
+            //  cLength: Die Anzahl an Bytes, die gesetzt werden sollen
+            __declspec( dllexport ) void fill( const char *c, int cLength );
             // Setzt ein bestimmtes Byte auf einen Wert
             //  c: Der Wert, auf den das Byte gesetzt werden soll
             //  pos: Die Position des Bytes im Array
             __declspec( dllexport ) void set( const char c, int pos );
             // Gibt die Länge des Arrays zurück
-            __declspec( dllexport ) int getLänge() const;
+            __declspec( dllexport ) int getLength() const;
             // Gibt den Array von Bytes zurück
             __declspec( dllexport ) char *getBytes() const;
             // Erhöht den Reference Counting Zähler.
@@ -72,30 +72,30 @@ namespace Framework
         };
 
         // Kann Bytesequenzen mit bestimmten Schlüsseln verschlüsseln und entschlüsseln
-        class Schlüssel
+        class Key
         {
         private:
-            unsigned char *schlüssel;
-            int län;
+            unsigned char *key;
+            int length;
             int pos;
             int ref;
 
         public:
             // Erzeugt ein leeres Zeichnung
-            __declspec( dllexport ) Schlüssel();
+            __declspec( dllexport ) Key();
             // Erzeugt ein neues Zeichnung mi einem Schlüssel
             //  s: Der Schlüssel, der zum verschlüsseln und entchlüsseln verwendet werden soll
-            //  län: Die Länge des Schlüssels
-            __declspec( dllexport ) Schlüssel( const char *s, int län );
+            //  length: Die Länge des Schlüssels
+            __declspec( dllexport ) Key( const char *s, int length );
             // Löscht das Zeichnung
-            __declspec( dllexport ) ~Schlüssel();
+            __declspec( dllexport ) ~Key();
             // Setzt die Position im Schlüssel, wo mit dem verschlüsseln und entschlüsseln begonnen werden soll
             //  p: Die Position im Schlüssel
-            __declspec( dllexport ) void setPos( int p );
+            __declspec( dllexport ) void setPos( __int64 p );
             // Setzt den Schlüssel, der zum ver- und entschlüsseln verwendet werden soll
             //  s: Der Schlüssel
-            //  län: Die Länge des Schlüssels
-            __declspec( dllexport ) void setSchlüssel( const char *s, int län );
+            //  length: Die Länge des Schlüssels
+            __declspec( dllexport ) void setKey( const char *s, int length );
             // Verschlüsselt einen Byte Array mit dem gesetzten Schlüssel
             //  daten: Der Byte Array, der verschlüsselt werden soll. Wird von der Funktion verändert
             __declspec( dllexport ) void codieren( Bytes *daten );
@@ -104,10 +104,10 @@ namespace Framework
             __declspec( dllexport ) void decodieren( Bytes *daten );
             // Erhöht den Reference Counting Zähler.
             //  return: this.
-            __declspec( dllexport ) Schlüssel *getThis();
+            __declspec( dllexport ) Key *getThis();
             // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
             //  return: 0.
-            __declspec( dllexport ) Schlüssel *release();
+            __declspec( dllexport ) Key *release();
         };
     }
 }

+ 68 - 68
Knopf.cpp

@@ -27,13 +27,13 @@ Knopf::Knopf()
     style = Style::Erlaubt | Style::Buffered | Style::KlickBuffer | Style::Rahmen;
     this->setMausEreignis( _ret1ME );
     setSchriftFarbe( 0xFFFFFFFF );
-    setSchriftGröße( 12 );
+    setSchriftSize( 12 );
     setLinienRahmenBreite( 2 );
     setLinienRahmenFarbe( 0xFF00FF00 );
     setAlphaFeldFarbe( 0x5500FF00 );
-    setAlphaFeldStärke( -5 );
+    setAlphaFeldStrength( -5 );
     setKBFarbe( 0xFF000000 );
-    setKBStärke( 20 );
+    setKBStrength( 20 );
     addStyle( TextFeld::Style::Center | TextFeld::Style::Mehrfarbig );
 }
 
@@ -59,10 +59,10 @@ void Knopf::setKlickBild( Bild *bild ) // setzt das Klick Bild
     {
         if( !klickBild )
             klickBild = new Bild();
-        klickBild->neuBild( bild->getBreite(), bild->getHöhe(), 0 );
+        klickBild->neuBild( bild->getBreite(), bild->getHeight(), 0 );
         int *buff1 = klickBild->getBuffer();
         int *buff2 = bild->getBuffer();
-        for( int i = 0; i < bild->getBreite() * bild->getHöhe(); ++i )
+        for( int i = 0; i < bild->getBreite() * bild->getHeight(); ++i )
             buff1[ i ] = buff2[ i ];
         bild->release();
         rend = 1;
@@ -85,11 +85,11 @@ void Knopf::setKBZ( AlphaFeld *af )
     rend = 1;
 }
 
-void Knopf::setKBStärke( int st ) // setzt die Stärke des Klick Buffers
+void Knopf::setKBStrength( int st ) // setzt die Stärke des Klick Buffers
 {
     if( !klickBuffer )
         klickBuffer = new AlphaFeld();
-    klickBuffer->setStärke( st );
+    klickBuffer->setStrength( st );
     rend = 1;
 }
 
@@ -119,7 +119,7 @@ void Knopf::doMausEreignis( MausEreignis &me ) // Maus Ereignis
             if( toolTip )
                 toolTip->setMausIn( 0 );
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -127,13 +127,13 @@ void Knopf::doMausEreignis( MausEreignis &me ) // Maus Ereignis
             return;
         }
     }
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt )
+    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves )
     {
         if( toolTip )
             toolTip->setMausIn( 0 );
         return;
     }
-    if( !mausIn && me.id != ME_Verlässt && !me.verarbeitet )
+    if( !mausIn && me.id != ME_Leaves && !me.verarbeitet )
     {
         mausIn = 1;
         if( toolTip )
@@ -155,7 +155,7 @@ void Knopf::doMausEreignis( MausEreignis &me ) // Maus Ereignis
             if( klickIndex )
                 rend = 1;
         }
-        if( me.id == ME_RLinks || me.id == ME_Verlässt )
+        if( me.id == ME_RLinks || me.id == ME_Leaves )
         {
             if( klickIndex )
                 rend = 1;
@@ -182,15 +182,15 @@ void Knopf::render( Bild &zRObj ) // zeichenet nach zRObj
     if( !hatStyle( Style::Sichtbar ) )
         return;
     addStyle( TextFeld::Style::Center );
-    löscheStyle( Style::VScroll | Style::HScroll );
+    removeStyle( Style::VScroll | Style::HScroll );
     bool rA = 0;
     if( !hatStyle( Style::Erlaubt ) )
     {
         zRObj.setAlpha( 0x20 );
         rA = 1;
     }
-    __super::render( zRObj );
-    if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
+	TextFeld::render( zRObj );
+    if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
     {
         if( rA )
             zRObj.releaseAlpha();
@@ -201,20 +201,20 @@ void Knopf::render( Bild &zRObj ) // zeichenet nach zRObj
         if( hatStyle( Style::KlickFarbe ) )
         {
             if( hatStyle( Style::KlickAlpha ) )
-                zRObj.alphaRegion( 0, 0, innenGröße.x, innenGröße.y, klickFarbe );
+                zRObj.alphaRegion( 0, 0, innenSize.x, innenSize.y, klickFarbe );
             else
-                zRObj.füllRegion( 0, 0, innenGröße.x, innenGröße.y, klickFarbe );
+                zRObj.fillRegion( 0, 0, innenSize.x, innenSize.y, klickFarbe );
         }
         if( hatStyle( Style::KlickBild ) && klickBild )
         {
             if( hatStyle( Style::KlickAlpha ) )
-                zRObj.alphaBild( 0, 0, innenGröße.x, innenGröße.y, *klickBild );
+                zRObj.alphaBild( 0, 0, innenSize.x, innenSize.y, *klickBild );
             else
-                zRObj.drawBild( 0, 0, innenGröße.x, innenGröße.y, *klickBild );
+                zRObj.drawBild( 0, 0, innenSize.x, innenSize.y, *klickBild );
         }
         if( hatStyle( Style::KlickBuffer ) && klickBuffer )
         {
-            klickBuffer->setGröße( innenGröße.x, innenGröße.y );
+            klickBuffer->setSize( innenSize.x, innenSize.y );
             klickBuffer->render( zRObj );
         }
     }
@@ -260,18 +260,18 @@ int Knopf::getKBFarbe() const // gibt getThis der Farbe des Klick Buffers zur
     return klickBuffer->getFarbe();
 }
 
-int Knopf::getKBStärke() const // gibt die Stärke des Klickbuffers zurück
+int Knopf::getKBStrength() const // gibt die Stärke des Klickbuffers zurück
 {
     if( !klickBuffer )
         return 0;
-    return klickBuffer->getStärke();
+    return klickBuffer->getStrength();
 }
 
 Zeichnung *Knopf::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
 {
     Knopf *obj = new Knopf();
     obj->setPosition( pos );
-    obj->setGröße( gr );
+    obj->setSize( gr );
     obj->setMausEreignisParameter( makParam );
     obj->setTastaturEreignisParameter( takParam );
     obj->setMausEreignis( Mak );
@@ -279,7 +279,7 @@ Zeichnung *Knopf::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
     if( toolTip )
         obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
     obj->setStyle( style );
-    obj->setSchriftGröße( getSchriftGröße() );
+    obj->setSchriftSize( getSchriftSize() );
     if( zSchrift() )
         obj->setSchriftZ( getSchrift() );
     if( zText() )
@@ -305,7 +305,7 @@ Zeichnung *Knopf::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
         obj->setHorizontalScrollFarbe( horizontalScrollBar->getFarbe(), horizontalScrollBar->getBgFarbe() );
     }
     obj->setSchowChar( getShowChar() );
-    obj->setAuswahl( getFärbungPos(), getCursorPos() );
+    obj->setAuswahl( getSelectionPos(), getCursorPos() );
     obj->setKlickFarbe( klickFarbe );
     if( klickBild )
         obj->setKlickBild( klickBild->getThis() );
@@ -350,7 +350,7 @@ KontrollKnopf::KontrollKnopf()
 {
     style = Style::Erlaubt | Style::KlickBuffer;
     setKAFFarbe( 0x00007500 );
-    setKAFStärke( -30 );
+    setKAFStrength( -30 );
 }
 
 // Destruktor 
@@ -441,7 +441,7 @@ void KontrollKnopf::setSFarbe( int f ) // setzt die Schrift Farbe
     rend = 1;
 }
 
-void KontrollKnopf::setSGröße( int gr ) // setzt die Schrift Größe
+void KontrollKnopf::setSSize( int gr ) // setzt die Schrift Größe
 {
     sGr = gr;
     rend = 1;
@@ -471,8 +471,8 @@ void KontrollKnopf::setSBgBild( Bild *b )
 {
     if( !sBgB )
         sBgB = new Bild();
-    sBgB->neuBild( b->getBreite(), b->getHöhe(), 0 );
-    sBgB->drawBild( 0, 0, b->getBreite(), b->getHöhe(), *b );
+    sBgB->neuBild( b->getBreite(), b->getHeight(), 0 );
+    sBgB->drawBild( 0, 0, b->getBreite(), b->getHeight(), *b );
     b->release();
     rend = 1;
 }
@@ -489,8 +489,8 @@ void KontrollKnopf::setKBgBild( Bild *b )
 {
     if( !kBgB )
         kBgB = new Bild();
-    kBgB->neuBild( b->getBreite(), b->getHöhe(), 0 );
-    kBgB->drawBild( 0, 0, b->getBreite(), b->getHöhe(), *b );
+    kBgB->neuBild( b->getBreite(), b->getHeight(), 0 );
+    kBgB->drawBild( 0, 0, b->getBreite(), b->getHeight(), *b );
     b->release();
     rend = 1;
 }
@@ -511,11 +511,11 @@ void KontrollKnopf::setSAFFarbe( int f ) // setzt die Select Alphafeld Farbe
     rend = 1;
 }
 
-void KontrollKnopf::setSAFStärke( int st ) // setzt die Select AlphaFeld Stärke
+void KontrollKnopf::setSAFStrength( int st ) // setzt die Select AlphaFeld Stärke
 {
     if( !sAf )
         sAf = new AlphaFeld();
-    sAf->setStärke( st );
+    sAf->setStrength( st );
     rend = 1;
 }
 
@@ -535,11 +535,11 @@ void KontrollKnopf::setKAFFarbe( int f ) // setzt die Klick Alphafeld Farbe
     rend = 1;
 }
 
-void KontrollKnopf::setKAFStärke( int st ) // setzt die Klick AlphaFeld Stärke
+void KontrollKnopf::setKAFStrength( int st ) // setzt die Klick AlphaFeld Stärke
 {
     if( !kAf )
         kAf = new AlphaFeld();
-    kAf->setStärke( st );
+    kAf->setStrength( st );
     rend = 1;
 }
 
@@ -588,7 +588,7 @@ void KontrollKnopf::doMausEreignis( MausEreignis &me ) // Nachrichten verarbeitu
             if( toolTip )
                 toolTip->setMausIn( 0 );
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -596,13 +596,13 @@ void KontrollKnopf::doMausEreignis( MausEreignis &me ) // Nachrichten verarbeitu
             return;
         }
     }
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt )
+    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves )
     {
         if( toolTip )
             toolTip->setMausIn( 0 );
         return;
     }
-    if( !mausIn && me.id != ME_Verlässt )
+    if( !mausIn && me.id != ME_Leaves )
     {
         mausIn = 1;
         if( toolTip )
@@ -630,7 +630,7 @@ void KontrollKnopf::doMausEreignis( MausEreignis &me ) // Nachrichten verarbeitu
             addStyle( Style::MausKlick );
         if( me.id == ME_RLinks )
         {
-            löscheStyle( Style::MausKlick );
+            removeStyle( Style::MausKlick );
             setStyle( Style::Selected, !hatStyle( Style::Selected ) );
         }
         me.verarbeitet = 1;
@@ -645,10 +645,10 @@ void KontrollKnopf::render( Bild &zRObj ) // zeichnet nach zRObj
 {
     if( !hatStyle( Style::Sichtbar ) )
         return;
-    löscheStyle( Style::VScroll | Style::HScroll );
-    __super::render( zRObj );
+    removeStyle( Style::VScroll | Style::HScroll );
+	ZeichnungHintergrund::render( zRObj );
     lockZeichnung();
-    if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
+    if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
     {
         unlockZeichnung();
         return;
@@ -658,48 +658,48 @@ void KontrollKnopf::render( Bild &zRObj ) // zeichnet nach zRObj
         if( hatStyle( Style::KlickFarbe ) )
         {
             if( hatStyle( Style::KlickAlpha ) )
-                zRObj.alphaRegion( 0, 0, innenGröße.x, innenGröße.y, kBgF );
+                zRObj.alphaRegion( 0, 0, innenSize.x, innenSize.y, kBgF );
             else
-                zRObj.füllRegion( 0, 0, innenGröße.x, innenGröße.y, kBgF );
+                zRObj.fillRegion( 0, 0, innenSize.x, innenSize.y, kBgF );
         }
         if( hatStyle( Style::KlickBild ) && kBgB )
         {
             if( hatStyle( Style::KlickAlpha ) )
-                zRObj.alphaBild( 0, 0, innenGröße.x, innenGröße.y, *kBgB );
+                zRObj.alphaBild( 0, 0, innenSize.x, innenSize.y, *kBgB );
             else
-                zRObj.drawBild( 0, 0, innenGröße.x, innenGröße.y, *kBgB );
+                zRObj.drawBild( 0, 0, innenSize.x, innenSize.y, *kBgB );
         }
         if( hatStyle( Style::KlickBuffer ) && kAf )
         {
-            kAf->setGröße( innenGröße.x, innenGröße.y );
+            kAf->setSize( innenSize.x, innenSize.y );
             kAf->render( zRObj );
         }
         int kbr = 0;
         if( hatStyle( Style::Selected ) && sKasten )
         {
             if( sTxt && schrift )
-                zRObj.drawBild( 0, ( gr.y / 2 - sKasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *sKasten );
+                zRObj.drawBild( 0, ( gr.y / 2 - sKasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHeight() / 2 ), innenSize.x, innenSize.y, *sKasten );
             else
-                zRObj.drawBild( gr.x / 2 - sKasten->getBreite() / 2, ( gr.y / 2 - sKasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *sKasten );
+                zRObj.drawBild( gr.x / 2 - sKasten->getBreite() / 2, ( gr.y / 2 - sKasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHeight() / 2 ), innenSize.x, innenSize.y, *sKasten );
             kbr = sKasten->getBreite();
             if( sTxt && schrift )
             {
-                schrift->setSchriftGröße( sGr );
-                schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHöhe( sTxt ) / 2 );
+                schrift->setSchriftSize( sGr );
+                schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHeight( sTxt ) / 2 );
                 schrift->renderText( sTxt, zRObj, sF );
             }
         }
         else if( kasten )
         {
             if( txt && schrift )
-                zRObj.drawBild( 0, ( gr.y / 2 - kasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *kasten );
+                zRObj.drawBild( 0, ( gr.y / 2 - kasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHeight() / 2 ), innenSize.x, innenSize.y, *kasten );
             else
-                zRObj.drawBild( gr.x / 2 - kasten->getBreite() / 2, ( gr.y / 2 - kasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *kasten );
+                zRObj.drawBild( gr.x / 2 - kasten->getBreite() / 2, ( gr.y / 2 - kasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHeight() / 2 ), innenSize.x, innenSize.y, *kasten );
             kbr = kasten->getBreite();
             if( txt && schrift )
             {
-                schrift->setSchriftGröße( sGr );
-                schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHöhe( txt ) / 2 );
+                schrift->setSchriftSize( sGr );
+                schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHeight( txt ) / 2 );
                 schrift->renderText( txt, zRObj, sF );
             }
         }
@@ -709,35 +709,35 @@ void KontrollKnopf::render( Bild &zRObj ) // zeichnet nach zRObj
         if( hatStyle( Style::SelectFarbe ) )
         {
             if( hatStyle( Style::SelectAlpha ) )
-                zRObj.alphaRegion( 0, 0, innenGröße.x, innenGröße.y, sBgF );
+                zRObj.alphaRegion( 0, 0, innenSize.x, innenSize.y, sBgF );
             else
-                zRObj.füllRegion( 0, 0, innenGröße.x, innenGröße.y, sBgF );
+                zRObj.fillRegion( 0, 0, innenSize.x, innenSize.y, sBgF );
         }
         if( hatStyle( Style::SelectBild ) && sBgB )
         {
             if( hatStyle( Style::SelectAlpha ) )
-                zRObj.alphaBild( 0, 0, innenGröße.x, innenGröße.y, *sBgB );
+                zRObj.alphaBild( 0, 0, innenSize.x, innenSize.y, *sBgB );
             else
-                zRObj.drawBild( 0, 0, innenGröße.x, innenGröße.y, *sBgB );
+                zRObj.drawBild( 0, 0, innenSize.x, innenSize.y, *sBgB );
         }
         if( hatStyle( Style::SelectBuffer ) && sAf )
         {
-            sAf->setGröße( innenGröße.x, innenGröße.y );
+            sAf->setSize( innenSize.x, innenSize.y );
             sAf->render( zRObj );
         }
         int kbr = 0;
         if( sKasten )
         {
             if( sTxt && schrift )
-                zRObj.drawBild( 0, ( gr.y / 2 - sKasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *sKasten );
+                zRObj.drawBild( 0, ( gr.y / 2 - sKasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHeight() / 2 ), innenSize.x, innenSize.y, *sKasten );
             else
-                zRObj.drawBild( gr.x / 2 - sKasten->getBreite() / 2, ( gr.y / 2 - sKasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *sKasten );
+                zRObj.drawBild( gr.x / 2 - sKasten->getBreite() / 2, ( gr.y / 2 - sKasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - sKasten->getHeight() / 2 ), innenSize.x, innenSize.y, *sKasten );
             kbr = sKasten->getBreite();
         }
         if( sTxt && schrift )
         {
-            schrift->setSchriftGröße( sGr );
-            schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHöhe( sTxt ) / 2 );
+            schrift->setSchriftSize( sGr );
+            schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHeight( sTxt ) / 2 );
             schrift->renderText( sTxt, zRObj, sF );
         }
     }
@@ -747,15 +747,15 @@ void KontrollKnopf::render( Bild &zRObj ) // zeichnet nach zRObj
         if( kasten )
         {
             if( txt && schrift )
-                zRObj.drawBild( 0, ( gr.y / 2 - kasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *kasten );
+                zRObj.drawBild( 0, ( gr.y / 2 - kasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHeight() / 2 ), innenSize.x, innenSize.y, *kasten );
             else
-                zRObj.drawBild( gr.x / 2 - kasten->getBreite() / 2, ( gr.y / 2 - kasten->getHöhe() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHöhe() / 2 ), innenGröße.x, innenGröße.y, *kasten );
+                zRObj.drawBild( gr.x / 2 - kasten->getBreite() / 2, ( gr.y / 2 - kasten->getHeight() / 2 ) < 0 ? 0 : ( gr.y / 2 - kasten->getHeight() / 2 ), innenSize.x, innenSize.y, *kasten );
             kbr = kasten->getBreite();
         }
         if( txt && schrift )
         {
-            schrift->setSchriftGröße( sGr );
-            schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHöhe( txt ) / 2 );
+            schrift->setSchriftSize( sGr );
+            schrift->setDrawPosition( kbr + 5, gr.y / 2 - schrift->getTextHeight( txt ) / 2 );
             schrift->renderText( txt, zRObj, sF );
         }
     }
@@ -799,7 +799,7 @@ int KontrollKnopf::getSFarbe() const // gibt die Schrift Farbe zur
     return sF;
 }
 
-int KontrollKnopf::getSGröße() const // gibt die Schrift Größe zurück
+int KontrollKnopf::getSSize() const // gibt die Schrift Größe zurück
 {
     return sGr;
 }

+ 8 - 8
Knopf.h

@@ -41,7 +41,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) Knopf();
         // Destruktor 
-        __declspec( dllexport ) ~Knopf();
+        __declspec( dllexport ) virtual ~Knopf();
         // 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 );
@@ -56,7 +56,7 @@ namespace Framework
         __declspec( dllexport ) void setKBZ( AlphaFeld *af );
         // 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 );
+        __declspec( dllexport ) void setKBStrength( 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 );
@@ -79,7 +79,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getKBStrength() 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.
@@ -136,7 +136,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) KontrollKnopf();
         // Destruktor 
-        __declspec( dllexport ) ~KontrollKnopf();
+        __declspec( dllexport ) virtual ~KontrollKnopf();
         // Setzt den Zeiger auf den Beschriftungs Text
         //  txt: Der Text
         __declspec( dllexport ) void setTextZ( Text *txt );
@@ -163,7 +163,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setSSize( 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 );
@@ -190,7 +190,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setSAFStrength( 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 );
@@ -199,7 +199,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setKAFStrength( 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
@@ -229,7 +229,7 @@ namespace Framework
         // 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;
+        __declspec( dllexport ) int getSSize() 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

+ 68 - 68
Liste.cpp

@@ -18,7 +18,7 @@ using namespace Framework;
 AuswahlListe::AuswahlListe()
     : ZeichnungHintergrund(),
     tfListe( 0 ),
-    einträge( 0 ),
+    entries( 0 ),
     auswahl( -1 ),
     ahFarbe( 0xFF000000 ),
     ahBild( 0 ),
@@ -71,12 +71,12 @@ void AuswahlListe::update() // aktualisiert die Auswahl Liste
     {
         rbr = rahmen->getRBreite();
         rahmen->setPosition( 0, 0 );
-        rahmen->setGröße( gr.x, gr.y );
+        rahmen->setSize( gr.x, gr.y );
     }
     if( hintergrundFeld )
     {
         hintergrundFeld->setPosition( rbr, rbr );
-        hintergrundFeld->setGröße( gr.x - rbr * 2, gr.y - rbr * 2 );
+        hintergrundFeld->setSize( gr.x - rbr * 2, gr.y - rbr * 2 );
     }
     if( hatStyleNicht( Style::MultiStyled ) && tfListe )
     {
@@ -85,7 +85,7 @@ void AuswahlListe::update() // aktualisiert die Auswahl Liste
         bool FeldHBild = hatStyle( Style::FeldHBild );
         bool FeldHAlpha = hatStyle( Style::FeldHAlpha );
         bool FeldBuffer = hatStyle( Style::FeldBuffer );
-        for( int i = 0; i < einträge; ++i )
+        for( int i = 0; i < entries; ++i )
         {
             TextFeld *tf = tfListe->z( i );
             tf->setStyle( TextFeld::Style::Rahmen, FeldRahmen );
@@ -99,7 +99,7 @@ void AuswahlListe::update() // aktualisiert die Auswahl Liste
     }
     if( hatStyle( Style::MultiStyled ) && tfListe && styles )
     {
-        for( int i = 0; i < einträge; ++i )
+        for( int i = 0; i < entries; ++i )
         {
             TextFeld *tf = tfListe->z( i );
             tf->setStyle( TextFeld::Style::Rahmen, hatMsStyle( i, Style::FeldRahmen ) );
@@ -120,7 +120,7 @@ void AuswahlListe::addEintrag( Text *txt ) // f
     tf->setLinienRahmenBreite( 1 );
     tf->setLinienRahmenFarbe( 0xFFFFFFFF );
     tf->setTextZ( txt );
-    tf->setGröße( 0, 20 );
+    tf->setSize( 0, 20 );
     addEintragZ( tf );
     rend = 1;
 }
@@ -138,8 +138,8 @@ void AuswahlListe::addEintragZ( TextFeld *tf )
         tfListe = new RCArray< TextFeld >();
     if( schrift && ( !tf->zSchrift() || hatStyleNicht( Style::MultiStyled ) ) )
         tf->setSchriftZ( schrift->getThis() );
-    tfListe->set( tf, einträge );
-    ++einträge;
+    tfListe->set( tf, entries );
+    ++entries;
     rend = 1;
 }
 
@@ -151,7 +151,7 @@ void AuswahlListe::addEintrag( int pos, Text *txt ) // f
     tf->setLinienRahmenBreite( 1 );
     tf->setLinienRahmenFarbe( 0xFFFFFFFF );
     tf->setTextZ( txt );
-    tf->setGröße( 0, 20 );
+    tf->setSize( 0, 20 );
     addEintragZ( pos, tf );
     rend = 1;
 }
@@ -170,7 +170,7 @@ void AuswahlListe::addEintragZ( int pos, TextFeld *tf )
     if( schrift && ( !tf->zSchrift() || hatStyleNicht( Style::MultiStyled ) ) )
         tf->setSchriftZ( schrift->getThis() );
     tfListe->add( tf, pos );
-    ++einträge;
+    ++entries;
     rend = 1;
 }
 
@@ -187,7 +187,7 @@ void AuswahlListe::setEintrag( int pos, Text *txt ) // 
         tf->setLinienRahmenFarbe( 0xFFFFFFFF );
         tf->setLinienRahmenBreite( 1 );
         tf->setTextZ( txt );
-        tf->setGröße( 0, 20 );
+        tf->setSize( 0, 20 );
         setEintragZ( pos, tf );
         rend = 1;
         return;
@@ -232,10 +232,10 @@ void AuswahlListe::tauschEintragPos( int vpos, int npos ) // taucht den Eintrag
     }
 }
 
-void AuswahlListe::löscheEintrag( int pos ) // löscht den Eintrag pos
+void AuswahlListe::removeEintrag( int pos ) // löscht den Eintrag pos
 {
-    tfListe->lösche( pos );
-    --einträge;
+    tfListe->remove( pos );
+    --entries;
     rend = 1;
 }
 
@@ -251,11 +251,11 @@ void AuswahlListe::setVScrollZuEintrag( int eintrag ) // scrollt zum Eintrag
 {
     if( vertikalScrollBar )
     {
-        if( eintrag < einträge )
-            eintrag = einträge - 1;
+        if( eintrag < entries )
+            eintrag = entries - 1;
         int y = 0;
         for( int i = 0; i < eintrag; i++ )
-            y += tfListe->z( i ) ? tfListe->z( i )->getHöhe() : 0;
+            y += tfListe->z( i ) ? tfListe->z( i )->getHeight() : 0;
         vertikalScrollBar->scroll( y );
     }
 }
@@ -265,8 +265,8 @@ void AuswahlListe::updateVScroll() // scrollt zur Curser Position oder nach Unte
     if( vertikalScrollBar )
     {
         int y = 0;
-        for( int i = 0; i < einträge; i++ )
-            y += tfListe->z( i ) ? tfListe->z( i )->getHöhe() : 0;
+        for( int i = 0; i < entries; i++ )
+            y += tfListe->z( i ) ? tfListe->z( i )->getHeight() : 0;
         vertikalScrollBar->update( y, gr.y - ( ( rahmen && hatStyle( TextFeld::Style::Rahmen ) ) ? rahmen->getRBreite() : 0 ) );
     }
 }
@@ -303,11 +303,11 @@ void AuswahlListe::setAAFZ( AlphaFeld *buffer ) // setzt einen Zeiger zum Auswah
     rend = 1;
 }
 
-void AuswahlListe::setAAFStärke( int st ) // setzt die Stärke des Auswahl Hintergrund Buffers (nur ohne MultiStyled)
+void AuswahlListe::setAAFStrength( int st ) // setzt die Stärke des Auswahl Hintergrund Buffers (nur ohne MultiStyled)
 {
     if( !aBuffer )
         aBuffer = new AlphaFeld();
-    aBuffer->setStärke( st );
+    aBuffer->setStrength( st );
     rend = 1;
 }
 
@@ -323,10 +323,10 @@ void AuswahlListe::setAHBild( Bild *bild ) // setzt das Auswahl Hintergrund Bild
 {
     if( !ahBild )
         ahBild = new Bild();
-    ahBild->neuBild( bild->getBreite(), bild->getHöhe(), 0 );
+    ahBild->neuBild( bild->getBreite(), bild->getHeight(), 0 );
     int *buff1 = ahBild->getBuffer();
     int *buff2 = bild->getBuffer();
-    for( int i = 0; i < bild->getBreite() * bild->getHöhe(); ++i )
+    for( int i = 0; i < bild->getBreite() * bild->getHeight(); ++i )
         buff1[ i ] = buff2[ i ];
     bild->release();
     rend = 1;
@@ -382,13 +382,13 @@ void AuswahlListe::setAAFZ( int pos, AlphaFeld *buffer ) // setzt einen Zeiger z
     rend = 1;
 }
 
-void AuswahlListe::setAAFStärke( int pos, int st ) // setzt die Stärke des Auswahl Hintergrund Buffers (nur mit MultiStyled)
+void AuswahlListe::setAAFStrength( int pos, int st ) // setzt die Stärke des Auswahl Hintergrund Buffers (nur mit MultiStyled)
 {
     if( !aBufferListe )
         aBufferListe = new RCArray< AlphaFeld >();
     if( !aBufferListe->z( pos ) )
         aBufferListe->set( new AlphaFeld(), pos );
-    aBufferListe->z( pos )->setStärke( st );
+    aBufferListe->z( pos )->setStrength( st );
     rend = 1;
 }
 
@@ -408,10 +408,10 @@ void AuswahlListe::setAHBild( int pos, Bild *bild ) // setzt das Auswahl Hinterg
         ahBildListe = new RCArray< Bild >();
     if( !ahBildListe->z( pos ) )
         ahBildListe->set( new Bild(), pos );
-    ahBildListe->z( pos )->neuBild( bild->getBreite(), bild->getHöhe(), 0 );
+    ahBildListe->z( pos )->neuBild( bild->getBreite(), bild->getHeight(), 0 );
     int *buff1 = ahBildListe->z( pos )->getBuffer();
     int *buff2 = bild->getBuffer();
-    for( int i = 0; i < bild->getBreite() * bild->getHöhe(); ++i )
+    for( int i = 0; i < bild->getBreite() * bild->getHeight(); ++i )
         buff1[ i ] = buff2[ i ];
     bild->release();
     rend = 1;
@@ -441,11 +441,11 @@ void AuswahlListe::setMsStyle( int pos, __int64 style ) // setzt den Style des E
     rend = 1;
 }
 
-void AuswahlListe::setMsStyle( int pos, __int64 style, bool add_löschen )
+void AuswahlListe::setMsStyle( int pos, __int64 style, bool add_remove )
 {
     if( !styles )
         styles = new Array< __int64 >();
-    if( add_löschen )
+    if( add_remove )
         styles->set( styles->get( pos ) | style, pos );
     else
         styles->set( styles->get( pos ) & ~style, pos );
@@ -460,7 +460,7 @@ void AuswahlListe::addMsStyle( int pos, __int64 style )
     rend = 1;
 }
 
-void AuswahlListe::löscheMsStyle( int pos, __int64 style )
+void AuswahlListe::removeMsStyle( int pos, __int64 style )
 {
     if( !styles )
         styles = new Array< __int64 >();
@@ -480,7 +480,7 @@ void AuswahlListe::doMausEreignis( MausEreignis &me )
         {
             mausIn = 0;
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -489,13 +489,13 @@ void AuswahlListe::doMausEreignis( MausEreignis &me )
         }
         removeFokus = 1;
     }
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt )
+    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves )
     {
         if( removeFokus && me.id == ME_RLinks )
-            löscheStyle( Style::Fokus );
+            removeStyle( Style::Fokus );
         return;
     }
-    if( !mausIn && me.id != ME_Verlässt )
+    if( !mausIn && me.id != ME_Leaves )
     {
         mausIn = 1;
         MausEreignis me2;
@@ -509,7 +509,7 @@ void AuswahlListe::doMausEreignis( MausEreignis &me )
     if( Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
     {
         if( removeFokus && me.id == ME_RLinks )
-            löscheStyle( Style::Fokus );
+            removeStyle( Style::Fokus );
         if( !me.verarbeitet && hatStyleNicht( Style::Fokus ) && me.id == ME_RLinks )
             addStyle( Style::Fokus );
         if( hatStyle( Style::VScroll ) && vertikalScrollBar )
@@ -517,7 +517,7 @@ void AuswahlListe::doMausEreignis( MausEreignis &me )
             int rbr = 0;
             if( rahmen && hatStyle( Style::Rahmen ) )
                 rbr = rahmen->getRBreite();
-            if( ( ( me.mx > gr.x - 15 - rbr ) || me.id == ME_UScroll || me.id == ME_DScroll ) && me.id != ME_Betritt && me.id != ME_Verlässt )
+            if( ( ( me.mx > gr.x - 15 - rbr ) || me.id == ME_UScroll || me.id == ME_DScroll ) && me.id != ME_Betritt && me.id != ME_Leaves )
             {
                 vertikalScrollBar->doMausMessage( gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me );
                 me.verarbeitet = 1;
@@ -539,7 +539,7 @@ void AuswahlListe::doMausEreignis( MausEreignis &me )
                     bool strg = TastenStand[ T_Strg ];
                     if( strg )
                     {
-                        setMsStyle( eintr, Style::Ausgewählt, hatMsStyleNicht( eintr, Style::Ausgewählt ) );
+                        setMsStyle( eintr, Style::Selected, hatMsStyleNicht( eintr, Style::Selected ) );
                         auswahl = eintr;
                     }
                     else if( shift && auswahl != -1 )
@@ -554,13 +554,13 @@ void AuswahlListe::doMausEreignis( MausEreignis &me )
                         }
                         for( int i = beg; i <= end; ++i )
                         {
-                            addMsStyle( i, Style::Ausgewählt );
+                            addMsStyle( i, Style::Selected );
                         }
                     }
                     else
                     {
                         deSelect();
-                        addMsStyle( eintr, Style::Ausgewählt );
+                        addMsStyle( eintr, Style::Selected );
                         auswahl = eintr;
                     }
                 }
@@ -591,8 +591,8 @@ void AuswahlListe::doTastaturEreignis( TastaturEreignis &te )
                 {
                 case T_Unten:
                     ++auswahl;
-                    if( auswahl > einträge )
-                        auswahl = einträge;
+                    if( auswahl > entries )
+                        auswahl = entries;
                     rend = 1;
                     break;
                 case T_Oben:
@@ -610,10 +610,10 @@ void AuswahlListe::doTastaturEreignis( TastaturEreignis &te )
                 case T_Unten:
                     deSelect();
                     ++auswahl;
-                    if( auswahl > einträge )
-                        auswahl = einträge;
+                    if( auswahl > entries )
+                        auswahl = entries;
                     if( auswahl >= 0 )
-                        addMsStyle( auswahl, Style::Ausgewählt );
+                        addMsStyle( auswahl, Style::Selected );
                     rend = 1;
                     break;
                 case T_Oben:
@@ -622,7 +622,7 @@ void AuswahlListe::doTastaturEreignis( TastaturEreignis &te )
                     if( auswahl < -1 )
                         auswahl = -1;
                     if( auswahl >= 0 )
-                        addMsStyle( auswahl, Style::Ausgewählt );
+                        addMsStyle( auswahl, Style::Selected );
                     rend = 1;
                     break;
                 }
@@ -641,10 +641,10 @@ void AuswahlListe::render( Bild &zRObj ) // zeichnet nach zRObj
 {
     if( !hatStyle( Style::Sichtbar ) )
         return;
-    löscheStyle( Style::HScroll );
-    __super::render( zRObj );
+    removeStyle( Style::HScroll );
+	ZeichnungHintergrund::render( zRObj );
     lockZeichnung();
-    if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
+    if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
     {
         unlockZeichnung();
         return;
@@ -654,23 +654,23 @@ void AuswahlListe::render( Bild &zRObj ) // zeichnet nach zRObj
         rbr = rahmen->getRBreite();
     if( tfListe )
     {
-        einträge = tfListe->getEintragAnzahl();
-        int maxHöhe = 0;
+        entries = tfListe->getEintragAnzahl();
+        int maxHeight = 0;
         int dx = 0, dy = 0;
         if( vertikalScrollBar && hatStyle( Style::VScroll ) )
             dy -= vertikalScrollBar->getScroll();
-        int mdy = innenGröße.y + rbr;
-        for( int i = 0; i < einträge; ++i )
+        int mdy = innenSize.y + rbr;
+        for( int i = 0; i < entries; ++i )
         {
             TextFeld *tf = tfListe->z( i );
-            if( dy + tf->getHöhe() > mdy && !( vertikalScrollBar && hatStyle( Style::VScroll ) ) )
+            if( dy + tf->getHeight() > mdy && !( vertikalScrollBar && hatStyle( Style::VScroll ) ) )
                 break;
             tf->setPosition( dx, dy );
-            tf->setGröße( innenGröße.x, tf->getHöhe() );
-            maxHöhe += tf->getHöhe();
+            tf->setSize( innenSize.x, tf->getHeight() );
+            maxHeight += tf->getHeight();
             bool selected = 0;
             if( hatStyle( Style::MultiSelect ) && styles )
-                selected = hatMsStyle( i, Style::Ausgewählt );
+                selected = hatMsStyle( i, Style::Selected );
             else
                 selected = auswahl == i;
             AlphaFeld *tmpBuffer = 0;
@@ -815,10 +815,10 @@ void AuswahlListe::render( Bild &zRObj ) // zeichnet nach zRObj
                     }
                 }
             }
-            dy += tf->getHöhe();
+            dy += tf->getHeight();
         }
         if( vertikalScrollBar )
-            vertikalScrollBar->getScrollData()->max = maxHöhe;
+            vertikalScrollBar->getScrollData()->max = maxHeight;
     }
     zRObj.releaseDrawOptions();
     unlockZeichnung();
@@ -828,13 +828,13 @@ int AuswahlListe::getKlickEintrag( int my )
 {
     if( !tfListe )
         return -1;
-    einträge = tfListe->getEintragAnzahl();
+    entries = tfListe->getEintragAnzahl();
     int y = 0;
     if( hatStyle( Style::VScroll ) && vertikalScrollBar )
         y -= vertikalScrollBar->getScroll();
-    for( int i = 0; i < einträge; ++i )
+    for( int i = 0; i < entries; ++i )
     {
-        y += tfListe->z( i )->getHöhe();
+        y += tfListe->z( i )->getHeight();
         if( y > my )
             return i;
     }
@@ -847,9 +847,9 @@ void AuswahlListe::setAuswahl( int ausw ) // setzt die Auswahl
         auswahl = ausw;
     else if( styles )
     {
-        for( int i = 0; i < einträge; ++i )
-            löscheMsStyle( i, Style::Ausgewählt );
-        addMsStyle( ausw, Style::Ausgewählt );
+        for( int i = 0; i < entries; ++i )
+            removeMsStyle( i, Style::Selected );
+        addMsStyle( ausw, Style::Selected );
     }
 }
 
@@ -859,9 +859,9 @@ void AuswahlListe::deSelect()
         auswahl = -1;
     else if( styles )
     {
-        for( int i = 0; i < einträge; ++i )
+        for( int i = 0; i < entries; ++i )
         {
-            löscheMsStyle( i, Style::Ausgewählt );
+            removeMsStyle( i, Style::Selected );
         }
     }
 }
@@ -869,7 +869,7 @@ void AuswahlListe::deSelect()
 // constant 
 int AuswahlListe::getEintragAnzahl() const // gibt die Anzahl der Einträge zurück
 {
-    return einträge;
+    return entries;
 }
 
 int AuswahlListe::getAuswahl() const // gibt den ersten ausgewählten Eintrag zurück
@@ -879,7 +879,7 @@ int AuswahlListe::getAuswahl() const // gibt den ersten ausgew
 
 int AuswahlListe::getEintragPos( Text *eintragText ) // gibt die Position des eintrages mit dem entsprechenden Textes zurück
 {
-    for( int i = 0; i < einträge; ++i )
+    for( int i = 0; i < entries; ++i )
     {
         if( tfListe->z( i )->zText()->istGleich( eintragText->getText() ) )
         {

+ 9 - 9
Liste.h

@@ -36,13 +36,13 @@ namespace Framework
             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 Selected = 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; // Vereint die Flags Sichtbar, Erlaubt, Rahmen, FeldHAlpha, FeldHintergrund, FeldRahmen, AuswahlBuffer, AuswahlRahmen
         };
     private:
         RCArray< TextFeld > *tfListe;
-        int einträge, auswahl;
+        int entries, auswahl;
         int ahFarbe;
         Bild *ahBild;
         AlphaFeld *aBuffer;
@@ -59,7 +59,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) AuswahlListe();
         // Destruktor 
-        __declspec( dllexport ) ~AuswahlListe();
+        __declspec( dllexport ) virtual ~AuswahlListe();
         // Aktualisiert die Styles, größe und Position der Einträge
         __declspec( dllexport ) void update();
         // Fügt einen Eintrag hinzu
@@ -101,7 +101,7 @@ namespace Framework
         __declspec( dllexport ) void tauschEintragPos( int vpos, int npos );
         // Löscht einen Eintrag
         // pos: Der Index des Eintrags
-        __declspec( dllexport ) void löscheEintrag( int pos );
+        __declspec( dllexport ) void removeEintrag( int pos );
         // Setzt die verwendete Schrift
         //  schrift: Die Schrift
         __declspec( dllexport ) void setSchriftZ( Schrift *schrift );
@@ -124,7 +124,7 @@ namespace Framework
         __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 );
+        __declspec( dllexport ) void setAAFStrength( 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 );
@@ -156,7 +156,7 @@ namespace Framework
         // 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 );
+        __declspec( dllexport ) void setAAFStrength( 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
@@ -180,8 +180,8 @@ namespace Framework
         // Ä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 );
+        //  add_remove: 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_remove );
         // 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
@@ -189,7 +189,7 @@ namespace Framework
         // 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 );
+        __declspec( dllexport ) void removeMsStyle( int pos, __int64 style );
         // Verarbeitet Tastatur Nachrichten
         //  me: Das Ereignis, was durch die Tastatureingabe ausgelößt wurde
         __declspec( dllexport ) void doMausEreignis( MausEreignis &me ) override;

+ 14 - 14
M2DVorschau.cpp

@@ -59,7 +59,7 @@ void M2DVorschau::doMausEreignis( MausEreignis &me )
             toolTip->setMausIn( 0 );
         return;
     }
-    if( me.verarbeitet || ( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt ) )
+    if( me.verarbeitet || ( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves ) )
     {
         if( mausIn )
         {
@@ -67,7 +67,7 @@ void M2DVorschau::doMausEreignis( MausEreignis &me )
             if( toolTip )
                 toolTip->setMausIn( 0 );
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -75,7 +75,7 @@ void M2DVorschau::doMausEreignis( MausEreignis &me )
         }
         return;
     }
-    if( !mausIn && me.id != ME_Verlässt )
+    if( !mausIn && me.id != ME_Leaves )
     {
         mausIn = 1;
         if( toolTip )
@@ -93,11 +93,11 @@ void M2DVorschau::doMausEreignis( MausEreignis &me )
         if( hatStyle( Style::UsrScale ) )
         {
             if( mdl && me.id == ME_UScroll )
-                mdl->addGröße( 0.01f );
+                mdl->addSize( 0.01f );
             if( mdl && me.id == ME_DScroll )
-                mdl->addGröße( -0.01f );
+                mdl->addSize( -0.01f );
         }
-        if( me.id == ME_RLinks || me.id == ME_RRechts || me.id == ME_Verlässt )
+        if( me.id == ME_RLinks || me.id == ME_RRechts || me.id == ME_Leaves )
         {
             mx = -1;
             my = -1;
@@ -111,13 +111,13 @@ void M2DVorschau::doMausEreignis( MausEreignis &me )
                 if( getMausStand( M_Rechts ) && hatStyle( Style::UsrRot ) )
                 {
                     if( me.mx > gr.x / 2 )
-                        mdl->addDrehung( 0.01f * ( me.my - my ) );
+                        mdl->addDrehung( 0.01f * (float)( me.my - my ) );
                     else
-                        mdl->addDrehung( -0.01f * ( me.my - my ) );
+                        mdl->addDrehung( -0.01f * (float)( me.my - my ) );
                     if( me.my > gr.y / 2 )
-                        mdl->addDrehung( -0.01f * ( me.mx - mx ) );
+                        mdl->addDrehung( -0.01f * (float)( me.mx - mx ) );
                     else
-                        mdl->addDrehung( 0.01f * ( me.mx - mx ) );
+                        mdl->addDrehung( 0.01f * (float)( me.mx - mx ) );
                 }
                 mx = me.mx;
                 my = me.my;
@@ -139,16 +139,16 @@ bool M2DVorschau::tick( double tv )
     rend |= mdl ? mdl->tick( tv ) : 0;
     rend |= af ? af->tick( tv ) : 0;
     rend |= ram ? ram->tick( tv ) : 0;
-    return __super::tick( tv );
+    return ZeichnungHintergrund::tick( tv );
 }
 
 void M2DVorschau::render( Bild &rb )
 {
-    löscheStyle( Style::VScroll | Style::HScroll );
+    removeStyle( Style::VScroll | Style::HScroll );
     if( hatStyleNicht( Style::Sichtbar ) )
         return;
-    __super::render( rb );
-    if( !rb.setDrawOptions( innenPosition, innenGröße ) )
+	ZeichnungHintergrund::render( rb );
+    if( !rb.setDrawOptions( innenPosition, innenSize ) )
         return;
     if( mdl )
     {

+ 1 - 1
M2DVorschau.h

@@ -35,7 +35,7 @@ namespace Framework
         // Konstruktor
         __declspec( dllexport ) M2DVorschau();
         // Destruktor
-        __declspec( dllexport ) ~M2DVorschau();
+        __declspec( dllexport ) virtual ~M2DVorschau();
         // Setzt einen Zeiger auf das Model, das angezeigt werden soll
         //  mdl: Das Model
         __declspec( dllexport ) void setModel2DZ( Model2D *mdl );

+ 299 - 299
M2Datei.cpp

@@ -9,373 +9,373 @@ using namespace Framework;
 // Konstruktor
 M2Datei::M2Datei()
 {
-    pfad = new Text();
-    modelName = new RCArray< Text >();
-    modelPos = new Array< __int64 >();
-    ref = 1;
+	pfad = new Text();
+	modelName = new RCArray< Text >();
+	modelPos = new Array< __int64 >();
+	ref = 1;
 }
 
 M2Datei::M2Datei( const char *pfad )
 {
-    this->pfad = new Text( pfad );
-    modelName = new RCArray< Text >();
-    modelPos = new Array< __int64 >();
-    ref = 1;
+	this->pfad = new Text( pfad );
+	modelName = new RCArray< Text >();
+	modelPos = new Array< __int64 >();
+	ref = 1;
 }
 
 M2Datei::M2Datei( Text *pfad )
 {
-    this->pfad = pfad;
-    modelName = new RCArray< Text >();
-    modelPos = new Array< __int64 >();
-    ref = 1;
+	this->pfad = pfad;
+	modelName = new RCArray< Text >();
+	modelPos = new Array< __int64 >();
+	ref = 1;
 }
 
 // Destruktor
 M2Datei::~M2Datei()
 {
-    pfad->release();
-    modelName->release();
-    modelPos->release();
+	pfad->release();
+	modelName->release();
+	modelPos->release();
 }
 
 // nicht constant
 void M2Datei::setPfad( const char *pfad )
 {
-    this->pfad->setText( pfad );
+	this->pfad->setText( pfad );
 }
 
 void M2Datei::setPfadZ( Text *pfad )
 {
-    if( this->pfad )
-        this->pfad->release();
-    this->pfad = pfad;
+	if( this->pfad )
+		this->pfad->release();
+	this->pfad = pfad;
 }
 
 void M2Datei::leseDaten()
 {
-    Datei d;
-    d.setDatei( pfad->getText() );
-    d.öffnen( Datei::Style::lesen );
-    char anz = 0;
-    d.lese( &anz, 1 );
-    modelName->leeren();
-    modelPos->leeren();
-    for( int i = 0; i < anz; i++ )
-    {
-        char län = 0;
-        d.lese( &län, 1 );
-        char *txt = new char[ län + 1 ];
-        d.lese( txt, län );
-        txt[ (int)län ] = 0;
-        modelName->set( new Text( txt ), i );
-        delete[] txt;
-        __int64 pos = 0;
-        d.lese( (char*)&pos, 8 );
-        modelPos->set( pos, i );
-    }
-    d.schließen();
+	Datei d;
+	d.setDatei( pfad->getText() );
+	d.open( Datei::Style::lesen );
+	char anz = 0;
+	d.lese( &anz, 1 );
+	modelName->leeren();
+	modelPos->leeren();
+	for( int i = 0; i < anz; i++ )
+	{
+		char len = 0;
+		d.lese( &len, 1 );
+		char *txt = new char[ len + 1 ];
+		d.lese( txt, len );
+		txt[ (int)len ] = 0;
+		modelName->set( new Text( txt ), i );
+		delete[] txt;
+		__int64 pos = 0;
+		d.lese( (char*)&pos, 8 );
+		modelPos->set( pos, i );
+	}
+	d.close();
 }
 
 bool M2Datei::saveModel( Model2DData *zMdr, Text *name )
 {
-    bool ret = saveModel( zMdr, name->getText() );
-    name->release();
-    return ret;
+	bool ret = saveModel( zMdr, name->getText() );
+	name->release();
+	return ret;
 }
 
 bool M2Datei::saveModel( Model2DData *zMdr, const char *name )
 {
-    int anz = modelName->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-    {
-        if( modelName->z( i )->istGleich( name ) )
-        {
-            if( !löscheModel( name ) )
-                return 0;
-            break;
-        }
-    }
-    anz = modelName->getEintragAnzahl();
-    Datei d;
-    d.setDatei( pfad->getText() );
-    d.öffnen( Datei::Style::lesen );
-    Datei neu;
-    neu.setDatei( pfad->getText() );
-    neu.zPfad()->anhängen( "0" );
-    while( neu.existiert() )
-        neu.zPfad()->anhängen( "0" );
-    if( !neu.öffnen( Datei::Style::schreiben ) )
-    {
-        if( d.istOffen() )
-            d.schließen();
-        return 0;
-    }
-    modelName->add( new Text( name ) );
-    int offs = textLänge( name ) + 9;
-    for( int i = 0; i < anz; i++ )
-        modelPos->set( modelPos->get( i ) + offs, i );
-    if( d.getGröße() < 0 )
-        modelPos->add( offs + 1 );
-    else
-        modelPos->add( d.getGröße() + offs );
-    anz++;
-    char tmp = (char)anz;
-    neu.schreibe( &tmp, 1 );
-    for( int i = 0; i < anz; i++ )
-    {
-        char län = (char)modelName->z( i )->getLänge();
-        neu.schreibe( &län, 1 );
-        neu.schreibe( modelName->z( i )->getText(), län );
-        __int64 pos = modelPos->get( i );
-        neu.schreibe( (char*)&pos, 8 );
-    }
-    if( d.existiert() )
-    {
-        d.setLPosition( modelPos->get( 0 ) - offs, 0 );
-        __int64 dl = d.getGröße() - d.getLPosition();
-        char bytes[ 2048 ];
-        while( dl )
-        {
-            int l = dl > 2048 ? 2048 : (int)dl;
-            d.lese( bytes, l );
-            neu.schreibe( bytes, l );
-            dl -= l;
-        }
-    }
-    d.schließen();
-    char pAnz = zMdr->polygons->getEintragAnzahl();
-    neu.schreibe( &pAnz, 1 );
-    for( int p = 0; p < pAnz; p++ )
-    {
-        int vAnz = zMdr->polygons->get( p ).vertex->getEintragAnzahl();
-        char textur = 1;
-        for( int i = 0; i < vAnz; i++ )
-            textur &= (char)zMdr->polygons->get( p ).tKordinaten->hat( i );
-        neu.schreibe( &textur, 1 );
-        neu.schreibe( (char*)&vAnz, 4 );
-        for( int i = 0; i < vAnz; i++ )
-        {
-            float v = zMdr->polygons->get( p ).vertex->get( i ).x;
-            neu.schreibe( (char*)&v, 4 );
-            v = zMdr->polygons->get( p ).vertex->get( i ).y;
-            neu.schreibe( (char*)&v, 4 );
-            if( textur )
-            {
-                int t = zMdr->polygons->get( p ).tKordinaten->get( i ).x;
-                neu.schreibe( (char*)&t, 4 );
-                t = zMdr->polygons->get( p ).tKordinaten->get( i ).y;
-                neu.schreibe( (char*)&t, 4 );
-            }
-        }
-    }
-    d.löschen();
-    neu.schließen();
-    neu.umbenennen( pfad->getText() );
-    leseDaten();
-    return 1;
+	int anz = modelName->getEintragAnzahl();
+	for( int i = 0; i < anz; i++ )
+	{
+		if( modelName->z( i )->istGleich( name ) )
+		{
+			if( !removeModel( name ) )
+				return 0;
+			break;
+		}
+	}
+	anz = modelName->getEintragAnzahl();
+	Datei d;
+	d.setDatei( pfad->getText() );
+	d.open( Datei::Style::lesen );
+	Datei neu;
+	neu.setDatei( pfad->getText() );
+	neu.zPfad()->append( "0" );
+	while( neu.existiert() )
+		neu.zPfad()->append( "0" );
+	if( !neu.open( Datei::Style::schreiben ) )
+	{
+		if( d.istOffen() )
+			d.close();
+		return 0;
+	}
+	modelName->add( new Text( name ) );
+	int offs = textLength( name ) + 9;
+	for( int i = 0; i < anz; i++ )
+		modelPos->set( modelPos->get( i ) + offs, i );
+	if( d.getSize() < 0 )
+		modelPos->add( offs + 1 );
+	else
+		modelPos->add( d.getSize() + offs );
+	anz++;
+	char tmp = (char)anz;
+	neu.schreibe( &tmp, 1 );
+	for( int i = 0; i < anz; i++ )
+	{
+		char len = (char)modelName->z( i )->getLength();
+		neu.schreibe( &len, 1 );
+		neu.schreibe( modelName->z( i )->getText(), len );
+		__int64 pos = modelPos->get( i );
+		neu.schreibe( (char*)&pos, 8 );
+	}
+	if( d.existiert() )
+	{
+		d.setLPosition( modelPos->get( 0 ) - offs, 0 );
+		__int64 dl = d.getSize() - d.getLPosition();
+		char bytes[ 2048 ];
+		while( dl )
+		{
+			int l = dl > 2048 ? 2048 : (int)dl;
+			d.lese( bytes, l );
+			neu.schreibe( bytes, l );
+			dl -= l;
+		}
+	}
+	d.close();
+	char pAnz = (char)zMdr->polygons->getEintragAnzahl();
+	neu.schreibe( &pAnz, 1 );
+	for( int p = 0; p < pAnz; p++ )
+	{
+		int vAnz = zMdr->polygons->get( p ).vertex->getEintragAnzahl();
+		char textur = 1;
+		for( int i = 0; i < vAnz; i++ )
+			textur = (char)( textur & (char)zMdr->polygons->get( p ).tKordinaten->hat( i ) );
+		neu.schreibe( &textur, 1 );
+		neu.schreibe( (char*)&vAnz, 4 );
+		for( int i = 0; i < vAnz; i++ )
+		{
+			float v = zMdr->polygons->get( p ).vertex->get( i ).x;
+			neu.schreibe( (char*)&v, 4 );
+			v = zMdr->polygons->get( p ).vertex->get( i ).y;
+			neu.schreibe( (char*)&v, 4 );
+			if( textur )
+			{
+				int t = zMdr->polygons->get( p ).tKordinaten->get( i ).x;
+				neu.schreibe( (char*)&t, 4 );
+				t = zMdr->polygons->get( p ).tKordinaten->get( i ).y;
+				neu.schreibe( (char*)&t, 4 );
+			}
+		}
+	}
+	d.remove();
+	neu.close();
+	neu.umbenennen( pfad->getText() );
+	leseDaten();
+	return 1;
 }
 
-bool M2Datei::löscheModel( Text *name )
+bool M2Datei::removeModel( Text *name )
 {
-    bool ret = löscheModel( name->getText() );
-    name->release();
-    return ret;
+	bool ret = removeModel( name->getText() );
+	name->release();
+	return ret;
 }
 
-bool M2Datei::löscheModel( const char *name )
+bool M2Datei::removeModel( const char *name )
 {
-    int anz = modelName->getEintragAnzahl();
-    int p = -1;
-    for( int i = 0; i < anz; i++ )
-    {
-        if( modelName->z( i )->istGleich( name ) )
-        {
-            p = i;
-            break;
-        }
-    }
-    if( p < 0 )
-        return 0;
-    Datei d;
-    d.setDatei( pfad->getText() );
-    if( !d.öffnen( Datei::Style::lesen ) )
-        return 0;
-    Datei neu;
-    neu.setDatei( pfad->getText() );
-    neu.zPfad()->anhängen( "0" );
-    while( neu.existiert() )
-        neu.zPfad()->anhängen( "0" );
-    if( !neu.öffnen( Datei::Style::schreiben ) )
-    {
-        if( d.istOffen() )
-            d.schließen();
-        return 0;
-    }
-    char nAnz = (char)anz - 1;
-    neu.schreibe( &nAnz, 1 );
-    int offs = modelName->z( p )->getLänge() + 9;
-    __int64 startP = 0, endP = 0, start2P = 0;
-    for( int i = 0; i < anz; i++ )
-    {
-        char nLän = (char)modelName->z( i )->getLänge();
-        char *n = modelName->z( i )->getText();
-        __int64 pos = modelPos->get( i );
-        if( !startP )
-            startP = pos;
-        if( i == p + 1 )
-            start2P = pos;
-        if( i == p )
-        {
-            if( !endP )
-                endP = pos;
-            if( i < anz - 1 )
-                offs += (int)( modelPos->get( i + 1 ) - pos );
-        }
-        if( i != p )
-        {
-            pos -= offs;
-            neu.schreibe( &nLän, 1 );
-            neu.schreibe( n, nLän );
-            neu.schreibe( (char*)&pos, 8 );
-        }
-    }
-    if( d.istOffen() )
-    {
-        d.setLPosition( startP, 0 );
-        __int64 bLän = endP - startP;
-        char bytes[ 2048 ];
-        while( bLän > 0 )
-        {
-            int l = 2048 > bLän ? (int)bLän : 2048;
-            d.lese( bytes, l );
-            neu.schreibe( bytes, l );
-            bLän -= l;
-        }
-        if( start2P )
-        {
-            d.setLPosition( start2P, 0 );
-            bLän = d.getGröße() - start2P;
-            while( bLän > 0 )
-            {
-                int l = 2048 > bLän ? (int)bLän : 2048;
-                d.lese( bytes, l );
-                neu.schreibe( bytes, l );
-                bLän -= l;
-            }
-        }
-        d.schließen();
-    }
-    d.löschen();
-    neu.schließen();
-    neu.umbenennen( pfad->getText() );
-    leseDaten();
-    return 1;
+	int anz = modelName->getEintragAnzahl();
+	int p = -1;
+	for( int i = 0; i < anz; i++ )
+	{
+		if( modelName->z( i )->istGleich( name ) )
+		{
+			p = i;
+			break;
+		}
+	}
+	if( p < 0 )
+		return 0;
+	Datei d;
+	d.setDatei( pfad->getText() );
+	if( !d.open( Datei::Style::lesen ) )
+		return 0;
+	Datei neu;
+	neu.setDatei( pfad->getText() );
+	neu.zPfad()->append( "0" );
+	while( neu.existiert() )
+		neu.zPfad()->append( "0" );
+	if( !neu.open( Datei::Style::schreiben ) )
+	{
+		if( d.istOffen() )
+			d.close();
+		return 0;
+	}
+	char nAnz = (char)( anz - 1 );
+	neu.schreibe( &nAnz, 1 );
+	int offs = modelName->z( p )->getLength() + 9;
+	__int64 startP = 0, endP = 0, start2P = 0;
+	for( int i = 0; i < anz; i++ )
+	{
+		char nLen = (char)modelName->z( i )->getLength();
+		char *n = modelName->z( i )->getText();
+		__int64 pos = modelPos->get( i );
+		if( !startP )
+			startP = pos;
+		if( i == p + 1 )
+			start2P = pos;
+		if( i == p )
+		{
+			if( !endP )
+				endP = pos;
+			if( i < anz - 1 )
+				offs += (int)( modelPos->get( i + 1 ) - pos );
+		}
+		if( i != p )
+		{
+			pos -= offs;
+			neu.schreibe( &nLen, 1 );
+			neu.schreibe( n, nLen );
+			neu.schreibe( (char*)&pos, 8 );
+		}
+	}
+	if( d.istOffen() )
+	{
+		d.setLPosition( startP, 0 );
+		__int64 bLen = endP - startP;
+		char bytes[ 2048 ];
+		while( bLen > 0 )
+		{
+			int l = 2048 > bLen ? (int)bLen : 2048;
+			d.lese( bytes, l );
+			neu.schreibe( bytes, l );
+			bLen -= l;
+		}
+		if( start2P )
+		{
+			d.setLPosition( start2P, 0 );
+			bLen = d.getSize() - start2P;
+			while( bLen > 0 )
+			{
+				int l = 2048 > bLen ? (int)bLen : 2048;
+				d.lese( bytes, l );
+				neu.schreibe( bytes, l );
+				bLen -= l;
+			}
+		}
+		d.close();
+	}
+	d.remove();
+	neu.close();
+	neu.umbenennen( pfad->getText() );
+	leseDaten();
+	return 1;
 }
 
 // constant
 Model2DData *M2Datei::ladeModel( Text *name ) const
 {
-    Model2DData *ret = ladeModel( name->getText() );
-    name->release();
-    return ret;
+	Model2DData *ret = ladeModel( name->getText() );
+	name->release();
+	return ret;
 }
 
 Model2DData *M2Datei::ladeModel( const char *name ) const
 {
-    Datei d;
-    d.setDatei( pfad->getText() );
-    if( !d.öffnen( Datei::Style::lesen ) )
-        return 0;
-    int anz = modelName->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-    {
-        if( modelName->z( i )->istGleich( name ) )
-        {
-            d.setLPosition( modelPos->get( i ), 0 );
-            break;
-        }
-    }
-    if( !d.getLPosition() )
-    {
-        d.schließen();
-        return 0;
-    }
-    char pAnz = 0;
-    d.lese( &pAnz, 1 );
-    Array< Polygon2D > *polygons = new Array< Polygon2D >();
-    for( int p = 0; p < pAnz; p++ )
-    {
-        char textur = 0;
-        d.lese( &textur, 1 );
-        int vAnz = 0;
-        d.lese( (char*)&vAnz, 4 );
-        if( polygons->hat( p ) )
-        {
-            if( polygons->get( p ).vertex )
-                polygons->get( p ).vertex->release();
-            if( polygons->get( p ).tKordinaten )
-                polygons->get( p ).tKordinaten->release();
-        }
-        Polygon2D polygon;
-        polygon.vertex = new Array< Vertex >();
-        if( textur )
-            polygon.tKordinaten = new Array< Punkt >();
-        else
-            polygon.tKordinaten = 0;
-        for( int v = 0; v < vAnz; v++ )
-        {
-            Vertex p;
-            d.lese( (char*)&p.x, 4 );
-            d.lese( (char*)&p.y, 4 );
-            polygon.vertex->add( p );
-            if( textur )
-            {
-                Punkt tp;
-                d.lese( (char*)&tp.x, 4 );
-                d.lese( (char*)&tp.y, 4 );
-                polygon.tKordinaten->add( tp );
-            }
-        }
-        polygons->add( polygon );
-    }
-    d.schließen();
-    Model2DData *ret = new Model2DData();
-    ret->erstelleModell( polygons );
-    return ret;
+	Datei d;
+	d.setDatei( pfad->getText() );
+	if( !d.open( Datei::Style::lesen ) )
+		return 0;
+	int anz = modelName->getEintragAnzahl();
+	for( int i = 0; i < anz; i++ )
+	{
+		if( modelName->z( i )->istGleich( name ) )
+		{
+			d.setLPosition( modelPos->get( i ), 0 );
+			break;
+		}
+	}
+	if( !d.getLPosition() )
+	{
+		d.close();
+		return 0;
+	}
+	char pAnz = 0;
+	d.lese( &pAnz, 1 );
+	Array< Polygon2D > *polygons = new Array< Polygon2D >();
+	for( int p = 0; p < pAnz; p++ )
+	{
+		char textur = 0;
+		d.lese( &textur, 1 );
+		int vAnz = 0;
+		d.lese( (char*)&vAnz, 4 );
+		if( polygons->hat( p ) )
+		{
+			if( polygons->get( p ).vertex )
+				polygons->get( p ).vertex->release();
+			if( polygons->get( p ).tKordinaten )
+				polygons->get( p ).tKordinaten->release();
+		}
+		Polygon2D polygon;
+		polygon.vertex = new Array< Vertex >();
+		if( textur )
+			polygon.tKordinaten = new Array< Punkt >();
+		else
+			polygon.tKordinaten = 0;
+		for( int v = 0; v < vAnz; v++ )
+		{
+			Vertex p;
+			d.lese( (char*)&p.x, 4 );
+			d.lese( (char*)&p.y, 4 );
+			polygon.vertex->add( p );
+			if( textur )
+			{
+				Punkt tp;
+				d.lese( (char*)&tp.x, 4 );
+				d.lese( (char*)&tp.y, 4 );
+				polygon.tKordinaten->add( tp );
+			}
+		}
+		polygons->add( polygon );
+	}
+	d.close();
+	Model2DData *ret = new Model2DData();
+	ret->erstelleModell( polygons );
+	return ret;
 }
 
 bool M2Datei::hatModel( const char *name ) const
 {
-    int anz = modelName->getEintragAnzahl();
-    for( int i = 0; i < anz; i++ )
-    {
-        if( modelName->z( i )->istGleich( name ) )
-            return 1;
-    }
-    return 0;
+	int anz = modelName->getEintragAnzahl();
+	for( int i = 0; i < anz; i++ )
+	{
+		if( modelName->z( i )->istGleich( name ) )
+			return 1;
+	}
+	return 0;
 }
 
 int M2Datei::getModelAnzahl() const
 {
-    return modelName->getEintragAnzahl();
+	return modelName->getEintragAnzahl();
 }
 
 Text *M2Datei::zModelName( int i ) const
 {
-    return modelName->z( i );
+	return modelName->z( i );
 }
 
 // Reference Counting
 M2Datei *M2Datei::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 M2Datei *M2Datei::release()
 {
-    if( !--ref )
-        delete this;
-    return 0;
+	if( !--ref )
+		delete this;
+	return 0;
 }

+ 2 - 2
M2Datei.h

@@ -50,11 +50,11 @@ namespace Framework
         // Löscht ein 2D Modell aus der Datei
         //  name: Der Name des Modells
         //  return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
-        __declspec( dllexport ) bool löscheModel( Text *name );
+        __declspec( dllexport ) bool removeModel( Text *name );
         // Löscht ein 2D Modell aus der Datei
         //  name: Der Name des Modells
         //  return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
-        __declspec( dllexport ) bool löscheModel( const char *name );
+        __declspec( dllexport ) bool removeModel( const char *name );
         // Lähd ein 2D Modell aus der Datei
         //  name: Der name des zu ladenden Modells
         //  return: Die geladenen Daten

+ 26 - 26
M3Datei.cpp

@@ -59,24 +59,24 @@ void M3Datei::leseDaten()
     modelPos = new Array< __int64 >();
     Datei d;
     d.setDatei( pfad );
-    if( !d.öffnen( Datei::Style::lesen ) )
+    if( !d.open( Datei::Style::lesen ) )
         return;
     unsigned char anz = 0;
     d.lese( (char*)&anz, 1 );
     for( int i = 0; i < anz; i++ )
     {
-        char län = 0;
-        d.lese( &län, 1 );
-        char *n = new char[ län + 1 ];
-        n[ n ] = 0;
-        d.lese( n, län );
+        char len = 0;
+        d.lese( &len, 1 );
+        char *n = new char[ len + 1 ];
+        n[ (int)len ] = 0;
+        d.lese( n, len );
         modelName->add( new Text( n ) );
         delete[] n;
         __int64 p = 0;
         d.lese( (char*)&p, 8 );
         modelPos->add( p );
     }
-    d.schließen();
+    d.close();
 }
 
 // Speichert 3D Modell Daten in der Datei
@@ -96,50 +96,50 @@ bool M3Datei::saveModel( Model3DData *zMdr, Text *name )
 //  return: 1, falls das Modell gespeichert wurde. 0, falls ein fehler beim speichern auftrat
 bool M3Datei::saveModel( Model3DData *zMdr, const char *name )
 {
-    if( !modelName || !pfad.getLänge() )
+    if( !modelName || !pfad.getLength() )
         return 0;
-    if( hatModel( name ) && !löscheModel( name ) )
+    if( hatModel( name ) && !removeModel( name ) )
         return 0;
     int anz = modelName->getEintragAnzahl();
     anz = modelName->getEintragAnzahl();
     Datei d;
     d.setDatei( pfad );
-    if( !d.öffnen( Datei::Style::lesen ) )
+    if( !d.open( Datei::Style::lesen ) )
         return 0;
     Datei neu;
     neu.setDatei( pfad );
-    neu.zPfad()->anhängen( "0" );
+    neu.zPfad()->append( "0" );
     while( neu.existiert() )
-        neu.zPfad()->anhängen( "0" );
-    if( !neu.öffnen( Datei::Style::schreiben ) )
+        neu.zPfad()->append( "0" );
+    if( !neu.open( Datei::Style::schreiben ) )
     {
         if( d.istOffen() )
-            d.schließen();
+            d.close();
         return 0;
     }
     modelName->add( new Text( name ) );
-    int offs = textLänge( name ) + 9;
+    int offs = textLength( name ) + 9;
     for( int i = 0; i < anz; i++ )
         modelPos->set( modelPos->get( i ) + offs, i );
-    if( d.getGröße() < 0 )
+    if( d.getSize() < 0 )
         modelPos->add( offs + 1 );
     else
-        modelPos->add( d.getGröße() + offs );
+        modelPos->add( d.getSize() + offs );
     anz++;
     char tmp = (char)anz;
     neu.schreibe( &tmp, 1 );
     for( int i = 0; i < anz; i++ )
     {
-        char län = (char)modelName->z( i )->getLänge();
-        neu.schreibe( &län, 1 );
-        neu.schreibe( modelName->z( i )->getText(), län );
+        char len = (char)modelName->z( i )->getLength();
+        neu.schreibe( &len, 1 );
+        neu.schreibe( modelName->z( i )->getText(), len );
         __int64 pos = modelPos->get( i );
         neu.schreibe( (char*)&pos, 8 );
     }
     if( d.existiert() )
     {
         d.setLPosition( modelPos->get( 0 ) - offs, 0 );
-        __int64 dl = d.getGröße() - d.getLPosition();
+        __int64 dl = d.getSize() - d.getLPosition();
         char bytes[ 2048 ];
         while( dl )
         {
@@ -149,7 +149,7 @@ bool M3Datei::saveModel( Model3DData *zMdr, const char *name )
             dl -= l;
         }
     }
-    d.schließen();
+    d.close();
     /*char pAnz = zMdr->polygons->getEintragAnzahl();
     neu.schreibe( &pAnz, 1 );
     for( int p = 0; p < pAnz; p++ )
@@ -175,8 +175,8 @@ bool M3Datei::saveModel( Model3DData *zMdr, const char *name )
             }
         }
     }*/
-    d.löschen();
-    neu.schließen();
+    d.remove();
+    neu.close();
     neu.umbenennen( pfad );
     leseDaten();
     return 1;
@@ -185,7 +185,7 @@ bool M3Datei::saveModel( Model3DData *zMdr, const char *name )
 // Löscht ein 3D Modell aus der Datei
 //  name: Der Name des Modells
 //  return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
-bool M3Datei::löscheModel( Text *name )
+bool M3Datei::removeModel( Text *name )
 {
     return 0;
 }
@@ -193,7 +193,7 @@ bool M3Datei::l
 // Löscht ein 3D Modell aus der Datei
 //  name: Der Name des Modells
 //  return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
-bool M3Datei::löscheModel( const char *name )
+bool M3Datei::removeModel( const char *name )
 {
     return 0;
 }

+ 2 - 2
M3Datei.h

@@ -45,11 +45,11 @@ namespace Framework
         // Löscht ein 3D Modell aus der Datei
         //  name: Der Name des Modells
         //  return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
-        __declspec( dllexport ) bool löscheModel( Text *name );
+        __declspec( dllexport ) bool removeModel( Text *name );
         // Löscht ein 3D Modell aus der Datei
         //  name: Der Name des Modells
         //  return: 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht gefunden wurde, oder ein fehler beim speichern auftrat
-        __declspec( dllexport ) bool löscheModel( const char *name );
+        __declspec( dllexport ) bool removeModel( const char *name );
         // Lähd ein 3D Modell aus der Datei
         //  name: Der name des zu ladenden Modells
         //  return: Die geladenen Daten

+ 4 - 4
Mat4.h

@@ -263,14 +263,14 @@ namespace Framework
             return t;
         }
         // Erzeugt eine Matrix, die einen Vektor auf den Bildschirm Projeziert
-        //  öffnungswinkel: Der Öffnungswinkel der Kamera im Bogenmas
+        //  openingAngle: Der Öffnungswinkel der Kamera im Bogenmas
         //  bildschirmXY: Das Seitenverhältnis des Rechtecks auf dem Bildschirm, in dem gezeichnet werden soll. (Breite / Höhe)
         //  minz: Der Mindestabstand zur Kamera, ab dem gezeichnet wird
         //  maxZ: Der Maximalabstand zur Kamera, ab dem nicht mehr gezeichnet wird
-        static Mat4 projektion( float öffnungswinkel, float bildschirmXY, float minZ, float maxZ )
+        static Mat4 projektion( float openingAngle, float bildschirmXY, float minZ, float maxZ )
         {
-            Mat4 p = { (float)( 1 / tan( öffnungswinkel / 2 ) ) / bildschirmXY, 0, 0, 0,
-                0, (float)( 1 / tan( öffnungswinkel / 2 ) ), 0, 0,
+            Mat4 p = { (float)( 1 / tan( openingAngle / 2 ) ) / bildschirmXY, 0, 0, 0,
+                0, (float)( 1 / tan( openingAngle / 2 ) ), 0, 0,
                 0, 0, maxZ / ( maxZ - minZ ), -( minZ * maxZ ) / ( maxZ - minZ ),
                 0, 0, 1, 0 };
             return p;

+ 3 - 3
Maus.cpp

@@ -47,8 +47,8 @@ void Maus::ladeMaus( Bild *maus )
     HDC hAndMaskDC = CreateCompatibleDC( hDC );
     HDC hXorMaskDC = CreateCompatibleDC( hDC );
 
-    hAndMaskBitmap = CreateCompatibleBitmap( hDC, maus->getBreite(), maus->getHöhe() );
-    hXorMaskBitmap = CreateCompatibleBitmap( hDC, maus->getBreite(), maus->getHöhe() );
+    hAndMaskBitmap = CreateCompatibleBitmap( hDC, maus->getBreite(), maus->getHeight() );
+    hXorMaskBitmap = CreateCompatibleBitmap( hDC, maus->getBreite(), maus->getHeight() );
 
     //Select the bitmaps to DC
     HBITMAP hOldAndMaskBitmap = (HBITMAP)SelectObject( hAndMaskDC, hAndMaskBitmap );
@@ -58,7 +58,7 @@ void Maus::ladeMaus( Bild *maus )
     int y;
     for( int x = 0; x < maus->getBreite(); ++x )
     {
-        for( y = 0; y < maus->getHöhe(); ++y )
+        for( y = 0; y < maus->getHeight(); ++y )
         {
             int pixel = maus->getPixel( x, y );
             if( ( ( pixel >> 24 ) & 0xFF ) == 0 )

+ 1 - 1
MausEreignis.h

@@ -18,7 +18,7 @@ namespace Framework
     const int ME_DKRechts = 7;
     const int ME_DKMitte = 8;
     const int ME_Betritt = 9;
-    const int ME_Verlässt = 10;
+    const int ME_Leaves = 10;
     const int ME_Bewegung = 11;
     const int ME_UScroll = 12;
     const int ME_DScroll = 13;

+ 64 - 95
Model2D.cpp

@@ -2,9 +2,7 @@
 #include "Bild.h"
 #include "FrameworkMath.h"
 #include "Mat3.h"
-#ifdef WIN32
 #include "MausEreignis.h"
-#endif
 
 using namespace Framework;
 
@@ -27,10 +25,8 @@ Model2DData::~Model2DData()
         int anz = polygons->getEintragAnzahl();
         for( int i = 0; i < anz; i++ )
         {
-#ifdef WIN32
             if( polygons->get( i ).tKordinaten )
                 polygons->get( i ).tKordinaten->release();
-#endif
             if( polygons->get( i ).vertex )
                 polygons->get( i ).vertex->release();
         }
@@ -128,22 +124,22 @@ bool Model2DData::istLinieInnen( Vertex a, Vertex b, int polygonId ) const
                 return 1;
             j = i;
         }
-        Vertex län = b - a;
-        Vertex speed( län.x > 0 ? 1 : -1.f, län.y > 0 ? 1 : -1.f );
-        int mLän = 0;
-        if( fabs( län.x ) > fabs( län.y ) )
+        Vertex len = b - a;
+        Vertex speed( len.x > 0 ? 1 : -1.f, len.y > 0 ? 1 : -1.f );
+        int mLen = 0;
+        if( fabs( len.x ) > fabs( len.y ) )
         {
-            mLän = (int)fabs( län.x );
-            speed.y = län.y / (float)fabs( län.x );
+            mLen = (int)fabs( len.x );
+            speed.y = len.y / (float)fabs( len.x );
         }
         else
         {
-            mLän = (int)fabs( län.y );
-            speed.x = län.x / (float)fabs( län.y );
+            mLen = (int)fabs( len.y );
+            speed.x = len.x / (float)fabs( len.y );
         }
         int i = 1;
         bool inside = 1;
-        for( Vertex vp = speed + a; (Punkt)vp != (Punkt)( b - speed ) && inside && i < mLän - 1; vp += speed, i++ )
+        for( Vertex vp = speed + a; (Punkt)vp != (Punkt)( b - speed ) && inside && i < mLen - 1; vp += speed, i++ )
             inside &= istPunktInnen( vp, p );
         if( inside )
             return 1;
@@ -154,7 +150,7 @@ bool Model2DData::istLinieInnen( Vertex a, Vertex b, int polygonId ) const
 // nicht constant
 bool Model2DData::erstelleModell( Array< Polygon2D > *polygons )
 {
-    löscheModell();
+    removeModell();
     if( !polygons || !polygons->getEintragAnzahl() )
     {
         this->polygons = polygons;
@@ -243,10 +239,10 @@ bool Model2DData::erstelleModell( Array< Polygon2D > *polygons )
                 if( istLinieInnen( a, b, p ) )
                 {
                     DreieckListe< Vertex > *lowL = new DreieckListe< Vertex >();
-                    DreieckListe< Vertex > *hightL = new DreieckListe< Vertex >();
+                    DreieckListe< Vertex > *heightL = new DreieckListe< Vertex >();
                     lowL->addPunkt( new Vertex( pg.vertex->get( i ) ), textur ? new Punkt( pg.tKordinaten->get( i ) ) : 0 );
-                    hightL->addPunkt( new Vertex( pg.vertex->get( i ) ), textur ? new Punkt( pg.tKordinaten->get( i ) ) : 0 );
-                    int hight = i + 1;
+                    heightL->addPunkt( new Vertex( pg.vertex->get( i ) ), textur ? new Punkt( pg.tKordinaten->get( i ) ) : 0 );
+                    int height = i + 1;
                     int low = i - 1;
                     Punkt outL( 0, 0 );
                     Punkt outH( 0, 0 );
@@ -255,8 +251,8 @@ bool Model2DData::erstelleModell( Array< Polygon2D > *polygons )
                         bool lowp = !k;
                         while( 1 )
                         {
-                            if( hight >= vAnz )
-                                hight = 0;
+                            if( height >= vAnz )
+                                height = 0;
                             if( low < 0 )
                                 low = vAnz - 1;
                             for( int j = 0; j <= lauf; j++ )
@@ -264,60 +260,60 @@ bool Model2DData::erstelleModell( Array< Polygon2D > *polygons )
                                 Punkt out = outList.z( p )->get( j );
                                 if( out.x < out.y )
                                 {
-                                    if( hight > out.x && hight < out.y )
-                                        hight = out.y;
+                                    if( height > out.x && height < out.y )
+                                        height = out.y;
                                     if( low > out.x && low < out.y )
                                         low = out.x;
                                 }
                                 if( out.x > out.y )
                                 {
-                                    if( hight > out.x || hight < out.y )
-                                        hight = out.y;
+                                    if( height > out.x || height < out.y )
+                                        height = out.y;
                                     if( low > out.x || low < out.y )
                                         low = out.x;
                                 }
                             }
-                            Vertex a = pg.vertex->get( hight );
+                            Vertex a = pg.vertex->get( height );
                             Vertex b = pg.vertex->get( low );
-                            if( low == hight )
+                            if( low == height )
                             {
                                 fertig = 1;
                                 outList.z( p )->set( Punkt( 0, 0 ), lauf );
                                 if( !k )
                                     lowL->addPunkt( new Vertex( b ), textur ? new Punkt( pg.tKordinaten->get( low ) ) : 0 );
                                 else
-                                    hightL->addPunkt( new Vertex( b ), textur ? new Punkt( pg.tKordinaten->get( low ) ) : 0 );
+                                    heightL->addPunkt( new Vertex( b ), textur ? new Punkt( pg.tKordinaten->get( low ) ) : 0 );
                                 break;
                             }
                             bool inside = istLinieInnen( a, b, p );
                             if( inside )
                             {
                                 if( !k )
-                                    outL = Punkt( low, hight );
+                                    outL = Punkt( low, height );
                                 else
-                                    outH = Punkt( low, hight );
-                                outList.z( p )->set( Punkt( low, hight ), lauf );
+                                    outH = Punkt( low, height );
+                                outList.z( p )->set( Punkt( low, height ), lauf );
                             }
                             if( lowp )
                             {
                                 if( !k )
                                     lowL->addPunkt( new Vertex( b ), textur ? new Punkt( pg.tKordinaten->get( low ) ) : 0 );
                                 else
-                                    hightL->addPunkt( new Vertex( b ), textur ? new Punkt( pg.tKordinaten->get( low ) ) : 0 );
+                                    heightL->addPunkt( new Vertex( b ), textur ? new Punkt( pg.tKordinaten->get( low ) ) : 0 );
                                 low--;
                             }
                             else
                             {
                                 if( !k )
-                                    lowL->addPunkt( new Vertex( a ), textur ? new Punkt( pg.tKordinaten->get( hight ) ) : 0 );
+                                    lowL->addPunkt( new Vertex( a ), textur ? new Punkt( pg.tKordinaten->get( height ) ) : 0 );
                                 else
-                                    hightL->addPunkt( new Vertex( a ), textur ? new Punkt( pg.tKordinaten->get( hight ) ) : 0 );
-                                hight++;
+                                    heightL->addPunkt( new Vertex( a ), textur ? new Punkt( pg.tKordinaten->get( height ) ) : 0 );
+                                height++;
                             }
                             lowp = !lowp;
                             if( !inside )
                             {
-                                hight = i + 1;
+                                height = i + 1;
                                 low = i - 1;
                                 outList.z( p )->set( Punkt( 0, 0 ), lauf );
                                 break;
@@ -326,15 +322,15 @@ bool Model2DData::erstelleModell( Array< Polygon2D > *polygons )
                         if( fertig )
                             break;
                     }
-                    if( lowL->getDreieckAnzahl() > hightL->getDreieckAnzahl() )
+                    if( lowL->getDreieckAnzahl() > heightL->getDreieckAnzahl() )
                     {
                         lists.z( lauf )->set( lowL, i );
                         tmpOutList.set( outL, i );
-                        hightL->release();
+                        heightL->release();
                     }
                     else
                     {
-                        lists.z( lauf )->set( hightL, i );
+                        lists.z( lauf )->set( heightL, i );
                         tmpOutList.set( outH, i );
                         lowL->release();
                     }
@@ -367,7 +363,7 @@ bool Model2DData::erstelleModell( Array< Polygon2D > *polygons )
     return 1;
 }
 
-void Model2DData::löscheModell() // setzt die Vertex daten zurück
+void Model2DData::removeModell() // setzt die Vertex daten zurück
 {
     if( polygons )
     {
@@ -407,20 +403,14 @@ Model2DData *Model2DData::release()
 // Inhalt der Model2D Klasse aus Model2D.h
 // Konstruktor
 Model2D::Model2D()
-#ifdef WIN32
     : Zeichnung(),
     textur( 0 )
-#endif
 {
-#ifdef WIN32
     farbe = 0;
     style = 0;
-#else
-    pos = Punkt( 0, 0 );
-#endif
     rData = 0;
     drehung = 0;
-    größe = 1;
+    size = 1;
     ref = 1;
 }
 
@@ -429,10 +419,8 @@ Model2D::~Model2D()
 {
     if( rData )
         rData->release();
-#ifdef WIN32
-    if( textur )
-        textur->release();
-#endif
+	if( textur )
+		textur->release();
 }
 
 // nicht constant
@@ -450,9 +438,7 @@ void Model2D::setDrehung( float drehung )
         this->drehung -= (float)PI * 2;
     while( this->drehung < 0 )
         this->drehung += (float)PI * 2;
-#ifdef WIN32
     rend = 1;
-#endif
 }
 
 void Model2D::addDrehung( float drehung )
@@ -462,27 +448,21 @@ void Model2D::addDrehung( float drehung )
         this->drehung -= (float)PI * 2;
     while( this->drehung < 0 )
         this->drehung += (float)PI * 2;
-#ifdef WIN32
     rend = 1;
-#endif
 }
 
-void Model2D::setGröße( float größe )
+void Model2D::setSize( float size )
 {
-    this->größe = größe;
-#ifdef WIN32
+    this->size = size;
     rend = 1;
-#endif
 }
 
-void Model2D::addGröße( float größe )
+void Model2D::addSize( float size )
 {
-    this->größe += größe;
-#ifdef WIN32
+    this->size += size;
     rend = 1;
-#endif
 }
-#ifdef WIN32
+
 void Model2D::setTextur( Bild *t )
 {
     if( textur )
@@ -519,11 +499,11 @@ void Model2D::render( Bild &zRObj )
 {
     if( !rData || hatStyleNicht( Model2D::Style::Sichtbar ) || !rData->polygons )
         return;
-    __super::render( zRObj );
+	Zeichnung::render( zRObj );
     int num = 0;
     for( auto *p = &rData->vListen->getArray(); p && p->set; p = p->next, num++ )
     {
-        Mat3< float > mat = Mat3< float >::translation( pos ) * Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( größe );
+        Mat3< float > mat = Mat3< float >::translation( pos ) * Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( size );
         if( hatStyle( Model2D::Style::Textur ) )
         {
             if( !textur || !rData->polygons->get( num ).tKordinaten )
@@ -608,21 +588,16 @@ void Model2D::render( Bild &zRObj )
         }
     }
 }
-#else
-void Model2D::setPosition( Punkt p )
-{
-    pos = p;
-}
-#endif
+
 // constant
 float Model2D::getDrehung() const
 {
     return drehung;
 }
 
-float Model2D::getGröße() const
+float Model2D::getSize() const
 {
-    return größe;
+    return size;
 }
 
 bool Model2D::istPunktInnen( Vertex p ) const
@@ -630,12 +605,12 @@ bool Model2D::istPunktInnen( Vertex p ) const
     if( !rData )
         return 0;
     p -= pos;
-    if( p < Mat3< float >::scaling( größe ) * rData->minP || p > Mat3< float >::scaling( größe ) * rData->maxP || !rData->polygons )
+    if( p < Mat3< float >::scaling( size ) * rData->minP || p > Mat3< float >::scaling( size ) * rData->maxP || !rData->polygons )
         return 0;
     int num = 0;
     for( auto *polygon = &rData->polygons->getArray(); polygon && polygon->set; polygon = polygon->next, num++ )
     {
-        Mat3< float > mat = Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( größe );
+        Mat3< float > mat = Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( size );
         int anz = polygon->var.vertex->getEintragAnzahl();
         bool c = 0;
         int j = anz - 1;
@@ -660,7 +635,7 @@ bool Model2D::istLinieInnen( Vertex a, Vertex b ) const
     int pAnz = rData->polygons->getEintragAnzahl();
     for( int p = 0; p < pAnz; p++ )
     {
-        Mat3< float > mat = Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( größe );
+        Mat3< float > mat = Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( size );
         int anz = rData->polygons->get( p ).vertex->getEintragAnzahl();
         int j = anz - 1;
         for( int i = 0; i < anz; i++ )
@@ -673,22 +648,22 @@ bool Model2D::istLinieInnen( Vertex a, Vertex b ) const
                 return 1;
             j = i;
         }
-        Vertex län = b - a;
-        Vertex speed( län.x > 0 ? 1 : -1.f, län.y > 0 ? 1 : -1.f );
-        int mLän = 0;
-        if( fabs( län.x ) > fabs( län.y ) )
+        Vertex len = b - a;
+        Vertex speed( len.x > 0 ? 1 : -1.f, len.y > 0 ? 1 : -1.f );
+        int mLen = 0;
+        if( fabs( len.x ) > fabs( len.y ) )
         {
-            mLän = (int)fabs( län.x );
-            speed.y = län.y / (float)fabs( län.x );
+            mLen = (int)fabs( len.x );
+            speed.y = len.y / (float)fabs( len.x );
         }
         else
         {
-            mLän = (int)fabs( län.y );
-            speed.x = län.x / (float)fabs( län.y );
+            mLen = (int)fabs( len.y );
+            speed.x = len.x / (float)fabs( len.y );
         }
         int i = 1;
         bool inside = 1;
-        for( Vertex vp = speed + a; (Punkt)vp != (Punkt)( b - speed ) && inside && i < mLän - 1; vp += speed, i++ )
+        for( Vertex vp = speed + a; (Punkt)vp != (Punkt)( b - speed ) && inside && i < mLen - 1; vp += speed, i++ )
             inside &= istPunktInnen( vp );
         if( inside )
             return 1;
@@ -700,14 +675,14 @@ bool Model2D::istModelInnen( const Model2D *zMdl, bool end ) const
 {
     if( !end )
     {
-        Vertex min = (Vertex)rData->minP * größe + pos;
-        Vertex max = (Vertex)rData->maxP * größe + pos;
-        Vertex min2 = (Vertex)zMdl->zModel()->minP * zMdl->getGröße() + zMdl->getPosition();
-        Vertex max2 = (Vertex)zMdl->zModel()->maxP * zMdl->getGröße() + zMdl->getPosition();
+        Vertex min = (Vertex)rData->minP * size + pos;
+        Vertex max = (Vertex)rData->maxP * size + pos;
+        Vertex min2 = (Vertex)zMdl->zModel()->minP * zMdl->getSize() + zMdl->getPosition();
+        Vertex max2 = (Vertex)zMdl->zModel()->maxP * zMdl->getSize() + zMdl->getPosition();
         if( max.x < min2.x || min.x > max2.x || max.y < min2.y || min.y > max2.y )
             return 0;
     }
-    Mat3< float > mat = Mat3< float >::translation( pos ) * Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( größe );
+    Mat3< float > mat = Mat3< float >::translation( pos ) * Mat3< float >::rotation( drehung ) * Mat3< float >::scaling( size );
     for( auto *polygon = &rData->polygons->getArray(); polygon && polygon->set; polygon = polygon->next )
     {
         int anz = polygon->var.vertex->getEintragAnzahl();
@@ -731,12 +706,6 @@ Model2DData *Model2D::zModel() const
 {
     return rData;
 }
-#ifndef WIN32
-Punkt Model2D::getPosition() const
-{
-    return pos;
-}
-#endif
 
 // Reference Counting
 Model2D *Model2D::getThis()

+ 8 - 30
Model2D.h

@@ -1,9 +1,7 @@
 #ifndef Model2D_H
 #define Model2D_H
 
-#ifdef WIN32
 #include "Zeichnung.h"
-#endif
 #include "Punkt.h"
 #include "Array.h"
 #include "DreieckListe.h"
@@ -52,7 +50,7 @@ namespace Framework
         //  return: gibt immer 1 zurück
         __declspec( dllexport ) bool erstelleModell( Array< Polygon2D > *polygons );
         // Löscht die erstellten Dreiecklisten und die Eckpunkte
-        __declspec( dllexport ) void löscheModell();
+        __declspec( dllexport ) void removeModell();
         // Erhöht den Reference Counting Zähler.
         //  return: this.
         __declspec( dllexport ) Model2DData *getThis();
@@ -61,15 +59,10 @@ namespace Framework
         __declspec( dllexport ) Model2DData *release();
     };
 
-#ifdef WIN32
     // Eine Zeichnung von einem Model
     class Model2D : public Zeichnung
-#else
-    class Model2D
-#endif
     {
     public:
-#ifdef WIN32
         class Style : public Zeichnung::Style
         {
         public:
@@ -78,24 +71,20 @@ namespace Framework
             const static __int64 Alpha = 0x40; // Wenn dieser Fag gesetzt ist, wird beim Zeichnen alphablending verwendet
             const static __int64 Mesh = 0x20; // Wenn dieser Flag gesetzt ist, werden die Render der Dreiecke gezeichnet
         };
-#endif
     private:
         Model2DData *rData;
         float drehung;
-        float größe;
+        float size;
         int ref;
-#ifdef WIN32
         int farbe;
         Bild *textur;
-#else
         Punkt pos;
-#endif
 
     public:
         // Konstruktor
         __declspec( dllexport ) Model2D();
         // Destruktor
-        __declspec( dllexport ) ~Model2D();
+        __declspec( dllexport ) virtual ~Model2D();
         // Setzt die Daten des Models
         //  mdl: Die Model Daten
         __declspec( dllexport ) void setModel( Model2DData *mdl );
@@ -106,12 +95,11 @@ namespace Framework
         //  drehung: Der Winkel in Bogenmas, der hinzugefügt werden soll
         __declspec( dllexport ) void addDrehung( float drehung );
         // Setzt die Skallierung des Modells
-        //  größe: Der Faktor, mit dem Skalliert wird
-        __declspec( dllexport ) void setGröße( float größe );
+        //  size: Der Faktor, mit dem Skalliert wird
+        __declspec( dllexport ) void setSize( float size );
         // Addiert zur Skallierung einen bestimmten Wert hinzu
-        //  größe: Der Wert, der zur skallierung hinzugefügt werden soll
-        __declspec( dllexport ) void addGröße( float größe );
-#ifdef WIN32
+        //  size: Der Wert, der zur skallierung hinzugefügt werden soll
+        __declspec( dllexport ) void addSize( float size );
         // Setzt die Textur
         //  t: Das Bild, das als Textur verwendet werden soll
         __declspec( dllexport ) void setTextur( Bild *t );
@@ -127,15 +115,10 @@ namespace Framework
         // Zeichnet die Zeihnung in ein bestimmtes Bild
         //  zRObj: Das Bild, in das gezeichnet werden soll
         __declspec( dllexport ) void render( Bild &zRObj ) override;
-#else
-        // Setzt die Position
-        //  p: Die neue Position
-        __declspec( dllexport ) void setPosition( Punkt p );
-#endif
         // gibt die Drehung des Models zurück
         __declspec( dllexport ) float getDrehung() const;
         // gibt den Skallierungs Faktor zurück
-        __declspec( dllexport ) float getGröße() const;
+        __declspec( dllexport ) float getSize() const;
         // Gibt zurück, ob ein Punkt in dem Model enthalten ist
         //  p: Der Punkt
         __declspec( dllexport ) bool istPunktInnen( Vertex p ) const;
@@ -151,10 +134,6 @@ namespace Framework
         __declspec( dllexport ) Model2DData *getModel() const;
         // Gibt die Model Daten ohne erhöhten Reference Counter zurück
         __declspec( dllexport ) Model2DData *zModel() const;
-#ifndef WIN32
-        // Gibt die Position des Models zurück
-        Punkt getPosition() const;
-#endif
         // Erhöht den Reference Counting Zähler.
         //  return: this.
         __declspec( dllexport ) Model2D *getThis();
@@ -163,5 +142,4 @@ namespace Framework
         __declspec( dllexport ) Model2D *release();
     };
 }
-
 #endif

+ 16 - 9
Model3D.cpp

@@ -1,9 +1,12 @@
 #include "Model3D.h"
-#include "Render3D.h"
 #include "Model2D.h"
 #include "DXBuffer.h"
 #include "Textur.h"
+#ifdef WIN32
+#include "Render3D.h"
 #include <d3d11.h>
+#endif
+#include <stdexcept>
 
 using namespace Framework;
 
@@ -78,7 +81,7 @@ void Knochen::addKind( int id, Knochen *k )
             err += __LINE__;
             err += "!";
             delete k;
-            throw std::out_of_range( err );
+            throw std::out_of_range( (const char*)err );
         }
     }
 }
@@ -262,11 +265,11 @@ void Model3DData::setVertecies( Vertex3D *vertexList, int anz )
     delete[] this->vertexList;
     this->vertexList = vertexList;
     vertexBuffer->setData( vertexList );
-    vertexBuffer->setLänge( sizeof( Vertex3D ) * anz );
+    vertexBuffer->setLength( (int)sizeof( Vertex3D ) * anz );
     radius = 0;
     for( int i = 0; i < anz; i++ )
     {
-        float r = vertexList[ i ].pos.län();
+        float r = vertexList[ i ].pos.getLength();
         if( r > radius )
             radius = r;
     }
@@ -292,7 +295,7 @@ void Model3DData::copyModel2D( Model2DData *model, float z )
             vAnz += i.var.vertex->getEintragAnzahl();
         vertexList = new Vertex3D[ vAnz ];
         vertexBuffer->setData( vertexList );
-        vertexBuffer->setLänge( sizeof( Vertex3D ) * vAnz );
+        vertexBuffer->setLength( (int)sizeof( Vertex3D ) * vAnz );
         int index = 0;
         for( auto i = model->vListen->getArray(); i.set; i++ )
         {
@@ -305,7 +308,7 @@ void Model3DData::copyModel2D( Model2DData *model, float z )
             }
             p->indexList = new int[ p->indexAnz ];
             p->indexBuffer->setData( p->indexList );
-            p->indexBuffer->setLänge( sizeof( int ) * p->indexAnz );
+            p->indexBuffer->setLength( (int)sizeof( int ) * p->indexAnz );
             p->indexAnz = 0;
             for( auto j = i.var->getArray(); j.set; j++ )
             {
@@ -337,7 +340,7 @@ void Model3DData::removePolygon( int index )
     if( !polygons->hat( index ) )
         return;
     delete polygons->get( index );
-    polygons->lösche( index );
+    polygons->remove( index );
 }
 
 // Aktualisiert die Vertecies
@@ -372,7 +375,9 @@ void Model3DData::render( Mat4< float > &welt, const Model3DTextur *zTxt, Render
         Textur *t = zTxt->zPolygonTextur( ind );
         if( t && t->brauchtUpdate() )
             t->updateTextur( zRObj );
+#ifdef WIN32
         zRObj->draw( i->var->indexBuffer, t );
+#endif
         ind++;
     }
 }
@@ -539,7 +544,7 @@ int Model3D::errechneMatrizen( Mat4< float > &viewProj, Mat4< float > *matBuffer
     else if( model )
         ret = model->kalkulateMatrix( welt, matBuffer, viewProj );
     if( !ret )
-        return __super::errechneMatrizen( viewProj, matBuffer );
+        return Zeichnung3D::errechneMatrizen( viewProj, matBuffer );
     return ret;
 }
 
@@ -549,7 +554,7 @@ int Model3D::errechneMatrizen( Mat4< float > &viewProj, Mat4< float > *matBuffer
 bool Model3D::tick( double tickval )
 {
     radius = model ? model->getRadius() : 0;
-    return __super::tick( tickval );
+    return Zeichnung3D::tick( tickval );
 }
 
 // Zeichnet das Model
@@ -559,7 +564,9 @@ void Model3D::render( Render3D *zRObj )
     if( !model )
         return;
     model->aktualisiereVertecies( zRObj );
+#ifdef WIN32
     zRObj->beginnModel( this );
+#endif
     model->render( welt, textur, zRObj );
 }
 

+ 2 - 2
Model3D.h

@@ -1,6 +1,6 @@
 #pragma once
 
-#include "vec2.h"
+#include "Vec2.h"
 #include "Array.h"
 #include "Mat4.h"
 #include "Zeichnung3D.h"
@@ -226,7 +226,7 @@ namespace Framework
         // Konstruktor
         __declspec( dllexport ) Model3D();
         // Destruktor
-        __declspec( dllexport ) ~Model3D();
+        __declspec( dllexport ) virtual ~Model3D();
         // Setzt den Zeiger auf das zum Annimieren verwendete Skelett
         //  s: Das Skelett, das verwendet werden soll
         __declspec( dllexport ) void setSkelettZ( Skelett *s );

+ 5 - 3
Model3DList.cpp

@@ -7,6 +7,8 @@ using namespace Framework;
 int Model3DList::id = 0;
 CRITICAL_SECTION Model3DList::cs;
 
+const char *Standart3DTypes::cube = "f_würfel";
+
 // Inhalt der Model3DList Klasse
 // Konstruktor
 Model3DList::Model3DList()
@@ -47,7 +49,7 @@ bool Model3DList::addModel( Model3DData *mdl, const char *name )
 
 // Entfernt ein Model aus der Liste
 //  name: Der Name des Models
-void Model3DList::löscheModel( const char *name )
+void Model3DList::removeModel( const char *name )
 {
     EnterCriticalSection( &cs );
     int index = 0;
@@ -55,8 +57,8 @@ void Model3DList::l
     {
         if( i.var->istGleich( name ) )
         {
-            names->lösche( index );
-            models->lösche( index );
+            names->remove( index );
+            models->remove( index );
             LeaveCriticalSection( &cs );
             return;
         }

+ 2 - 3
Model3DList.h

@@ -7,10 +7,9 @@ namespace Framework
     class Model3DData; // Model3D.h
     class Text; // Text.h
     class Model3D; // Model3D.h
-
     namespace Standart3DTypes
     {
-        const static char *würfel = "f_würfel"; // Die Modeldaten eines Würfels der 100 * 100 * 100 groß ist
+        extern const char *cube; // = "f_würfel"; Die Modeldaten eines Würfels der 100 * 100 * 100 groß ist
     };
 
     // Verwaltet alle geladenen Modeldaten, so dass mehrere Zeichnungen die selben Daten benutzen können
@@ -34,7 +33,7 @@ namespace Framework
         bool addModel( Model3DData *mdl, const char *name );
         // Entfernt ein Model aus der Liste
         //  name: Der Name des Models
-        void löscheModel( const char *name );
+        void removeModel( const char *name );
         // Überprüft, ob unter einem bestimmten Namen ein Model abgespeichert wurde
         //  name: Der Name
         //  return: true, wenn ein Model mit dem Namen existiert

+ 6 - 2
Rahmen.cpp

@@ -17,6 +17,10 @@ LRahmen::LRahmen()
     ref( 1 )
 {}
 
+// Destruktor
+LRahmen::~LRahmen()
+{}
+
 // nicht constant 
 void LRahmen::setRamenBreite( int br ) // setzt die Breite des Rahmens
 {
@@ -38,7 +42,7 @@ void LRahmen::setFarbe( int f ) // Legt die Farbe des Rahmens fest
 
 void LRahmen::render( Bild &Obj ) // Zeichnet den Rahmen in das RenderZeichnung
 {
-    __super::render( Obj );
+	Zeichnung::render( Obj );
     int x = pos.x;
     int y = pos.y;
     int b = x + gr.x - 1;
@@ -85,7 +89,7 @@ Zeichnung *LRahmen::dublizieren() const // Kopiert das Zeichnung
 {
     LRahmen *obj = new LRahmen();
     obj->setPosition( pos );
-    obj->setGröße( gr );
+    obj->setSize( gr );
     obj->setMausEreignisParameter( makParam );
     obj->setTastaturEreignisParameter( takParam );
     obj->setMausEreignis( Mak );

+ 2 - 0
Rahmen.h

@@ -22,6 +22,8 @@ namespace Framework
     public:
         // Konstruktor 
         __declspec( dllexport ) LRahmen();
+		// Destruktor
+		__declspec( dllexport ) virtual ~LRahmen();
         // Setzt die Breite des Rahmens
         //  br: Die Breite in Pixeln
         __declspec( dllexport ) void setRamenBreite( int br );

+ 3 - 3
Render3D.cpp

@@ -198,7 +198,7 @@ void Render3D::beginnModel( Model3D *zMdl )
         lastObjektId = zMdl->getDatenId();
         unsigned int offset = 0;
         ID3D11Buffer *b = zMdl->zVertexBuffer()->zBuffer();
-        unsigned int es = (unsigned)zMdl->zVertexBuffer()->getElementLänge();
+        unsigned int es = (unsigned)zMdl->zVertexBuffer()->getElementLength();
         context->IASetVertexBuffers( 0, 1, &b, &es, &offset );
     }
 }
@@ -210,9 +210,9 @@ void Render3D::beginnModel( Model3D *zMdl )
 void Render3D::draw( DXIndexBuffer *zIndexBuffer, Textur *textur, D3D_PRIMITIVE_TOPOLOGY struktur )
 {
     DXGI_FORMAT f = DXGI_FORMAT_R32_UINT;
-    if( zIndexBuffer->getElementLänge() == 2 )
+    if( zIndexBuffer->getElementLength() == 2 )
         f = DXGI_FORMAT_R16_UINT;
-    if( zIndexBuffer->getElementLänge() == 1 )
+    if( zIndexBuffer->getElementLength() == 1 )
         f = DXGI_FORMAT_R8_UINT;
     context->IASetIndexBuffer( zIndexBuffer->zBuffer(), f, 0 );
     context->IASetPrimitiveTopology( struktur );

+ 135 - 134
Schrift.cpp

@@ -3,7 +3,9 @@
 #include "Text.h"
 #include "Scroll.h"
 #include "Globals.h"
+#ifdef WIN32
 #include <Windows.h>
+#endif
 #include "FrameworkMath.h"
 
 using namespace Framework;
@@ -11,10 +13,10 @@ using namespace Framework;
 // Inhalt der Buchstabe Klasse aus Schrift.h
 // Konstruktor 
 Buchstabe::Buchstabe()
-    : größe( 0, 0 ),
+    : size( 0, 0 ),
     pos( 0, 0 ),
     alpha( 0 ),
-    schriftGröße( 0 ),
+    schriftSize( 0 ),
     drawSg( 0 ),
     ref( 1 )
 {}
@@ -27,23 +29,23 @@ Buchstabe::~Buchstabe()
 }
 
 // nicht constant 
-void Buchstabe::NeuBuchstabe( Punkt &größe ) // Initialisierung
+void Buchstabe::NeuBuchstabe( Punkt &size ) // Initialisierung
 {
-    this->größe = größe;
+    this->size = size;
     if( alpha )
         delete[]alpha;
-    alpha = new unsigned char[ größe.x * größe.y ];
-    ZeroMemory( alpha, größe.x * größe.y );
+    alpha = new unsigned char[ size.x * size.y ];
+    ZeroMemory( alpha, size.x * size.y );
 }
 
 void Buchstabe::setPixel( Punkt &pos, unsigned char alpha ) // setzt den alphawert des Pixels
 {
-    this->alpha[ pos.x + pos.y * größe.x ] = alpha;
+    this->alpha[ pos.x + pos.y * size.x ] = alpha;
 }
 
 void Buchstabe::setPixel( int x, int y, unsigned char alpha )
 {
-    this->alpha[ x + y * größe.x ] = alpha;
+    this->alpha[ x + y * size.x ] = alpha;
 }
 
 void Buchstabe::setPixel( int i, unsigned char alpha )
@@ -62,35 +64,35 @@ void Buchstabe::setPosition( int x, int y )
     pos.y = y;
 }
 
-void Buchstabe::setSchriftGröße( int sg ) // setzt die Schriftgröße des Buchstaben
+void Buchstabe::setSchriftSize( int sg ) // setzt die Schriftgröße des Buchstaben
 {
-    schriftGröße = sg;
+    schriftSize = sg;
 }
 
-void Buchstabe::setDrawSchriftGröße( int dsg ) // setzt die Zeichengröße des Buchstaben
+void Buchstabe::setDrawSchriftSize( int dsg ) // setzt die Zeichengröße des Buchstaben
 {
     drawSg = dsg;
 }
 
 // constant
-const Punkt &Buchstabe::getGröße() const // gibt die Buchstabenbildgröße zurück
+const Punkt &Buchstabe::getSize() const // gibt die Buchstabenbildgröße zurück
 {
-    return größe;
+    return size;
 }
 
 int Buchstabe::getBreite() const // Buchstabenbreite
 {
-    return (int)( ( (double)größe.x / (double)schriftGröße ) * (double)drawSg + 0.5 );
+    return (int)( ( (double)size.x / (double)schriftSize ) * (double)drawSg + 0.5 );
 }
 
-int Buchstabe::getHöhe() const // Buchstabenhöhe
+int Buchstabe::getHeight() const // Buchstabenhöhe
 {
-    return (int)( ( (double)größe.y / (double)schriftGröße ) *(double)drawSg + 0.5 );
+    return (int)( ( (double)size.y / (double)schriftSize ) *(double)drawSg + 0.5 );
 }
 
-int Buchstabe::getNormHöhe() const // Buchstabenhöhe
+int Buchstabe::getNormHeight() const // Buchstabenhöhe
 {
-    return größe.y;
+    return size.y;
 }
 
 unsigned char *Buchstabe::getBuff() const // gibt den Alphabuffer zurück
@@ -107,10 +109,10 @@ void Buchstabe::render( Bild &zRObj, int f ) const // Zeichnet nach zRObj
         const Punkt &zRObjOff = zRObj.getDrawOff();
         int xp = pos.x + zRObjOff.x, yp = pos.y + zRObjOff.y;
         int xs = xp < zRObjPos.x ? ( zRObjPos.x - xp ) : 0, ys = yp < zRObjPos.y ? ( zRObjPos.y - yp ) : 0;
-        int b = größe.x, h = größe.y;
-        unsigned char a2 = ( 255 - ( f >> 24 ) );
+        int b = size.x, h = size.y;
+        unsigned char a2 = (unsigned char)( 255 - ( f >> 24 ) );
         f &= 0x00FFFFFF;
-        if( schriftGröße == drawSg )
+        if( schriftSize == drawSg )
         {
             if( xp >= zRObjGr.x || yp >= zRObjGr.y || xp + b < zRObjPos.x || yp + h < zRObjPos.y )
                 return;
@@ -118,10 +120,10 @@ void Buchstabe::render( Bild &zRObj, int f ) const // Zeichnet nach zRObj
             h = ( yp + h ) > zRObjGr.y ? ( zRObjGr.y - yp ) : h;
             if( !a2 )
             {
-                int xx, ygr = ( ys - 1 ) * größe.x, ygr2 = ( yp + ys - 1 ) * zRObj.getBreite();
+                int xx, ygr = ( ys - 1 ) * size.x, ygr2 = ( yp + ys - 1 ) * zRObj.getBreite();
                 for( int yy = ys; yy < h; ++yy )
                 {
-                    ygr += größe.x;
+                    ygr += size.x;
                     ygr2 += zRObj.getBreite();
                     for( xx = xs; xx < b; ++xx )
                         zRObj.alphaPixel( xp + xx + ygr2, f | ( alpha[ xx + ygr ] << 24 ) );
@@ -130,10 +132,10 @@ void Buchstabe::render( Bild &zRObj, int f ) const // Zeichnet nach zRObj
             else
             {
                 int a;
-                int xx, ygr = ( ys - 1 ) * größe.x, ygr2 = ( yp + ys - 1 ) * zRObj.getBreite();
+                int xx, ygr = ( ys - 1 ) * size.x, ygr2 = ( yp + ys - 1 ) * zRObj.getBreite();
                 for( int yy = ys; yy < h; ++yy )
                 {
-                    ygr += größe.x;
+                    ygr += size.x;
                     ygr2 += zRObj.getBreite();
                     for( xx = xs; xx < b; ++xx )
                     {
@@ -146,10 +148,10 @@ void Buchstabe::render( Bild &zRObj, int f ) const // Zeichnet nach zRObj
         }
         else
         {
-            double xoff = (double)schriftGröße / (double)drawSg,
-                yoff = (double)schriftGröße / (double)drawSg;
+            double xoff = (double)schriftSize / (double)drawSg,
+                yoff = (double)schriftSize / (double)drawSg;
             double x = xs * xoff, y = ys * yoff;
-            int maxX = getBreite(), maxY = getHöhe();
+            int maxX = getBreite(), maxY = getHeight();
             maxX = ( xp + maxX ) >= zRObjGr.x ? ( zRObjGr.x - xp ) : maxX;
             maxY = ( yp + maxY ) >= zRObjGr.y ? ( zRObjGr.y - yp ) : maxY;
             if( !a2 )
@@ -208,10 +210,10 @@ Buchstabe *Buchstabe::release()
 // Konstruktor 
 Alphabet::Alphabet()
     : zeichen( new Buchstabe*[ 256 ] ),
-    schriftGröße( 12 ),
-    drawSchriftGröße( 12 ),
+    schriftSize( 12 ),
+    drawSchriftSize( 12 ),
     pos( 0, 0 ),
-    zeilenHöhe( 0 ),
+    zeilenHeight( 0 ),
     zeilenAbstand( 5 ),
     ref( 1 )
 {
@@ -240,7 +242,7 @@ void Alphabet::NeuAlphabet() // Initialisierung
     }
     for( int i = 0; i < 256; ++i )
         zeichen[ i ] = 0;
-    zeilenHöhe = 0;
+    zeilenHeight = 0;
 }
 
 void Alphabet::setBuchstabe( unsigned char i, Buchstabe *buchstabe ) // setzt einen Buchstaben
@@ -250,34 +252,34 @@ void Alphabet::setBuchstabe( unsigned char i, Buchstabe *buchstabe ) // setzt ei
     zeichen[ i ] = buchstabe;
     if( zeichen[ i ] )
     {
-        zeichen[ i ]->setSchriftGröße( schriftGröße );
-        zeichen[ i ]->setDrawSchriftGröße( drawSchriftGröße );
+        zeichen[ i ]->setSchriftSize( schriftSize );
+        zeichen[ i ]->setDrawSchriftSize( drawSchriftSize );
     }
-    zeilenHöhe = 0;
+    zeilenHeight = 0;
     for( int i = 0; i < 256; ++i )
     {
         if( zeichen[ i ] != 0 )
-            zeilenHöhe = maxInt( zeichen[ i ]->getHöhe(), zeilenHöhe );
+            zeilenHeight = maxInt( zeichen[ i ]->getHeight(), zeilenHeight );
     }
 }
 
-void Alphabet::setSchriftgröße( int gr ) // setzt die Schriftgröße
+void Alphabet::setSchriftSize( int gr ) // setzt die Schriftgröße
 {
-    schriftGröße = gr;
+    schriftSize = gr;
     for( int i = 0; i < 256; ++i )
     {
         if( zeichen[ i ] )
-            zeichen[ i ]->setSchriftGröße( gr );
+            zeichen[ i ]->setSchriftSize( gr );
     }
 }
 
-void Alphabet::setDrawSchriftgröße( int gr ) // setzt die Zeichengröße
+void Alphabet::setDrawSchriftSize( int gr ) // setzt die Zeichengröße
 {
-    drawSchriftGröße = gr;
+    drawSchriftSize = gr;
     for( int i = 0; i < 256; ++i )
     {
         if( zeichen[ i ] )
-            zeichen[ i ]->setDrawSchriftGröße( gr );
+            zeichen[ i ]->setDrawSchriftSize( gr );
     }
 }
 
@@ -315,14 +317,14 @@ bool Alphabet::hatBuchstabe( unsigned char b ) const
     return zeichen[ b ] != 0;
 }
 
-int Alphabet::getSchriftgröße() const // gibt die Schriftgröße zurück
+int Alphabet::getSchriftSize() const // gibt die Schriftgröße zurück
 {
-    return schriftGröße;
+    return schriftSize;
 }
 
-int Alphabet::getDrawSchriftGröße() const // gibt die Zeichengröße zurück
+int Alphabet::getDrawSchriftSize() const // gibt die Zeichengröße zurück
 {
-    return drawSchriftGröße;
+    return drawSchriftSize;
 }
 
 int Alphabet::getZeilenAbstand() const // gibt den Zeilenabstand zurück
@@ -330,9 +332,9 @@ int Alphabet::getZeilenAbstand() const // gibt den Zeilenabstand zur
     return zeilenAbstand;
 }
 
-int Alphabet::getZeilenHöhe() const // gibt die Höhe des höchsten Zeichens zurück
+int Alphabet::getZeilenHeight() const // gibt die Höhe des höchsten Zeichens zurück
 {
-    return (int)( (double)zeilenHöhe / schriftGröße * drawSchriftGröße + 0.5 );
+    return (int)( (double)zeilenHeight / schriftSize * drawSchriftSize + 0.5 );
 }
 
 const Punkt &Alphabet::getPosition() const // gibt die DrawPosition zurück
@@ -343,11 +345,11 @@ const Punkt &Alphabet::getPosition() const // gibt die DrawPosition zur
 int Alphabet::getTextBreite( Text *zTxt ) const // gibt die Breite des Textes zurück
 {
     int ret = 0;
-    int län = zTxt->getLänge();
+    int len = zTxt->getLength();
     char *buff = zTxt->getText();
     unsigned char c = 0;
     int tmp = 0;
-    for( int i = 0; i < län; ++i )
+    for( int i = 0; i < len; ++i )
     {
         c = (unsigned char)buff[ i ];
         if( buff[ i ] == '\n' )
@@ -362,9 +364,9 @@ int Alphabet::getTextBreite( Text *zTxt ) const // gibt die Breite des Textes zu
             continue;
         }
         else if( buff[ i ] == '\t' )
-            tmp += drawSchriftGröße;
+            tmp += drawSchriftSize;
         else if( buff[ i ] == ' ' )
-            tmp += drawSchriftGröße / 2;
+            tmp += drawSchriftSize / 2;
         else if( zeichen[ c ] )
             tmp += zeichen[ c ]->getBreite();
     }
@@ -373,22 +375,22 @@ int Alphabet::getTextBreite( Text *zTxt ) const // gibt die Breite des Textes zu
     return ret;
 }
 
-int Alphabet::getTextHöhe( Text *zTxt ) const // gibt die Höhe des Textes zurück
+int Alphabet::getTextHeight( Text *zTxt ) const // gibt die Höhe des Textes zurück
 {
-    int hö = getZeilenHöhe();
-    return hö + ( ( hö + zeilenAbstand ) * zTxt->anzahlVon( '\n' ) );
+    int hi = getZeilenHeight();
+    return hi + ( ( hi + zeilenAbstand ) * zTxt->anzahlVon( '\n' ) );
 }
 
 int Alphabet::textPos( Text *zText, int mausX, int mausY ) const // gibt den Buchstaben zurück, auf den die Maus zeigt
 {
     char *buffer = zText->getText();
-    int län = zText->getLänge();
+    int len = zText->getLength();
     int tx = 0;
     int ty = 0;
-    int sh = getZeilenHöhe();
+    int sh = getZeilenHeight();
     if( mausX < 0 || mausY < 0 )
         return -1;
-    for( int i = 0; i < län; ++i )
+    for( int i = 0; i < len; ++i )
     {
         if( buffer[ i ] == '\n' )
         {
@@ -398,9 +400,9 @@ int Alphabet::textPos( Text *zText, int mausX, int mausY ) const // gibt den Buc
                 return i;
         }
         if( buffer[ i ] == '\t' )
-            tx += drawSchriftGröße;
+            tx += drawSchriftSize;
         if( buffer[ i ] == ' ' )
-            tx += drawSchriftGröße / 2;
+            tx += drawSchriftSize / 2;
         if( zeichen[ (unsigned char)buffer[ i ] ] )
             tx += zeichen[ (unsigned char)buffer[ i ] ]->getBreite();
         int txpl = 0;
@@ -410,33 +412,32 @@ int Alphabet::textPos( Text *zText, int mausX, int mausY ) const // gibt den Buc
             return i;
     }
     if( mausY < ty + sh + zeilenAbstand )
-        return län;
+        return len;
     return -1;
 }
 
-void Alphabet::textFormatieren( Text *zText, int maxBreite, int schriftGröße ) // fügt zeilenumbrüche ein 
+void Alphabet::textFormatieren( Text *zText, int maxBreite, int schriftSize ) // fügt zeilenumbrüche ein 
 {
-    int sg = drawSchriftGröße;
-    setDrawSchriftgröße( schriftGröße );
-    int zeilenHöhe = getZeilenHöhe() + getZeilenAbstand();
+    int sg = drawSchriftSize;
+    setDrawSchriftSize( schriftSize );
     int lastPos = -1;
-    int län = zText->getLänge();
+    int len = zText->getLength();
     char *txt = zText->getText();
     int x = 0;
     Text result = zText->getText();
-    for( int i = 0; i < län; ++i )
+    for( int i = 0; i < len; ++i )
     {
         char c = txt[ i ];
         if( c == ' ' )
         {
             lastPos = i;
-            x += schriftGröße / 2;
+            x += schriftSize / 2;
             continue;
         }
         if( c == '\t' )
         {
             lastPos = i;
-            x += schriftGröße;
+            x += schriftSize;
             continue;
         }
         if( c == '\n' )
@@ -445,7 +446,7 @@ void Alphabet::textFormatieren( Text *zText, int maxBreite, int schriftGr
             lastPos = -1;
             continue;
         }
-        if( c == '\r' && län - i >= 11 )
+        if( c == '\r' && len - i >= 11 )
         {
             i += 10;
             continue;
@@ -465,31 +466,31 @@ void Alphabet::textFormatieren( Text *zText, int maxBreite, int schriftGr
         }
     }
     zText->setText( result );
-    setDrawSchriftgröße( sg );
+    setDrawSchriftSize( sg );
 }
 
 void Alphabet::render( Text *zTxt, Bild &rendezRObj, int f ) const // Zeichnet txt nach rendezRObj
 {
     int zRObjBr = rendezRObj.getBreite();
-    int zRObjHö = rendezRObj.getHöhe();
+    int zRObjHi = rendezRObj.getHeight();
     int xp = pos.x;
     int yp = pos.y;
-    int zh = getZeilenHöhe();
-    if( yp + ( zh + zeilenAbstand ) * zTxt->anzahlVon( '\n' ) + zh < 0 || xp >= zRObjBr || yp >= zRObjHö )
+    int zh = getZeilenHeight();
+    if( yp + ( zh + zeilenAbstand ) * zTxt->anzahlVon( '\n' ) + zh < 0 || xp >= zRObjBr || yp >= zRObjHi )
         return;
     char *text = zTxt->getText();
-    int län = zTxt->getLänge();
-    for( int i = 0; i < län; ++i )
+    int len = zTxt->getLength();
+    for( int i = 0; i < len; ++i )
     {
         unsigned char c = text[ i ];
         if( c == ' ' )
         {
-            xp += drawSchriftGröße / 2;
+            xp += drawSchriftSize / 2;
             continue;
         }
         if( c == '\t' )
         {
-            xp += drawSchriftGröße;
+            xp += drawSchriftSize;
             continue;
         }
         if( c == '\n' )
@@ -498,7 +499,7 @@ void Alphabet::render( Text *zTxt, Bild &rendezRObj, int f ) const // Zeichnet t
             xp = pos.x;
             continue;
         }
-        if( c == '\r' && län - i >= 11 )
+        if( c == '\r' && len - i >= 11 )
         {
             i += 3;
             Text *hex1 = zTxt->getTeilText( i, i + 6 );
@@ -524,37 +525,37 @@ void Alphabet::render( Text *zTxt, Bild &rendezRObj, int f ) const // Zeichnet t
 void Alphabet::render( Text *zTxt, Bild &rendezRObj, int cpos, int cf, int fbeg, int ff, int f ) const
 {
     int zRObjBr = rendezRObj.getBreite();
-    int zRObjHö = rendezRObj.getHöhe();
+    int zRObjHi = rendezRObj.getHeight();
     int xp = pos.x;
     int yp = pos.y;
-    int zh = getZeilenHöhe();
-    if( yp + ( zh + zeilenAbstand ) * zTxt->anzahlVon( '\n' ) + zh < 0 || xp >= zRObjBr || yp >= zRObjHö )
+    int zh = getZeilenHeight();
+    if( yp + ( zh + zeilenAbstand ) * zTxt->anzahlVon( '\n' ) + zh < 0 || xp >= zRObjBr || yp >= zRObjHi )
         return;
     char *text = zTxt->getText();
-    int län = zTxt->getLänge();
-    bool färb = 0;
-    for( int i = 0; i < län; ++i )
+    int len = zTxt->getLength();
+    bool faerb = 0;
+    for( int i = 0; i < len; ++i )
     {
         unsigned char c = text[ i ];
         if( i == fbeg )
-            färb = !färb;
+            faerb = !faerb;
         if( i == cpos )
         {
             rendezRObj.drawLinieVAlpha( xp, yp, zh, cf );
-            färb = !färb;
+            faerb = !faerb;
         }
         if( c == ' ' )
         {
-            if( färb )
-                rendezRObj.alphaRegion( xp, yp, drawSchriftGröße / 2, zh, ff );
-            xp += drawSchriftGröße / 2;
+            if( faerb )
+                rendezRObj.alphaRegion( xp, yp, drawSchriftSize / 2, zh, ff );
+            xp += drawSchriftSize / 2;
             continue;
         }
         if( c == '\t' )
         {
-            if( färb )
-                rendezRObj.alphaRegion( xp, yp, drawSchriftGröße, zh, ff );
-            xp += drawSchriftGröße;
+            if( faerb )
+                rendezRObj.alphaRegion( xp, yp, drawSchriftSize, zh, ff );
+            xp += drawSchriftSize;
             continue;
         }
         if( c == '\n' )
@@ -563,7 +564,7 @@ void Alphabet::render( Text *zTxt, Bild &rendezRObj, int cpos, int cf, int fbeg,
             xp = pos.x;
             continue;
         }
-        if( c == '\r' && län - i >= 11 )
+        if( c == '\r' && len - i >= 11 )
         {
             i += 3;
             Text *hex1 = zTxt->getTeilText( i, i + 6 );
@@ -579,7 +580,7 @@ void Alphabet::render( Text *zTxt, Bild &rendezRObj, int cpos, int cf, int fbeg,
         {
             if( xp >= zRObjBr )
                 continue;
-            if( färb )
+            if( faerb )
             {
                 int br = zeichen[ c ]->getBreite();
                 rendezRObj.alphaRegion( xp, yp, br, zh, ff );
@@ -589,7 +590,7 @@ void Alphabet::render( Text *zTxt, Bild &rendezRObj, int cpos, int cf, int fbeg,
             xp += zeichen[ c ]->getBreite();
         }
     }
-    if( län == cpos )
+    if( len == cpos )
         rendezRObj.drawLinieVAlpha( xp, yp, zh, cf );
 }
 
@@ -628,7 +629,7 @@ bool AlphabetArray::addAlphabet( Alphabet *alphabet ) // F
 {
     if( This )
     {
-        if( This->getSchriftgröße() == alphabet->getSchriftgröße() )
+        if( This->getSchriftSize() == alphabet->getSchriftSize() )
         {
             alphabet->release();
             return false;
@@ -648,7 +649,7 @@ bool AlphabetArray::removeAlphabet( int sg ) // entfernt ein Alphabet
 {
     if( This )
     {
-        if( This->getSchriftgröße() == sg )
+        if( This->getSchriftSize() == sg )
             This = This->release();
         return 1;
     }
@@ -664,12 +665,12 @@ bool AlphabetArray::removeAlphabet( int sg ) // entfernt ein Alphabet
     return 0;
 }
 
-void AlphabetArray::setDrawSchriftGröße( int sg ) // Setzt die Draw Schriftgröße aller Alphabete
+void AlphabetArray::setDrawSchriftSize( int sg ) // Setzt die Draw Schriftgröße aller Alphabete
 {
     if( This )
-        This->setDrawSchriftgröße( sg );
+        This->setDrawSchriftSize( sg );
     if( next )
-        next->setDrawSchriftGröße( sg );
+        next->setDrawSchriftSize( sg );
 }
 
 void AlphabetArray::setZeilenAbstand( int za ) // setzt den Zeilenabstant aller Alphabete
@@ -690,7 +691,7 @@ Alphabet *AlphabetArray::getAlphabet( unsigned char sg ) const // gibt getThis v
 {
     if( !This )
         return 0;
-    if( This->getSchriftgröße() == sg )
+    if( This->getSchriftSize() == sg )
         return This->getThis();
     if( next )
         return next->getAlphabet( sg );
@@ -701,7 +702,7 @@ Alphabet *AlphabetArray::zAlphabet( unsigned char sg ) const // gibt ein Alphabe
 {
     if( !This )
         return 0;
-    if( This->getSchriftgröße() == sg )
+    if( This->getSchriftSize() == sg )
         return This;
     if( next )
         return next->zAlphabet( sg );
@@ -736,7 +737,7 @@ AlphabetArray *AlphabetArray::getNext() const // gibt das n
 Schrift::Schrift()
     : alphabetAnzahl( 0 ),
     alphabet( new AlphabetArray() ),
-    schriftGröße( 12 ),
+    schriftSize( 12 ),
     zeilenAbstand( 5 ),
     drawPos( 0, 0 ),
     ref( 1 )
@@ -768,7 +769,7 @@ bool Schrift::addAlphabet( Alphabet *alphabet ) // F
     if( this->alphabet->addAlphabet( alphabet ) )
     {
         ++alphabetAnzahl;
-        alphabet->setDrawSchriftgröße( schriftGröße );
+        alphabet->setDrawSchriftSize( schriftSize );
         unlock();
         return true;
     }
@@ -799,11 +800,11 @@ void Schrift::setDrawPosition( Punkt &pos )
     unlock();
 }
 
-void Schrift::setSchriftGröße( int sg ) // setzt die Schriftgröße
+void Schrift::setSchriftSize( int sg ) // setzt die Schriftgröße
 {
     lock();
-    schriftGröße = sg;
-    alphabet->setDrawSchriftGröße( sg );
+    schriftSize = sg;
+    alphabet->setDrawSchriftSize( sg );
     unlock();
 }
 
@@ -815,39 +816,39 @@ void Schrift::setZeilenAbstand( int za ) // setzt den Zeilenabstand
     unlock();
 }
 
-void Schrift::textFormatieren( Text *zText, int maxBreite, int schriftGröße ) // fügt zeilenumbrüche ein
+void Schrift::textFormatieren( Text *zText, int maxBreite, int schriftSize ) // fügt zeilenumbrüche ein
 {
     lock();
-    Alphabet *drawAlphabet = alphabet->zAlphabet( schriftGröße );
+    Alphabet *drawAlphabet = alphabet->zAlphabet( (unsigned char)schriftSize );
     if( !drawAlphabet )
     {
         for( int i = 0; i < 256; ++i )
         {
-            drawAlphabet = alphabet->zAlphabet( schriftGröße - i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize - i ) );
             if( drawAlphabet )
                 break;
-            drawAlphabet = alphabet->zAlphabet( schriftGröße + i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize + i ) );
             if( drawAlphabet )
                 break;
         }
     }
     if( drawAlphabet )
-        drawAlphabet->textFormatieren( zText, maxBreite, schriftGröße );
+        drawAlphabet->textFormatieren( zText, maxBreite, schriftSize );
     unlock();
 }
 
 void Schrift::renderText( Text *zTxt, Bild &zRObj, int f ) // zeichnet txt nach zRObj
 {
     lock();
-    Alphabet *drawAlphabet = alphabet->zAlphabet( schriftGröße );
+    Alphabet *drawAlphabet = alphabet->zAlphabet( (unsigned char)schriftSize );
     if( !drawAlphabet )
     {
         for( int i = 0; i < 256; ++i )
         {
-            drawAlphabet = alphabet->zAlphabet( schriftGröße - i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize - i ) );
             if( drawAlphabet )
                 break;
-            drawAlphabet = alphabet->zAlphabet( schriftGröße + i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize + i ) );
             if( drawAlphabet )
                 break;
         }
@@ -863,15 +864,15 @@ void Schrift::renderText( Text *zTxt, Bild &zRObj, int f ) // zeichnet txt nach
 void Schrift::renderText( Text *zTxt, Bild &zRObj, int cpos, int cf, int fbeg, int ff, int f )
 {
     lock();
-    Alphabet *drawAlphabet = alphabet->zAlphabet( schriftGröße );
+    Alphabet *drawAlphabet = alphabet->zAlphabet( (unsigned char)schriftSize );
     if( !drawAlphabet )
     {
         for( int i = 0; i < 256; ++i )
         {
-            drawAlphabet = alphabet->zAlphabet( schriftGröße - i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize - i ) );
             if( drawAlphabet )
                 break;
-            drawAlphabet = alphabet->zAlphabet( schriftGröße + i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize + i ) );
             if( drawAlphabet )
                 break;
         }
@@ -887,12 +888,12 @@ void Schrift::renderText( Text *zTxt, Bild &zRObj, int cpos, int cf, int fbeg, i
 // constant 
 Alphabet *Schrift::getAlphabet( int sg ) const // gibt einen Alphaberarray zurück
 {
-    return alphabet->getAlphabet( sg );
+    return alphabet->getAlphabet( (unsigned char)sg );
 }
 
 Alphabet *Schrift::zAlphabet( int sg ) const
 {
-    return alphabet->zAlphabet( sg );
+    return alphabet->zAlphabet( (unsigned char)sg );
 }
 
 Alphabet *Schrift::getAlphabetI( int index ) const
@@ -910,9 +911,9 @@ unsigned char Schrift::getAlphabetAnzahl() const // gibt die anzahl von in der S
     return alphabetAnzahl;
 }
 
-int Schrift::getSchriftGröße() const // gibt die Schriftgröße zurück
+int Schrift::getSchriftSize() const // gibt die Schriftgröße zurück
 {
-    return schriftGröße;
+    return schriftSize;
 }
 
 int Schrift::getZeilenabstand() const // gibt den Zeilenabstand zurück
@@ -937,15 +938,15 @@ const Punkt &Schrift::getDrawPosition() const
 
 int Schrift::getTextBreite( Text *zTxt ) const // gibt die Breite des Textes zurück
 {
-    Alphabet *drawAlphabet = alphabet->zAlphabet( schriftGröße );
+    Alphabet *drawAlphabet = alphabet->zAlphabet( (unsigned char)schriftSize );
     if( !drawAlphabet )
     {
         for( int i = 0; i < 256; ++i )
         {
-            drawAlphabet = alphabet->zAlphabet( schriftGröße - i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize - i ) );
             if( drawAlphabet )
                 break;
-            drawAlphabet = alphabet->zAlphabet( schriftGröße + i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize + i ) );
             if( drawAlphabet )
                 break;
         }
@@ -955,37 +956,37 @@ int Schrift::getTextBreite( Text *zTxt ) const // gibt die Breite des Textes zur
     return drawAlphabet->getTextBreite( zTxt );
 }
 
-int Schrift::getTextHöhe( Text *zTxt ) const // gibt die Höhe des Textes zurück
+int Schrift::getTextHeight( Text *zTxt ) const // gibt die Höhe des Textes zurück
 {
-    Alphabet *drawAlphabet = alphabet->zAlphabet( schriftGröße );
+    Alphabet *drawAlphabet = alphabet->zAlphabet( (unsigned char)schriftSize );
     if( !drawAlphabet )
     {
         for( int i = 0; i < 256; ++i )
         {
-            drawAlphabet = alphabet->zAlphabet( schriftGröße - i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize - i ) );
             if( drawAlphabet )
                 break;
-            drawAlphabet = alphabet->zAlphabet( schriftGröße + i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize + i ) );
             if( drawAlphabet )
                 break;
         }
     }
     if( !drawAlphabet )
         return 0;
-    return drawAlphabet->getTextHöhe( zTxt );
+    return drawAlphabet->getTextHeight( zTxt );
 }
 
 int Schrift::textPos( Text *zTxt, int mausX, int mausY ) const // gibt den Buchstaben zurück, auf den die Maus zeigt
 {
-    Alphabet *drawAlphabet = alphabet->zAlphabet( schriftGröße );
+    Alphabet *drawAlphabet = alphabet->zAlphabet( (unsigned char)schriftSize );
     if( !drawAlphabet )
     {
         for( int i = 0; i < 256; ++i )
         {
-            drawAlphabet = alphabet->zAlphabet( schriftGröße - i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize - i ) );
             if( drawAlphabet )
                 break;
-            drawAlphabet = alphabet->zAlphabet( schriftGröße + i );
+            drawAlphabet = alphabet->zAlphabet( (unsigned char)( schriftSize + i ) );
             if( drawAlphabet )
                 break;
         }

+ 27 - 26
Schrift.h

@@ -19,10 +19,10 @@ namespace Framework
     class Buchstabe
     {
     private:
-        Punkt größe;
+        Punkt size;
         Punkt pos;
         unsigned char *alpha;
-        int schriftGröße;
+        int schriftSize;
         int drawSg;
         int ref;
 
@@ -33,8 +33,8 @@ namespace Framework
         __declspec( dllexport ) ~Buchstabe();
 
         // Erstellt einen neuen Buchstaben mit bestimmter Größe
-        //  größe: Die Größe des Buchstabens in Pixel
-        __declspec( dllexport ) void NeuBuchstabe( Punkt &größe );
+        //  size: Die Größe des Buchstabens in Pixel
+        __declspec( dllexport ) void NeuBuchstabe( Punkt &size );
         // Setzt den Alphawert eines bestimmten Pixels
         //  pos: Die position des Pixels
         //  alpha: Der Wert des Pixels
@@ -57,21 +57,21 @@ namespace Framework
         __declspec( dllexport ) void setPosition( int x, int y );
         // Setzt die Schriftgröße, zu der der Buchstabe gehört
         //  sg: Die Schriftgröße des Buchstabens. Wenn der Buchstabe in einer anderen größe gezeichnet werden soll, wird automatisch skalliert
-        __declspec( dllexport ) void setSchriftGröße( int sg );
+        __declspec( dllexport ) void setSchriftSize( int sg );
         // Setzt die Schriftgröße, in der der Buchstabe gezeichnet werden soll
         //  dsg: Die Schriftgröße, in der der Buchstabe gezeichnet werden soll. Ist die ungleich der Schriftgröße, zu der der Buchstabe gehört, so wird automatisch skalliert.
-        __declspec( dllexport ) void setDrawSchriftGröße( int dsg );
+        __declspec( dllexport ) void setDrawSchriftSize( int dsg );
 
         // Gibt die alpha Werte des Buchstabens als array zurück wobei die werte Zeilenweise hintereinander stehen
         __declspec( dllexport ) unsigned char *getBuff() const;
         // Gibt die Größe des Buchstabens in Pixeln nicht skalliert zurück.
-        __declspec( dllexport ) const Punkt &getGröße() const;
+        __declspec( dllexport ) const Punkt &getSize() const;
         // Gibt die Breite des Buchstabens in Pixeln zurück (Der Wert wurde bereits mit der Draw Schriftgröße skalliert)
         __declspec( dllexport ) int getBreite() const;
         // Gibt die Höhe des Buchstabens in Pixeln zurück (Der Wert wurde bereits mit der Draw Schriftgröße skalliert)
-        __declspec( dllexport ) int getHöhe() const;
+        __declspec( dllexport ) int getHeight() const;
         // Gibt die nicht skallierte Höhe des Buchstabens in Pixeln zurück
-        __declspec( dllexport ) int getNormHöhe() const;
+        __declspec( dllexport ) int getNormHeight() const;
         // Zeichnet den Buchstaben in ein bestimmtes Bild
         // Nutze (setPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
         //  zRObj: Das Bild, in den der Buchstabe gezeichnet werden soll
@@ -92,10 +92,10 @@ namespace Framework
     {
     private:
         Buchstabe **zeichen;
-        int schriftGröße;
-        int drawSchriftGröße;
+        int schriftSize;
+        int drawSchriftSize;
         Punkt pos;
-        int zeilenHöhe;
+        int zeilenHeight;
         int zeilenAbstand;
         int ref;
 
@@ -114,10 +114,10 @@ namespace Framework
         __declspec( dllexport ) void setBuchstabe( unsigned char i, Buchstabe *buchstabe );
         // Setzt die Schriftgröße des Alphabets und die der gespeicherten buchstaben
         //  gr: Die Schriftgröße des Alphabets
-        __declspec( dllexport ) void setSchriftgröße( int gr );
+        __declspec( dllexport ) void setSchriftSize( int gr );
         // Setzt die Schriftgröße, in der die gespeicherten Buchstaben gezeichnet werden sollen.
         //  gr: Die Zeichen Schriftgröße. Wenn sie ungleich der Schriftgröße des Alphabets ist, wird automatisch skalliert
-        __declspec( dllexport ) void setDrawSchriftgröße( int gr );
+        __declspec( dllexport ) void setDrawSchriftSize( int gr );
         // Setzt den Zeilenabstand beim Zeichnen eines Textes
         //  za: Der Abschtand zum unteren Ende der Zeile darüber in Pixeln
         __declspec( dllexport ) void setZeilenAbstand( int za );
@@ -142,13 +142,13 @@ namespace Framework
         //  return: (true), wenn ein Zeichen zu dem Code gefunden wurde. (false) sonnst
         __declspec( dllexport ) bool hatBuchstabe( unsigned char b ) const;
         // Gibt die Schriftgröße zurück, deren Zeichen in diesem Alphabet gespeichert werden
-        __declspec( dllexport ) int getSchriftgröße() const;
+        __declspec( dllexport ) int getSchriftSize() const;
         // Gibt die Schriftgröße zurück, in der die gespeicherten Zeichen gezeichnet werden
-        __declspec( dllexport ) int getDrawSchriftGröße() const;
+        __declspec( dllexport ) int getDrawSchriftSize() const;
         // Gibt den Abstand in Pixeln zum unteren Ende der darüber ligenden Zeile zurück
         __declspec( dllexport ) int getZeilenAbstand() const;
         // Gibt die skallierte Höhe zurück, die eine gezeichnete Zeile in Pixeln benötigt
-        __declspec( dllexport ) int getZeilenHöhe() const;
+        __declspec( dllexport ) int getZeilenHeight() const;
         // gibt die Position zurück, an der der erste Buchstabe gezeichnet wird
         __declspec( dllexport ) const Punkt &getPosition() const;
         // Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text vollständig darzustellen
@@ -156,7 +156,7 @@ namespace Framework
         __declspec( dllexport ) int getTextBreite( Text *zTxt ) const;
         // Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text vollständig darzustellen
         //  zTxt: Der Text, von dem die Höhe in Pixeln ermitelt werden soll
-        __declspec( dllexport ) int getTextHöhe( Text *zTxt ) const;
+        __declspec( dllexport ) int getTextHeight( Text *zTxt ) const;
         // Ermittelt das Zeichen im Text, auf das die Maus zeigt
         //  zTxt: Der Text, auf den die Maus Zeigt
         //  mausX: Die X Position der Maus in Pixeln Relativ zur Position des ersten Zeichens
@@ -165,7 +165,8 @@ namespace Framework
         // Fügt Zeilenumbrüche in den Text ein, so dass er bei einer vorgegebenen Breite follständig angezeigt wird
         //  zText: Der text, in den die Zeilenumbrüche eingefügt werden sollen
         //  maxBreite: Die Breite in Pixeln auf der der Text follständig angezeigt werden soll
-        __declspec( dllexport ) void textFormatieren( Text *zText, int maxBreite, int schriftGröße );
+		//  schriftSize: Die Schriftgröße, in der der Text passend dargestellt werden soll
+        __declspec( dllexport ) void textFormatieren( Text *zText, int maxBreite, int schriftSize );
         // Zeichnet einen Bestimmten Text auf ein Bild
         // Nutze (setDrawPosition) und (setDrawSchriftGröße) um die Position und die Größe zu verändern
         //  zText: Der Text, der gezeichnet werden soll
@@ -216,7 +217,7 @@ namespace Framework
         __declspec( dllexport ) bool removeAlphabet( int sg );
         // Setzt die Schriftgröße, in der gezeichnet werden soll
         //  sg: Die Schriftgröße
-        __declspec( dllexport ) void setDrawSchriftGröße( int sg );
+        __declspec( dllexport ) void setDrawSchriftSize( int sg );
         // Setzt den Zeilenabstand, der zum zeichnen verwendet werden soll
         //  za: Der Zeilenabstand zum unteren Ende der darüber liegenden zeile in Pixeln
         __declspec( dllexport ) void setZeilenAbstand( int za );
@@ -251,7 +252,7 @@ namespace Framework
     private:
         unsigned char alphabetAnzahl;
         AlphabetArray *alphabet;
-        int schriftGröße;
+        int schriftSize;
         int zeilenAbstand;
         Punkt drawPos;
         CRITICAL_SECTION cs;
@@ -286,15 +287,15 @@ namespace Framework
         __declspec( dllexport ) void setDrawPosition( Punkt &pos );
         // Setzt die Schriftgröße, in der gezeichnet werden soll. Die Schrift wählt automatisch das passende Alphabet zum Zeichnen
         //  sg: Die Schriftgröße
-        __declspec( dllexport ) void setSchriftGröße( int sg );
+        __declspec( dllexport ) void setSchriftSize( int sg );
         // Setzt den Zeilenabstand, der zum zeichnen verwendet werden soll
         //  za: Der Zeilenabstand zum unteren Ende der darüber liegenden zeile in Pixeln
         __declspec( dllexport ) void setZeilenAbstand( int za );
         // Fügt Zeilenumbrüche in den Text ein, so dass er bei einer vorgegebenen Breite follständig angezeigt wird
         //  zText: Der text, in den die Zeilenumbrüche eingefügt werden sollen
         //  maxBreite: Die Breite in Pixeln auf der der Text follständig angezeigt werden soll
-        //  schriftGröße: Die Schriftgröße, die verwendet werden soll
-        __declspec( dllexport ) void textFormatieren( Text *zText, int maxBreite, int schriftGröße );
+        //  schriftSize: Die Schriftgröße, die verwendet werden soll
+        __declspec( dllexport ) void textFormatieren( Text *zText, int maxBreite, int schriftSize );
         // Zeichnet einen Bestimmten Text auf ein Bild
         // Nutze (setDrawPosition) und (setSchriftGröße) um die Position und die Größe zu verändern
         //  zText: Der Text, der gezeichnet werden soll
@@ -330,7 +331,7 @@ namespace Framework
         // Gibt zurück, wie viele Alphabete (und damit Schriftgrößen) in der Schrift enthalten sind
         __declspec( dllexport ) unsigned char getAlphabetAnzahl() const;
         // Gibt die Schriftgröße zurück, die zum Zeichnen verwendet wird
-        __declspec( dllexport ) int getSchriftGröße() const;
+        __declspec( dllexport ) int getSchriftSize() const;
         // Gibt den Abstand in Pixeln zum unteren Ende der darüber ligenden Zeile zurück
         __declspec( dllexport ) int getZeilenabstand() const;
         // Gibt die x Koordinate des ersten Zeichens, dass gezeichnet wird, in Pixeln zurück
@@ -344,7 +345,7 @@ namespace Framework
         __declspec( dllexport ) int getTextBreite( Text *zTxt ) const;
         // Ermittelt, wie viele Pixel benötigt werden, um einen Bestimmten Text vollständig darzustellen
         //  zTxt: Der Text, von dem die Höhe in Pixeln ermitelt werden soll
-        __declspec( dllexport ) int getTextHöhe( Text *zTxt ) const;
+        __declspec( dllexport ) int getTextHeight( Text *zTxt ) const;
         // Ermittelt das Zeichen im Text, auf das die Maus zeigt
         //  zTxt: Der Text, auf den die Maus Zeigt
         //  mausX: Die X Position der Maus in Pixeln Relativ zur Position des ersten Zeichens

+ 44 - 36
Scroll.cpp

@@ -65,9 +65,9 @@ void ScrollBar::setKlickScroll( int ks )
     rend = 1;
 }
 
-void ScrollBar::scroll( int höhe )
+void ScrollBar::scroll( int height )
 {
-    data->scrollPos = höhe;
+    data->scrollPos = height;
     if( data->scrollPos > data->max - data->anzeige )
         data->scrollPos = data->max - data->anzeige;
     if( data->scrollPos < 0 )
@@ -150,9 +150,13 @@ VScrollBar::VScrollBar()
     : ScrollBar()
 {}
 
-bool VScrollBar::doMausMessage( int x, int y, int br, int hö, MausEreignis &me )
+// Destruktor 
+VScrollBar::~VScrollBar()
+{}
+
+bool VScrollBar::doMausMessage( int x, int y, int br, int hi, MausEreignis &me )
 {
-    bool ret = me.mx >= x && me.mx <= x + br && me.my >= y && me.my <= y + hö;
+    bool ret = me.mx >= x && me.mx <= x + br && me.my >= y && me.my <= y + hi;
     knopfdruck = 0;
     if( me.verarbeitet )
     {
@@ -195,13 +199,13 @@ bool VScrollBar::doMausMessage( int x, int y, int br, int h
                 knopfdruck = 1;
                 data->scrollPos -= klickScroll;
             }
-            else if( my > hö - br )
+            else if( my > hi - br )
             {
                 knopfdruck = 2;
                 data->scrollPos += klickScroll;
             }
             else
-                data->scrollPos = (int)( ( data->max / ( hö - 2.0 * br ) ) * ( my - br ) ) - data->anzeige / 2;
+                data->scrollPos = (int)( ( data->max / ( hi - 2.0 * br ) ) * ( my - br ) ) - data->anzeige / 2;
             if( data->scrollPos > data->max - data->anzeige )
                 data->scrollPos = data->max - data->anzeige;
             if( data->scrollPos < 0 )
@@ -212,30 +216,30 @@ bool VScrollBar::doMausMessage( int x, int y, int br, int h
     return ret;
 }
 
-void VScrollBar::render( int x, int y, int br, int hö, Bild &zRObj ) const
+void VScrollBar::render( int x, int y, int br, int hi, Bild &zRObj ) const
 {
     if( bg )
-        zRObj.alphaRegion( x, y, br, hö, bgFarbe );
+        zRObj.alphaRegion( x, y, br, hi, bgFarbe );
     --br;
-    --hö;
+    --hi;
     zRObj.drawLinieH( x, y, br + 1, farbe );
-    zRObj.drawLinieH( x, y + hö, br + 1, farbe );
-    zRObj.drawLinieV( x, y + 1, hö - 1, farbe );
-    zRObj.drawLinieV( x + br, y + 1, hö - 1, farbe );
+    zRObj.drawLinieH( x, y + hi, br + 1, farbe );
+    zRObj.drawLinieV( x, y + 1, hi - 1, farbe );
+    zRObj.drawLinieV( x + br, y + 1, hi - 1, farbe );
     zRObj.drawLinieH( x + 1, y + br, br - 1, farbe );
-    zRObj.drawLinieH( x + 1, y + hö - br, br - 1, farbe );
+    zRObj.drawLinieH( x + 1, y + hi - br, br - 1, farbe );
     ++br;
-    ++hö;
-    int st = (int)( data->scrollPos / ( data->max / ( hö - br * 2.0 ) ) );
-    int end = (int)( ( hö - 2.0 * br ) / ( (double)data->max / data->anzeige ) );
+    ++hi;
+    int st = (int)( data->scrollPos / ( data->max / ( hi - br * 2.0 ) ) );
+    int end = (int)( ( hi - 2.0 * br ) / ( (double)data->max / data->anzeige ) );
     if( data->scrollPos > data->max - data->anzeige )
         data->scrollPos = data->max - data->anzeige;
     if( data->scrollPos < 0 )
     {
         data->scrollPos = 0;
-        end = hö - br * 2;
+        end = hi - br * 2;
     }
-    zRObj.füllRegion( x + 1, y + br + st, br - 1, end, farbe );
+    zRObj.fillRegion( x + 1, y + br + st, br - 1, end, farbe );
 }
 
 ScrollBar *VScrollBar::release()
@@ -252,10 +256,14 @@ HScrollBar::HScrollBar()
     : ScrollBar()
 {}
 
+// Destruktor 
+HScrollBar::~HScrollBar()
+{}
+
 // nicht constant
-bool HScrollBar::doMausMessage( int x, int y, int br, int hö, MausEreignis &me )
+bool HScrollBar::doMausMessage( int x, int y, int br, int hi, MausEreignis &me )
 {
-    bool ret = me.mx >= x && me.mx <= x + br && me.my >= y && me.my <= y + hö;
+    bool ret = me.mx >= x && me.mx <= x + br && me.my >= y && me.my <= y + hi;
     knopfdruck = 0;
     if( me.verarbeitet )
     {
@@ -293,18 +301,18 @@ bool HScrollBar::doMausMessage( int x, int y, int br, int h
     {
         if( mx >= 0 && my >= 0 )
         {
-            if( mx < hö )
+            if( mx < hi )
             {
                 knopfdruck = 1;
                 data->scrollPos -= klickScroll;
             }
-            else if( mx > br - hö )
+            else if( mx > br - hi )
             {
                 knopfdruck = 2;
                 data->scrollPos += klickScroll;
             }
             else
-                data->scrollPos = (int)( ( data->max / ( br - 2.0 * hö ) ) * ( mx - hö ) ) - data->anzeige / 2;
+                data->scrollPos = (int)( ( data->max / ( br - 2.0 * hi ) ) * ( mx - hi ) ) - data->anzeige / 2;
             if( data->scrollPos > data->max - data->anzeige )
                 data->scrollPos = data->max - data->anzeige;
             if( data->scrollPos < 0 )
@@ -315,30 +323,30 @@ bool HScrollBar::doMausMessage( int x, int y, int br, int h
     return ret;
 }
 
-void HScrollBar::render( int x, int y, int br, int hö, Bild &zRObj ) const
+void HScrollBar::render( int x, int y, int br, int hi, Bild &zRObj ) const
 {
     if( bg )
-        zRObj.alphaRegion( x, y, br, hö, bgFarbe );
+        zRObj.alphaRegion( x, y, br, hi, bgFarbe );
     --br;
-    --hö;
-    zRObj.drawLinieV( x, y, hö + 1, farbe );
-    zRObj.drawLinieV( x + br, y, hö + 1, farbe );
+    --hi;
+    zRObj.drawLinieV( x, y, hi + 1, farbe );
+    zRObj.drawLinieV( x + br, y, hi + 1, farbe );
     zRObj.drawLinieH( x + 1, y, br - 1, farbe );
-    zRObj.drawLinieH( x + 1, y + hö, br - 1, farbe );
-    zRObj.drawLinieV( x + hö, y + 1, hö - 1, farbe );
-    zRObj.drawLinieV( x + br - hö, y + 1, hö - 1, farbe );
+    zRObj.drawLinieH( x + 1, y + hi, br - 1, farbe );
+    zRObj.drawLinieV( x + hi, y + 1, hi - 1, farbe );
+    zRObj.drawLinieV( x + br - hi, y + 1, hi - 1, farbe );
     ++br;
-    ++hö;
-    int st = (int)( data->scrollPos / ( data->max / ( br - hö * 2.0 ) ) );
-    int end = (int)( ( br - 2.0 * hö ) / ( (double)data->max / data->anzeige ) );
+    ++hi;
+    int st = (int)( data->scrollPos / ( data->max / ( br - hi * 2.0 ) ) );
+    int end = (int)( ( br - 2.0 * hi ) / ( (double)data->max / data->anzeige ) );
     if( data->scrollPos > data->max - data->anzeige )
         data->scrollPos = data->max - data->anzeige;
     if( data->scrollPos < 0 )
     {
         data->scrollPos = 0;
-        end = br - hö * 2;
+        end = br - hi * 2;
     }
-    zRObj.füllRegion( x + hö + st, y + 1, end, hö - 1, farbe );
+    zRObj.fillRegion( x + hi + st, y + 1, end, hi - 1, farbe );
 }
 
 ScrollBar *HScrollBar::release()

+ 17 - 13
Scroll.h

@@ -34,7 +34,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) ScrollBar();
         // Destruktor 
-        __declspec( dllexport ) ~ScrollBar();
+        __declspec( dllexport ) virtual ~ScrollBar();
         // Setzt die Fordergrundfarbe der Scrollbar
         //  fc: Die Farbe in A8R8G8B8 Format
         __declspec( dllexport ) void setFarbe( int fc );
@@ -56,18 +56,18 @@ namespace Framework
         //  x: Die X Position der Scroll Bar im Fenster
         //  y: Die Y Position der Scroll Bar im Fenster
         //  br: Die Breite der Scroll Bar
-        //  hö: Die Höhe der Scroll Bar
+        //  hi: Die Höhe der Scroll Bar
         //  return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
-        __declspec( dllexport ) virtual bool doMausMessage( int x, int y, int br, int hö, MausEreignis &me ) = 0;
+        __declspec( dllexport ) virtual bool doMausMessage( int x, int y, int br, int hi, MausEreignis &me ) = 0;
         // Gibt zurück, ob sich die Scrollbar seit dem letzten Aufruf der Funktion verändert hat
         __declspec( dllexport ) bool getRend();
         // Zeichnet die Scrollbar
         //  x: Die X Position der Scroll Bar
         //  y: Die Y Position der Scroll Bar
         //  br: Die Breite der Scroll Bar
-        //  hö: Die Höhe der Scroll Bar
+        //  hi: Die Höhe der Scroll Bar
         //  zRObj: Das Bild, in das gezeichnet werden soll
-        __declspec( dllexport ) virtual void render( int x, int y, int br, int hö, Bild &zRObj ) const = 0;
+        __declspec( dllexport ) virtual void render( int x, int y, int br, int hi, Bild &zRObj ) const = 0;
         // Gibt einen zeiger auf die Scroll Daten zurück
         __declspec( dllexport ) ScrollData *getScrollData() const;
         // Gibt die Scroll geschwindigkeit zurück. Die Anzahl der gescrollten Pixel pro Klick
@@ -92,20 +92,22 @@ namespace Framework
     public:
         // Konstruktor 
         __declspec( dllexport ) VScrollBar();
+		// Destruktor 
+		__declspec( dllexport ) virtual ~VScrollBar();
         // Verarbeitet ein Maus Ereignis
         //  x: Die X Position der Scroll Bar im Fenster
         //  y: Die Y Position der Scroll Bar im Fenster
         //  br: Die Breite der Scroll Bar
-        //  hö: Die Höhe der Scroll Bar
+        //  hi: Die Höhe der Scroll Bar
         //  return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
-        __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hö, MausEreignis &me ) override;
+        __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hi, MausEreignis &me ) override;
         // Zeichnet die Scrollbar
         //  x: Die X Position der Scroll Bar
         //  y: Die Y Position der Scroll Bar
         //  br: Die Breite der Scroll Bar
-        //  hö: Die Höhe der Scroll Bar
+        //  hi: Die Höhe der Scroll Bar
         //  zRObj: Das Bild, in das gezeichnet werden soll
-        __declspec( dllexport ) void render( int x, int y, int br, int hö, Bild &zRObj ) const override;
+        __declspec( dllexport ) void render( int x, int y, int br, int hi, Bild &zRObj ) const override;
         // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
         //  return: 0.
         __declspec( dllexport ) ScrollBar *release() override;
@@ -117,20 +119,22 @@ namespace Framework
     public:
         // Konstruktor 
         __declspec( dllexport ) HScrollBar();
+		// Destruktor 
+		__declspec( dllexport ) virtual ~HScrollBar();
         // Verarbeitet ein Maus Ereignis
         //  x: Die X Position der Scroll Bar im Fenster
         //  y: Die Y Position der Scroll Bar im Fenster
         //  br: Die Breite der Scroll Bar
-        //  hö: Die Höhe der Scroll Bar
+        //  hi: Die Höhe der Scroll Bar
         //  return: 1, falls die Nachricht verarbeitet wurde. Setzt dafür nicht den verarbeitet flag des Maus Ereignisses
-        __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hö, MausEreignis &me ) override;
+        __declspec( dllexport ) bool doMausMessage( int x, int y, int br, int hi, MausEreignis &me ) override;
         // Zeichnet die Scrollbar
         //  x: Die X Position der Scroll Bar
         //  y: Die Y Position der Scroll Bar
         //  br: Die Breite der Scroll Bar
-        //  hö: Die Höhe der Scroll Bar
+        //  hi: Die Höhe der Scroll Bar
         //  zRObj: Das Bild, in das gezeichnet werden soll
-        __declspec( dllexport ) void render( int x, int y, int br, int hö, Bild &zRObj ) const override;
+        __declspec( dllexport ) void render( int x, int y, int br, int hi, Bild &zRObj ) const override;
         // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Objekt automatisch gelöscht.
         //  return: 0.
         __declspec( dllexport ) ScrollBar *release() override;

+ 12 - 12
Shader.cpp

@@ -18,7 +18,7 @@ Shader::Shader()
     for( int i = 0; i < 14; i++ )
     {
         constBuffers[ i ] = 0;
-        buffLän[ i ] = 0;
+        buffLen[ i ] = 0;
     }
     buffAnz = 0;
     ref = 1;
@@ -44,14 +44,14 @@ bool Shader::ladeAusDatei( const char *pfad )
 {
     Datei d;
     d.setDatei( pfad );
-    __int64 gr = d.getGröße();
+    __int64 gr = d.getSize();
     if( gr > 10 * 1024 )
         return 0; // Datei zu groß für Shader Quellcode
-    shader->füllText( ' ', (int)gr );
-    if( !d.öffnen( Datei::Style::lesen ) )
+    shader->fillText( ' ', (int)gr );
+    if( !d.open( Datei::Style::lesen ) )
         return 0;
     d.lese( shader->getText(), (int)gr );
-    d.schließen();
+    d.close();
     return 1;
 }
 
@@ -76,7 +76,7 @@ bool Shader::compile( ID3D11Device *zD3d11Device, const char *einstiegsFunktion,
 #endif
     if( shaderBuffer )
         shaderBuffer->Release();
-    HRESULT result = D3DCompile( shader->getText(), shader->getLänge(), 0, 0, 0, einstiegsFunktion, type, flag, 0, &shaderBuffer, &errorMessage );
+    HRESULT result = D3DCompile( shader->getText(), shader->getLength(), 0, 0, 0, einstiegsFunktion, type, flag, 0, &shaderBuffer, &errorMessage );
     if( errorMessage )
     {
         char *err = (char*)errorMessage->GetBufferPointer();
@@ -116,18 +116,18 @@ bool Shader::erstelleConstBuffer( ID3D11Device *zD3d11Device, int gr
     {
         constBuffers[ index ]->Release();
         constBuffers[ index ] = 0;
-        buffLän[ index ] = 0;
+        buffLen[ index ] = 0;
     }
     HRESULT res = zD3d11Device->CreateBuffer( &bufferDesc, 0, &constBuffers[ index ] );
     if( res == S_OK )
-        buffLän[ index ] = größe;
+        buffLen[ index ] = größe;
     for( buffAnz = 0; buffAnz < 14 && constBuffers[ buffAnz ]; buffAnz++ );
     return res == S_OK;
 }
 
 // Löscht einen constanten Buffer
 //  index: der Index des Buffers, der gelöscht werden soll. Buffer 0 kann nicht gelöscht werden, solange Buffer 1 noch existiert usw.
-bool Shader::löscheConstBuffer( int index )
+bool Shader::removeConstBuffer( int index )
 {
     if( index < 0 || index >= 14 )
         return 0;
@@ -140,7 +140,7 @@ bool Shader::l
     {
         constBuffers[ index ]->Release();
         constBuffers[ index ] = 0;
-        buffLän[ index ] = 0;
+        buffLen[ index ] = 0;
     }
     for( buffAnz = 0; buffAnz < 14 && constBuffers[ buffAnz ]; buffAnz++ );
     return 1;
@@ -158,7 +158,7 @@ bool Shader::f
     if( !constBuffers[ index ] )
         return 0;
     if( län < 0 )
-        län = buffLän[ index ];
+        län = buffLen[ index ];
     D3D11_MAPPED_SUBRESOURCE mappedResource;
     HRESULT res = zD3d11Context->Map( constBuffers[ index ], 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource );
     if( res != S_OK )
@@ -174,7 +174,7 @@ int Shader::getConstBufferL
 {
     if( index < 0 || index >= 14 )
         return 0;
-    return buffLän[ index ];
+    return buffLen[ index ];
 }
 
 // Gibt den Shadertyp zurück

+ 6 - 6
Shader.h

@@ -28,7 +28,7 @@ namespace Framework
         ID3D10Blob *shaderBuffer;
         ShaderType type;
         ID3D11Buffer *constBuffers[ 14 ];
-        int buffLän[ 14 ];
+        int buffLen[ 14 ];
         int buffAnz;
         int ref;
 
@@ -56,18 +56,18 @@ namespace Framework
         // erstellt ein constanten Buffer, der constante daten an den Shader übergibt
         // es können maximal 14 Buffer erstellt werden
         //  zD3d11Device: Das Device, mit dem der Buffer erstellt werden soll
-        //  größe: Die größe des buffers in byte
+        //  size: Die größe des buffers in byte
         //  index: Die position des Buffers im Buffer Array. Bereits vorhanderner Buffer wird ersetzt. Buffer 1 kann nicht erstellt werden, wenn Buffer 0 noch nicht erstellt wurde usw.
-        bool erstelleConstBuffer( ID3D11Device *zD3d11Device, int größe, int index );
+        bool erstelleConstBuffer( ID3D11Device *zD3d11Device, int size, int index );
         // Löscht einen constanten Buffer
         //  index: der Index des Buffers, der gelöscht werden soll. Buffer 0 kann nicht gelöscht werden, solange Buffer 1 noch existiert usw.
-        bool löscheConstBuffer( int index );
+        bool removeConstBuffer( int index );
         // Kopiert daten in einen constanten buffer
         //  zD3d11Context: Das Context Objekt, das zum kopieren verwendt werden soll
         //  data: Einen zeiger auf en byte Array der größe des Buffers
         //  index: Der Index des Buffers
-        //  län: Die Länge der Daten in Bytes (-1 für die maximale größe des Buffers)
-        bool füllConstBuffer( ID3D11DeviceContext *zD3d11Context, char *data, int index, int län = -1 );
+        //  len: Die Länge der Daten in Bytes (-1 für die maximale größe des Buffers)
+        bool füllConstBuffer( ID3D11DeviceContext *zD3d11Context, char *data, int index, int len = -1 );
         // Gibt die Länge eines constanten Buffers zurück
         //  index: Der Index des Buffers
         int getConstBufferLänge( int index ) const;

+ 143 - 143
Tabelle.cpp

@@ -18,11 +18,11 @@ ObjTabelle::ObjTabelle()
     spaltenNamen( new RCArray< Text >() ),
     zeilenNamen( new RCArray< Text >() ),
     spaltenBreite( new Array< int >() ),
-    zeilenHöhe( new Array< int >() ),
+    zeilenHeight( new Array< int >() ),
     minSpaltenBreite( new Array< int >() ),
     maxSpaltenBreite( new Array< int >() ),
-    minZeilenHöhe( new Array< int >() ),
-    maxZeilenHöhe( new Array< int >() ),
+    minZeilenHeight( new Array< int >() ),
+    maxZeilenHeight( new Array< int >() ),
     spaltenAnzahl( 0 ),
     zeilenAnzahl( 0 ),
     klickSpalte( -1 ),
@@ -54,16 +54,16 @@ ObjTabelle::~ObjTabelle()
         zeilenNamen->release();
     if( spaltenBreite )
         spaltenBreite->release();
-    if( zeilenHöhe )
-        zeilenHöhe->release();
+    if( zeilenHeight )
+        zeilenHeight->release();
     if( minSpaltenBreite )
         minSpaltenBreite->release();
     if( maxSpaltenBreite )
         maxSpaltenBreite->release();
-    if( minZeilenHöhe )
-        minZeilenHöhe->release();
-    if( maxZeilenHöhe )
-        maxZeilenHöhe->release();
+    if( minZeilenHeight )
+        minZeilenHeight->release();
+    if( maxZeilenHeight )
+        maxZeilenHeight->release();
     if( aRam )
         aRam->release();
     if( aAf )
@@ -143,7 +143,7 @@ void ObjTabelle::addZeile( const char *name ) // Zeile Hinzuf
 {
     lockZeichnung();
     zeilenNamen->add( new Text( name ), zeilenAnzahl );
-    zeilenHöhe->add( 20 );
+    zeilenHeight->add( 20 );
     ++zeilenAnzahl;
     rend = 1;
     unlockZeichnung();
@@ -153,7 +153,7 @@ void ObjTabelle::addZeile( Text *name )
 {
     lockZeichnung();
     zeilenNamen->add( name, zeilenAnzahl );
-    zeilenHöhe->add( 20 );
+    zeilenHeight->add( 20 );
     ++zeilenAnzahl;
     rend = 1;
     unlockZeichnung();
@@ -165,9 +165,9 @@ void ObjTabelle::addZeile( int zNum, const char *name ) // Zeile bei zNum einf
         return;
     lockZeichnung();
     zeilenNamen->add( new Text( name ), zNum );
-    zeilenHöhe->add( 20, zNum );
-    minZeilenHöhe->add( 0, zNum );
-    maxZeilenHöhe->add( 100, zNum );
+    zeilenHeight->add( 20, zNum );
+    minZeilenHeight->add( 0, zNum );
+    maxZeilenHeight->add( 100, zNum );
     for( int i = 0; i < spaltenAnzahl; ++i )
     {
         if( zZeichnungs->z( i ) )
@@ -190,9 +190,9 @@ void ObjTabelle::addZeile( int zNum, Text *name )
         return;
     lockZeichnung();
     zeilenNamen->add( name, zNum );
-    zeilenHöhe->add( 20, zNum );
-    minZeilenHöhe->add( 0, zNum );
-    maxZeilenHöhe->add( 100, zNum );
+    zeilenHeight->add( 20, zNum );
+    minZeilenHeight->add( 0, zNum );
+    maxZeilenHeight->add( 100, zNum );
     for( int i = 0; i < spaltenAnzahl; ++i )
     {
         if( zZeichnungs->z( i ) )
@@ -214,18 +214,18 @@ void ObjTabelle::removeSpalte( int sNum ) // Spalte l
     if( sNum >= spaltenAnzahl )
         return;
     lockZeichnung();
-    zZeichnungs->lösche( sNum );
-    spaltenNamen->lösche( sNum );
-    spaltenBreite->lösche( sNum );
-    minSpaltenBreite->lösche( sNum );
-    maxSpaltenBreite->lösche( sNum );
+    zZeichnungs->remove( sNum );
+    spaltenNamen->remove( sNum );
+    spaltenBreite->remove( sNum );
+    minSpaltenBreite->remove( sNum );
+    maxSpaltenBreite->remove( sNum );
     if( msaRam->z( sNum ) )
         msaRam->z( sNum )->release();
-    msaRam->lösche( sNum );
+    msaRam->remove( sNum );
     if( msaAf->z( sNum ) )
         msaAf->z( sNum )->release();
-    msaAf->lösche( sNum );
-    styles->lösche( sNum );
+    msaAf->remove( sNum );
+    styles->remove( sNum );
     --spaltenAnzahl;
     rend = 1;
     unlockZeichnung();
@@ -246,20 +246,20 @@ void ObjTabelle::removeZeile( int zNum ) // Zeile l
     if( zNum >= zeilenAnzahl )
         return;
     lockZeichnung();
-    zeilenNamen->lösche( zNum );
-    zeilenHöhe->lösche( zNum );
-    minZeilenHöhe->lösche( zNum );
-    maxZeilenHöhe->lösche( zNum );
+    zeilenNamen->remove( zNum );
+    zeilenHeight->remove( zNum );
+    minZeilenHeight->remove( zNum );
+    maxZeilenHeight->remove( zNum );
     for( int i = 0; i < spaltenAnzahl; ++i )
     {
         if( zZeichnungs->z( i ) )
-            zZeichnungs->z( i )->lösche( zNum );
+            zZeichnungs->z( i )->remove( zNum );
         if( msaRam->z( i ) )
-            msaRam->z( i )->lösche( zNum );
+            msaRam->z( i )->remove( zNum );
         if( msaAf->z( i ) )
-            msaAf->z( i )->lösche( zNum );
+            msaAf->z( i )->remove( zNum );
         if( styles->z( i ) )
-            styles->z( i )->lösche( zNum );
+            styles->z( i )->remove( zNum );
     }
     --zeilenAnzahl;
     rend = 1;
@@ -290,27 +290,27 @@ void ObjTabelle::setSpaltePosition( int sNum, int pos )
 {
     if( sNum >= spaltenAnzahl || pos >= spaltenAnzahl || sNum == pos )
         return;
-    int löschPos = sNum;
+    int delPos = sNum;
     int insertPos = pos;
     if( pos < sNum )
-        ++löschPos;
+        ++delPos;
     else
         ++insertPos;
     lockZeichnung();
     zZeichnungs->add( zZeichnungs->get( sNum ), insertPos );
-    zZeichnungs->lösche( löschPos );
+    zZeichnungs->remove( delPos );
     spaltenNamen->add( spaltenNamen->get( sNum ), insertPos );
-    spaltenNamen->lösche( löschPos );
+    spaltenNamen->remove( delPos );
     spaltenBreite->add( spaltenBreite->hat( sNum ) ? spaltenBreite->get( sNum ) : 0, insertPos );
-    spaltenBreite->lösche( löschPos );
+    spaltenBreite->remove( delPos );
     minSpaltenBreite->add( minSpaltenBreite->hat( sNum ) ? minSpaltenBreite->get( sNum ) : 0, insertPos );
-    minSpaltenBreite->lösche( löschPos );
+    minSpaltenBreite->remove( delPos );
     msaRam->add( msaRam->z( sNum ), insertPos );
-    msaRam->lösche( löschPos );
+    msaRam->remove( delPos );
     msaAf->add( msaAf->z( sNum ), insertPos );
-    msaAf->lösche( löschPos );
+    msaAf->remove( delPos );
     styles->add( styles->get( sNum ), insertPos );
-    styles->lösche( löschPos );
+    styles->remove( delPos );
     rend = 1;
     unlockZeichnung();
 }
@@ -329,42 +329,42 @@ void ObjTabelle::setZeilePosition( int zNum, int pos )
 {
     if( zNum >= zeilenAnzahl || pos >= zeilenAnzahl || pos == zNum )
         return;
-    int löschPos = zNum;
+    int delPos = zNum;
     int insertPos = pos;
     if( pos < zNum )
-        ++löschPos;
+        ++delPos;
     else
         ++insertPos;
     lockZeichnung();
     zeilenNamen->add( zeilenNamen->get( zNum ), insertPos );
-    zeilenNamen->lösche( löschPos );
-    zeilenHöhe->add( zeilenHöhe->hat( zNum ) ? zeilenHöhe->get( zNum ) : 0, insertPos );
-    zeilenHöhe->lösche( löschPos );
-    minZeilenHöhe->add( minZeilenHöhe->hat( zNum ) ? minZeilenHöhe->get( zNum ) : 0, insertPos );
-    minZeilenHöhe->lösche( löschPos );
-    maxZeilenHöhe->add( maxZeilenHöhe->hat( zNum ) ? maxZeilenHöhe->get( zNum ) : 0, insertPos );
-    maxZeilenHöhe->lösche( löschPos );
+    zeilenNamen->remove( delPos );
+    zeilenHeight->add( zeilenHeight->hat( zNum ) ? zeilenHeight->get( zNum ) : 0, insertPos );
+    zeilenHeight->remove( delPos );
+    minZeilenHeight->add( minZeilenHeight->hat( zNum ) ? minZeilenHeight->get( zNum ) : 0, insertPos );
+    minZeilenHeight->remove( delPos );
+    maxZeilenHeight->add( maxZeilenHeight->hat( zNum ) ? maxZeilenHeight->get( zNum ) : 0, insertPos );
+    maxZeilenHeight->remove( delPos );
     for( int i = 0; i < spaltenAnzahl; ++i )
     {
         if( zZeichnungs->z( i ) )
         {
             zZeichnungs->z( i )->add( zZeichnungs->z( i )->hat( zNum ) ? zZeichnungs->z( i )->get( zNum ) : 0, insertPos );
-            zZeichnungs->z( i )->lösche( löschPos );
+            zZeichnungs->z( i )->remove( delPos );
         }
         if( msaRam->z( i ) )
         {
             msaRam->z( i )->add( msaRam->z( i )->z( zNum ) ? msaRam->z( i )->get( zNum ) : 0, insertPos );
-            msaRam->z( i )->lösche( löschPos );
+            msaRam->z( i )->remove( delPos );
         }
         if( msaAf->z( i ) )
         {
             msaAf->z( i )->add( msaAf->z( i )->z( zNum ) ? msaAf->z( i )->get( zNum ) : 0, insertPos );
-            msaAf->z( i )->lösche( löschPos );
+            msaAf->z( i )->remove( delPos );
         }
         if( styles->z( i ) )
         {
             styles->z( i )->add( styles->z( i )->hat( zNum ) ? styles->z( i )->get( zNum ) : 0, insertPos );
-            styles->z( i )->lösche( löschPos );
+            styles->z( i )->remove( delPos );
         }
     }
     rend = 1;
@@ -413,24 +413,24 @@ void ObjTabelle::setSpaltenBreite( Text *name, int br )
     setSpaltenBreite( getSpaltenNummer( name ), br );
 }
 
-void ObjTabelle::setZeilenHöhe( int zNum, int hö ) // setzt die Zeilenhöhe
+void ObjTabelle::setZeilenHeight( int zNum, int hi ) // setzt die Zeilenhöhe
 {
     if( zNum >= zeilenAnzahl )
         return;
     lockZeichnung();
-    zeilenHöhe->set( hö, zNum );
+    zeilenHeight->set( hi, zNum );
     rend = 1;
     unlockZeichnung();
 }
 
-void ObjTabelle::setZeilenHöhe( const char *name, int hö )
+void ObjTabelle::setZeilenHeight( const char *name, int hi )
 {
-    setZeilenHöhe( getZeilenNummer( name ), hö );
+    setZeilenHeight( getZeilenNummer( name ), hi );
 }
 
-void ObjTabelle::setZeilenHöhe( Text *name, int hö )
+void ObjTabelle::setZeilenHeight( Text *name, int hi )
 {
-    setZeilenHöhe( getZeilenNummer( name ), hö );
+    setZeilenHeight( getZeilenNummer( name ), hi );
 }
 
 void ObjTabelle::setMinSpaltenBreite( int sNum, int minBr ) // setzt die mindest Spaltenbreite
@@ -473,44 +473,44 @@ void ObjTabelle::setMaxSpaltenBreite( Text *name, int maxBr )
     setMaxSpaltenBreite( getSpaltenNummer( name ), maxBr );
 }
 
-void ObjTabelle::setMinZeilenHöhe( int zNum, int minHö ) // setzt die mindest Zeilenhöhe
+void ObjTabelle::setMinZeilenHeight( int zNum, int minHi ) // setzt die mindest Zeilenhöhe
 {
     if( zNum >= zeilenAnzahl )
         return;
     lockZeichnung();
-    minZeilenHöhe->set( minHö, zNum );
+    minZeilenHeight->set( minHi, zNum );
     rend = 1;
     unlockZeichnung();
 }
 
-void ObjTabelle::setMinZeilenHöhe( const char *name, int minHö )
+void ObjTabelle::setMinZeilenHeight( const char *name, int minHi )
 {
-    setMinZeilenHöhe( getZeilenNummer( name ), minHö );
+    setMinZeilenHeight( getZeilenNummer( name ), minHi );
 }
 
-void ObjTabelle::setMinZeilenHöhe( Text *name, int minHö )
+void ObjTabelle::setMinZeilenHeight( Text *name, int minHi )
 {
-    setMinZeilenHöhe( getZeilenNummer( name ), minHö );
+    setMinZeilenHeight( getZeilenNummer( name ), minHi );
 }
 
-void ObjTabelle::setMaxZeilenHöhe( int zNum, int maxHö ) // setzt die maximale Zeilenhöhe
+void ObjTabelle::setMaxZeilenHeight( int zNum, int maxHi ) // setzt die maximale Zeilenhöhe
 {
     if( zNum >= zeilenAnzahl )
         return;
     lockZeichnung();
-    maxZeilenHöhe->set( maxHö, zNum );
+    maxZeilenHeight->set( maxHi, zNum );
     rend = 1;
     unlockZeichnung();
 }
 
-void ObjTabelle::setMaxZeilenHöhe( const char *name, int maxHö )
+void ObjTabelle::setMaxZeilenHeight( const char *name, int maxHi )
 {
-    setMaxZeilenHöhe( getZeilenHöhe( name ), maxHö );
+    setMaxZeilenHeight( getZeilenHeight( name ), maxHi );
 }
 
-void ObjTabelle::setMaxZeilenHöhe( Text *name, int maxHö )
+void ObjTabelle::setMaxZeilenHeight( Text *name, int maxHi )
 {
-    setMaxZeilenHöhe( getZeilenHöhe( name ), maxHö );
+    setMaxZeilenHeight( getZeilenHeight( name ), maxHi );
 }
 
 void ObjTabelle::setAuswahl( int sNum, int zNum ) // wählt das entsprechnde Feld aus
@@ -586,11 +586,11 @@ void ObjTabelle::setAAfFarbe( int f ) // setzt die Farbe des auswahl AlphaFeldes
     rend = 1;
 }
 
-void ObjTabelle::setAAfStärke( int st ) // setzt die Stärke des auswahl AlphaFeldes
+void ObjTabelle::setAAfStrength( int st ) // setzt die Stärke des auswahl AlphaFeldes
 {
     if( !aAf )
         aAf = new AlphaFeld();
-    aAf->setStärke( st );
+    aAf->setStrength( st );
     rend = 1;
 }
 
@@ -703,7 +703,7 @@ void ObjTabelle::setAAfFarbe( Text *spaltenName, Text *zeilenName, int f )
     setAAfFarbe( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), f );
 }
 
-void ObjTabelle::setAAfStärke( int sNum, int zNum, int st ) // setzt die Stärke des auswahl AlphaFeldes
+void ObjTabelle::setAAfStrength( int sNum, int zNum, int st ) // setzt die Stärke des auswahl AlphaFeldes
 {
     if( msaAf->z( sNum ) )
     {
@@ -713,19 +713,19 @@ void ObjTabelle::setAAfSt
             tmp = new AlphaFeld();
             msaAf->z( sNum )->set( tmp, zNum );
         }
-        tmp->setStärke( st );
+        tmp->setStrength( st );
         rend = 1;
     }
 }
 
-void ObjTabelle::setAAfStärke( const char *spaltenName, const char *zeilenName, int st )
+void ObjTabelle::setAAfStrength( const char *spaltenName, const char *zeilenName, int st )
 {
-    setAAfStärke( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), st );
+    setAAfStrength( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), st );
 }
 
-void ObjTabelle::setAAfStärke( Text *spaltenName, Text *zeilenName, int st )
+void ObjTabelle::setAAfStrength( Text *spaltenName, Text *zeilenName, int st )
 {
-    setAAfStärke( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), st );
+    setAAfStrength( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), st );
 }
 
 void ObjTabelle::addMsStyle( int sNum, int zNum, __int64 style ) // setzt den Style wenn Multistyled
@@ -790,7 +790,7 @@ void ObjTabelle::setMsStyle( Text *spaltenName, Text *zeilenName, __int64 style,
     setMsStyle( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), style, add_remove );
 }
 
-void ObjTabelle::löscheMsStyle( int sNum, int zNum, __int64 style )
+void ObjTabelle::removeMsStyle( int sNum, int zNum, __int64 style )
 {
     if( sNum >= spaltenAnzahl || zNum >= zeilenAnzahl )
         return;
@@ -799,14 +799,14 @@ void ObjTabelle::l
     rend = 1;
 }
 
-void ObjTabelle::löscheMsStyle( const char *spaltenName, const char *zeilenName, __int64 style )
+void ObjTabelle::removeMsStyle( const char *spaltenName, const char *zeilenName, __int64 style )
 {
-    löscheMsStyle( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), style );
+    removeMsStyle( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), style );
 }
 
-void ObjTabelle::löscheMsStyle( Text *spaltenName, Text *zeilenName, __int64 style )
+void ObjTabelle::removeMsStyle( Text *spaltenName, Text *zeilenName, __int64 style )
 {
-    löscheMsStyle( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), style );
+    removeMsStyle( getSpaltenNummer( spaltenName ), getZeilenNummer( zeilenName ), style );
 }
 
 bool ObjTabelle::tick( double tickVal ) // tick Message
@@ -822,7 +822,7 @@ bool ObjTabelle::tick( double tickVal ) // tick Message
         }
     }
     unlockZeichnung();
-    return __super::tick( tickVal );
+    return ZeichnungHintergrund::tick( tickVal );
 }
 
 void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
@@ -837,7 +837,7 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
         {
             mausIn = 0;
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -846,17 +846,17 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
         }
         removeFokus = 1;
     }
-    bool außerhalb = !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt;
-    bool MakB = Mak && ( me.verarbeitet || außerhalb || Mak( makParam, this, me ) );
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt )
+    bool ausserhalb = !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves;
+    bool MakB = Mak && ( me.verarbeitet || ausserhalb || Mak( makParam, this, me ) );
+    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves )
     {
         if( removeFokus && me.id == ME_RLinks )
         {
             if( MakB )
-                löscheStyle( Style::Fokus );
+                removeStyle( Style::Fokus );
         }
     }
-    else if( !mausIn && me.id != ME_Verlässt )
+    else if( !mausIn && me.id != ME_Leaves )
     {
         mausIn = 1;
         MausEreignis me2;
@@ -869,9 +869,9 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
     int tmx = me.mx;
     int tmy = me.my;
     bool aufScroll = 0;
-    if( !außerhalb && vertikalScrollBar && hatStyle( Style::VScroll ) && me.mx > pos.x + gr.x - 15 )
+    if( !ausserhalb && vertikalScrollBar && hatStyle( Style::VScroll ) && me.mx > pos.x + gr.x - 15 )
         aufScroll = 1;
-    if( !außerhalb && horizontalScrollBar && hatStyle( Style::HScroll ) && me.my > pos.y + gr.y - 15 )
+    if( !ausserhalb && horizontalScrollBar && hatStyle( Style::HScroll ) && me.my > pos.y + gr.y - 15 )
         aufScroll = 1;
     me.mx -= pos.x + ( ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0 );
     me.my -= pos.y + ( ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0 );
@@ -880,10 +880,10 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
         lockZeichnung();
         if( removeFokus && me.id == ME_RLinks )
         {
-            löscheStyle( Style::Fokus );
+            removeStyle( Style::Fokus );
             klickSpalte = -1;
         }
-        if( !me.verarbeitet && !außerhalb && !aufScroll )
+        if( !me.verarbeitet && !ausserhalb && !aufScroll )
         {
             double ox = getMausSpalte( me.mx + ( ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0 ) );
             double oy = getMausZeile( me.my + ( ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0 ) );
@@ -893,9 +893,9 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
                 klickSpalte = -1;
                 mSpalte = -1, mZeile = -1;
             }
-            if( ( hatStyle( Style::SpaltenBreiteÄnderbar ) || hatStyle( Style::ZeilenHöheÄnderbar ) ) && klickSpalte < 0 )
+            if( ( hatStyle( Style::SpaltenBreiteChangeable ) || hatStyle( Style::ZeilenHeightChangeable ) ) && klickSpalte < 0 )
             {
-                if( hatStyle( Style::SpaltenBreiteÄnderbar ) )
+                if( hatStyle( Style::SpaltenBreiteChangeable ) )
                 {
                     if( me.id == ME_PLinks && ox != (int)ox )
                     {
@@ -915,7 +915,7 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
                         rend = 1;
                     }
                 }
-                if( hatStyle( Style::ZeilenHöheÄnderbar ) )
+                if( hatStyle( Style::ZeilenHeightChangeable ) )
                 {
                     if( me.id == ME_PLinks && oy != (int)oy )
                     {
@@ -925,12 +925,12 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
                     }
                     if( mZeile > -1 )
                     {
-                        int hö = getZeilenHöhe( (int)mZeile ) + ( me.my - my );
-                        if( hatStyle( Style::ZeilenHöheMax ) && hö > getMaxZeilenHöhe( (int)mZeile ) )
-                            hö = getMaxZeilenHöhe( (int)mZeile );
-                        if( hatStyle( Style::ZeilenHöheMin ) && hö < getMinZeilenHöhe( (int)mZeile ) )
-                            hö = getMinZeilenHöhe( (int)mZeile );
-                        setZeilenHöhe( (int)mZeile, hö );
+                        int hi = getZeilenHeight( (int)mZeile ) + ( me.my - my );
+                        if( hatStyle( Style::ZeilenHeightMax ) && hi > getMaxZeilenHeight( (int)mZeile ) )
+                            hi = getMaxZeilenHeight( (int)mZeile );
+                        if( hatStyle( Style::ZeilenHeightMin ) && hi < getMinZeilenHeight( (int)mZeile ) )
+                            hi = getMinZeilenHeight( (int)mZeile );
+                        setZeilenHeight( (int)mZeile, hi );
                         my = me.my;
                         rend = 1;
                     }
@@ -956,9 +956,9 @@ void ObjTabelle::doMausEreignis( MausEreignis &me ) // verarbeitet Nachrichten
         }
         me.mx += ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0;
         me.my += ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0;
-        if( me.id != ME_Betritt && me.id != ME_Verlässt )
+        if( me.id != ME_Betritt && me.id != ME_Leaves )
         {
-            if( !außerhalb )
+            if( !ausserhalb )
             {
                 bool vs = hatStyle( Style::VScroll ) && vertikalScrollBar;
                 bool hs = hatStyle( Style::HScroll ) && horizontalScrollBar;
@@ -1045,9 +1045,9 @@ void ObjTabelle::render( Bild &zRObj ) // zeichnet nach zRObj
 {
     if( hatStyleNicht( Style::Sichtbar ) )
         return;
-    __super::render( zRObj );
+	ZeichnungHintergrund::render( zRObj );
     lockZeichnung();
-    if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
+    if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
     {
         unlockZeichnung();
         return;
@@ -1066,12 +1066,12 @@ void ObjTabelle::render( Bild &zRObj ) // zeichnet nach zRObj
             continue;
         for( int z = 0; z < zeilenAnzahl && tmp_zZeichnungs; ++z )
         {
-            int zHö = zeilenHöhe->hat( z ) ? zeilenHöhe->get( z ) : 0;
+            int zHi = zeilenHeight->hat( z ) ? zeilenHeight->get( z ) : 0;
             Zeichnung *obj = tmp_zZeichnungs->hat( z ) ? tmp_zZeichnungs->get( z ) : 0;
             if( obj )
             {
                 obj->setPosition( xPos, yPos );
-                obj->setGröße( sBr, zHö );
+                obj->setSize( sBr, zHi );
                 obj->render( zRObj );
                 if( selected.x == s && selected.y == z )
                 {
@@ -1090,30 +1090,30 @@ void ObjTabelle::render( Bild &zRObj ) // zeichnet nach zRObj
                     if( aRamB )
                     {
                         tmp_aRam->setPosition( xPos, yPos );
-                        tmp_aRam->setGröße( sBr, zHö );
+                        tmp_aRam->setSize( sBr, zHi );
                         tmp_aRam->render( zRObj );
                         aRbr = tmp_aRam->getRBreite();
                     }
                     if( aAfB )
                     {
                         tmp_aAf->setPosition( aRbr + xPos, aRbr + yPos );
-                        tmp_aAf->setGröße( sBr - aRbr * 2, zHö - aRbr * 2 );
+                        tmp_aAf->setSize( sBr - aRbr * 2, zHi - aRbr * 2 );
                         tmp_aAf->render( zRObj );
                     }
                 }
             }
             if( hatStyle( Style::Raster ) )
             {
-                zRObj.drawLinieH( xPos, yPos + zHö, sBr, rasterFarbe );
+                zRObj.drawLinieH( xPos, yPos + zHi, sBr, rasterFarbe );
                 yPos += rasterBreite;
             }
-            yPos += zHö;
+            yPos += zHi;
             if( z == zeilenAnzahl - 1 && vertikalScrollBar && hatStyle( Style::VScroll ) )
                 vertikalScrollBar->getScrollData()->max = yPos + vertikalScrollBar->getScroll();
         }
         if( hatStyle( Style::Raster ) )
         {
-            zRObj.drawLinieV( xPos + sBr, 0, innenGröße.y, rasterFarbe );
+            zRObj.drawLinieV( xPos + sBr, 0, innenSize.y, rasterFarbe );
             xPos += rasterBreite;
         }
         xPos += sBr;
@@ -1237,19 +1237,19 @@ int ObjTabelle::getSpaltenBreite( Text *name ) const
     return getSpaltenBreite( getSpaltenNummer( name ) );
 }
 
-int ObjTabelle::getZeilenHöhe( int num ) const // gibt die Höhe der Zeile zurück
+int ObjTabelle::getZeilenHeight( int num ) const // gibt die Höhe der Zeile zurück
 {
-    return zeilenHöhe->get( num );
+    return zeilenHeight->get( num );
 }
 
-int ObjTabelle::getZeilenHöhe( const char *name ) const
+int ObjTabelle::getZeilenHeight( const char *name ) const
 {
-    return getZeilenHöhe( getZeilenNummer( name ) );
+    return getZeilenHeight( getZeilenNummer( name ) );
 }
 
-int ObjTabelle::getZeilenHöhe( Text *name ) const
+int ObjTabelle::getZeilenHeight( Text *name ) const
 {
-    return getZeilenHöhe( getZeilenNummer( name ) );
+    return getZeilenHeight( getZeilenNummer( name ) );
 }
 
 int ObjTabelle::getMinSpaltenBreite( int num ) const // gibt die minimale Spaltengröße zurück
@@ -1282,34 +1282,34 @@ int ObjTabelle::getMaxSpaltenBreite( Text *name ) const
     return getMaxSpaltenBreite( getSpaltenNummer( name ) );
 }
 
-int ObjTabelle::getMinZeilenHöhe( int num ) const // gibt die minimale Zeilenhöhe zurück
+int ObjTabelle::getMinZeilenHeight( int num ) const // gibt die minimale Zeilenhöhe zurück
 {
-    return minZeilenHöhe->get( num );
+    return minZeilenHeight->get( num );
 }
 
-int ObjTabelle::getMinZeilenHöhe( const char *name ) const
+int ObjTabelle::getMinZeilenHeight( const char *name ) const
 {
-    return getMinZeilenHöhe( getZeilenNummer( name ) );
+    return getMinZeilenHeight( getZeilenNummer( name ) );
 }
 
-int ObjTabelle::getMinZeilenHöhe( Text *name ) const
+int ObjTabelle::getMinZeilenHeight( Text *name ) const
 {
-    return getMinZeilenHöhe( getZeilenNummer( name ) );
+    return getMinZeilenHeight( getZeilenNummer( name ) );
 }
 
-int ObjTabelle::getMaxZeilenHöhe( int num ) const // gibt die maximale Zeilenhöhe zurück
+int ObjTabelle::getMaxZeilenHeight( int num ) const // gibt die maximale Zeilenhöhe zurück
 {
-    return maxZeilenHöhe->get( num );
+    return maxZeilenHeight->get( num );
 }
 
-int ObjTabelle::getMaxZeilenHöhe( const char *name ) const
+int ObjTabelle::getMaxZeilenHeight( const char *name ) const
 {
-    return getMaxZeilenHöhe( getZeilenNummer( name ) );
+    return getMaxZeilenHeight( getZeilenNummer( name ) );
 }
 
-int ObjTabelle::getMaxZeilenHöhe( Text *name ) const
+int ObjTabelle::getMaxZeilenHeight( Text *name ) const
 {
-    return getMaxZeilenHöhe( getZeilenNummer( name ) );
+    return getMaxZeilenHeight( getZeilenNummer( name ) );
 }
 
 double ObjTabelle::getMausSpalte( int mx ) const // ermittelt die Spalte unter der Maus
@@ -1360,7 +1360,7 @@ double ObjTabelle::getMausZeile( int my ) const // ermittelt die Zeile unter der
     int yy = rahmen ? rahmen->getRBreite() : 0;
     for( int i = 0; i < zeilenAnzahl; ++i )
     {
-        yy += zeilenHöhe->get( i );
+        yy += zeilenHeight->get( i );
         if( my < yy - 5 )
             return i;
         if( my < yy + 5 )
@@ -1520,7 +1520,7 @@ Zeichnung *ObjTabelle::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
 {
     ObjTabelle *obj = new ObjTabelle();
     obj->setPosition( pos );
-    obj->setGröße( gr );
+    obj->setSize( gr );
     obj->setMausEreignisParameter( makParam );
     obj->setTastaturEreignisParameter( takParam );
     obj->setMausEreignis( Mak );
@@ -1555,12 +1555,12 @@ Zeichnung *ObjTabelle::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
             if( !s )
             {
                 obj->addZeile( zeilenNamen->get( z ) );
-                if( zeilenHöhe->hat( z ) )
-                    obj->setZeilenHöhe( z, zeilenHöhe->get( z ) );
-                if( minZeilenHöhe->hat( z ) )
-                    obj->setMinZeilenHöhe( z, minZeilenHöhe->get( z ) );
-                if( maxZeilenHöhe->hat( z ) )
-                    obj->setMaxZeilenHöhe( z, maxZeilenHöhe->get( z ) );
+                if( zeilenHeight->hat( z ) )
+                    obj->setZeilenHeight( z, zeilenHeight->get( z ) );
+                if( minZeilenHeight->hat( z ) )
+                    obj->setMinZeilenHeight( z, minZeilenHeight->get( z ) );
+                if( maxZeilenHeight->hat( z ) )
+                    obj->setMaxZeilenHeight( z, maxZeilenHeight->get( z ) );
             }
             if( zZeichnungs->z( s ) && zZeichnungs->z( s )->hat( z ) )
                 obj->setZeichnungZ( s, z, zZeichnungs->z( s )->get( z ) );

+ 44 - 44
Tabelle.h

@@ -20,20 +20,20 @@ namespace Framework
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            const static __int64 SpaltenBreiteÄnderbar = 0x00001000; // Wenn dieser Flag gesetzt wird, so kann der Benutzer die Spalten mit der Maus vergrößern und verkleinern
-            const static __int64 ZeilenHöheÄnderbar = 0x00002000; // Wenn dieser Flag gesetzt wird, so kann der Benutzer die Spalten mit der Maus vergrößern und verkleinern
+            const static __int64 SpaltenBreiteChangeable = 0x00001000; // Wenn dieser Flag gesetzt wird, so kann der Benutzer die Spalten mit der Maus vergrößern und verkleinern
+            const static __int64 ZeilenHeightChangeable = 0x00002000; // Wenn dieser Flag gesetzt wird, so kann der Benutzer die Spalten mit der Maus vergrößern und verkleinern
             const static __int64 SpaltenBreiteMin = 0x00004000; // Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags SpaltenBreiteÄnderbar die Spaltenbreite nicht kleiner machen als eine bestimmte Grenze
             const static __int64 SpaltenBreiteMax = 0x00008000; // Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags SpaltenBreiteÄnderbar die Spaltenbreite nicht größer machen als eine bestimmte Grenze
-            const static __int64 ZeilenHöheMin = 0x00010000; // Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags ZeilenHöheÄnderbar die Zeilenhöhe nicht kleiner machen als eine bestimmte Grenze
-            const static __int64 ZeilenHöheMax = 0x00020000; // Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags ZeilenHöheÄnderbar die Zeilenhöhe nicht größer machen als eine bestimmte Grenze
+            const static __int64 ZeilenHeightMin = 0x00010000; // Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags ZeilenHöheÄnderbar die Zeilenhöhe nicht kleiner machen als eine bestimmte Grenze
+            const static __int64 ZeilenHeightMax = 0x00020000; // Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags ZeilenHöheÄnderbar die Zeilenhöhe nicht größer machen als eine bestimmte Grenze
             const static __int64 SpaltenBeweglich = 0x00040000; // Wenn dieser Flag gesetzt wird, so kann der Nutzer die Reihenfolge der Spalten bestimmen, in dem er sie per Drag and Drop verschiebt
             const static __int64 AuswahlRahmen = 0x0080000; // Wenn dieser Flag gesetzt ist, so bekommt das Feld, dass der Benutzer durch den Flag Erlaubt auswählen kann einen anderen Rahmen
             const static __int64 AuswahlBuffer = 0x00100000; // Wenn dieser Flag gesetzt ist, so bekommt das Feld, dass der Benutzer durch den Flag Erlaubt auswählen kann ein anderes AlphaFeld
             const static __int64 AuswahlMultistyled = 0x00200000; // Wenn dieser Flag gesetzt ist, so kann jedes Feld andere Rahmen und AlphaFelder beim Auswählen haben.
             const static __int64 Raster = 0x00400000; // Wenn dieser Flag gesetzt ist, so werden zwischen den Feldern Linien gezeichnet
 
-            const static __int64 beweglich = SpaltenBreiteÄnderbar | ZeilenHöheÄnderbar | SpaltenBeweglich; // Vereint die Flags: SpaltenBreiteÄnderbar, ZeilenHöheÄnderbar, SpaltenBeweglich
-            const static __int64 min_max = SpaltenBreiteMax | SpaltenBreiteMin | ZeilenHöheMax | ZeilenHöheMax; // Vereint die Flags: SpaltenBreiteMax, SpaltenBreiteMin, ZeilenHöheMax, ZeilenHöheMax
+            const static __int64 beweglich = SpaltenBreiteChangeable | ZeilenHeightChangeable | SpaltenBeweglich; // Vereint die Flags: SpaltenBreiteÄnderbar, ZeilenHöheÄnderbar, SpaltenBeweglich
+            const static __int64 min_max = SpaltenBreiteMax | SpaltenBreiteMin | ZeilenHeightMax | ZeilenHeightMax; // Vereint die Flags: SpaltenBreiteMax, SpaltenBreiteMin, ZeilenHöheMax, ZeilenHöheMax
             const static __int64 scroll = VScroll | HScroll; // Vereint die Flags: VScroll, HScroll
             const static __int64 normal = Rahmen | Erlaubt | Sichtbar | AuswahlBuffer | AuswahlRahmen | Raster; // Vereint die Flags: Rahmen, Erlaubt, Sichtbar, SpaltenBeweglich, AuswahlBuffer, AuswahlRahmen, Raster
         };
@@ -42,11 +42,11 @@ namespace Framework
         RCArray< Text > *spaltenNamen;
         RCArray< Text > *zeilenNamen;
         Array< int > *spaltenBreite;
-        Array< int > *zeilenHöhe;
+        Array< int > *zeilenHeight;
         Array< int > *minSpaltenBreite;
         Array< int > *maxSpaltenBreite;
-        Array< int > *minZeilenHöhe;
-        Array< int > *maxZeilenHöhe;
+        Array< int > *minZeilenHeight;
+        Array< int > *maxZeilenHeight;
         int spaltenAnzahl, zeilenAnzahl;
         int klickSpalte;
         double mSpalte, mZeile;
@@ -65,7 +65,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) ObjTabelle();
         // Destruktor 
-        __declspec( dllexport ) ~ObjTabelle();
+        __declspec( dllexport ) virtual ~ObjTabelle();
         // Fügt der Tabelle eine Spalte hinzu
         //  name: Der Name der Spalte
         __declspec( dllexport ) void addSpalte( const char *name );
@@ -168,16 +168,16 @@ namespace Framework
         __declspec( dllexport ) void setSpaltenBreite( Text *name, int br );
         // Setzt die Zeilen Höhe
         //  zNum: Der Index der Zeile
-        //  hö: Die Höhe in Pixeln
-        __declspec( dllexport ) void setZeilenHöhe( int zNum, int hö );
+        //  hi: Die Höhe in Pixeln
+        __declspec( dllexport ) void setZeilenHeight( int zNum, int hi );
         // Setzt die Zeilen Höhe
         //  name: Der Index der Zeile
-        //  hö: Die Höhe in Pixeln
-        __declspec( dllexport ) void setZeilenHöhe( const char *name, int hö );
+        //  hi: Die Höhe in Pixeln
+        __declspec( dllexport ) void setZeilenHeight( const char *name, int hi );
         // Setzt die Zeilen Höhe
         //  name: Der Index der Zeile
-        //  hö: Die Höhe in Pixeln
-        __declspec( dllexport ) void setZeilenHöhe( Text *name, int hö );
+        //  hi: Die Höhe in Pixeln
+        __declspec( dllexport ) void setZeilenHeight( Text *name, int hi );
         // Setzt die minimale Spalten Breite (benötigt Flag: SpaltenBreiteÄnderbar, SpaltenBreiteMin)
         //  sNum: Der Index der Spalte
         //  minBr: Die minimale Breite in Pixeln
@@ -204,28 +204,28 @@ namespace Framework
         __declspec( dllexport ) void setMaxSpaltenBreite( Text *name, int maxBr );
         // Setzt die minimale Zeilen Höhe (benötigt Flag: ZeilenHöheÄnderbar, ZeienHöheMin)
         //  zNum: Der Index der Zeile
-        //  minHö: Die minimale Höhe in Pixeln
-        __declspec( dllexport ) void setMinZeilenHöhe( int zNum, int minHö );
+        //  minHi: Die minimale Höhe in Pixeln
+        __declspec( dllexport ) void setMinZeilenHeight( int zNum, int minHi );
         // Setzt die minimale Zeilen Höhe (benötigt Flag: ZeilenHöheÄnderbar, ZeienHöheMin)
         //  name: Der Name der Zeile
-        //  minHö: Die minimale Höhe in Pixeln
-        __declspec( dllexport ) void setMinZeilenHöhe( const char *name, int minHö );
+        //  minHi: Die minimale Höhe in Pixeln
+        __declspec( dllexport ) void setMinZeilenHeight( const char *name, int minHi );
         // Setzt die minimale Zeilen Höhe (benötigt Flag: ZeilenHöheÄnderbar, ZeienHöheMin)
         //  name: Der Name der Zeile
-        //  minHö: Die minimale Höhe in Pixeln
-        __declspec( dllexport ) void setMinZeilenHöhe( Text *name, int minHö );
+        //  minHi: Die minimale Höhe in Pixeln
+        __declspec( dllexport ) void setMinZeilenHeight( Text *name, int minHi );
         // Setzt die maximale Zeilen Höhe (benötigt Flag: ZeilenHöheÄnderbar, ZeienHöheMax)
         //  zNum: Der Index der Zeile
-        //  maxHö: Die maximale Höhe in Pixeln
-        __declspec( dllexport ) void setMaxZeilenHöhe( int zNum, int maxHö );
+        //  maxHi: Die maximale Höhe in Pixeln
+        __declspec( dllexport ) void setMaxZeilenHeight( int zNum, int maxHi );
         // Setzt die maximale Zeilen Höhe (benötigt Flag: ZeilenHöheÄnderbar, ZeienHöheMax)
         //  name: Der Name der Zeile
-        //  maxHö: Die maximale Höhe in Pixeln
-        __declspec( dllexport ) void setMaxZeilenHöhe( const char *name, int maxHö );
+        //  maxHi: Die maximale Höhe in Pixeln
+        __declspec( dllexport ) void setMaxZeilenHeight( const char *name, int maxHi );
         // Setzt die maximale Zeilen Höhe (benötigt Flag: ZeilenHöheÄnderbar, ZeienHöheMax)
         //  name: Der Name der Zeile
-        //  maxHö: Die maximale Höhe in Pixeln
-        __declspec( dllexport ) void setMaxZeilenHöhe( Text *name, int maxHö );
+        //  maxHi: Die maximale Höhe in Pixeln
+        __declspec( dllexport ) void setMaxZeilenHeight( Text *name, int maxHi );
         // Legt fest, welches Feld ausgewählt ist (benötigt Flag: Erlaubt)
         //  sNum: Der Index der Spalte des Feldes
         //  zNum: Der Index der Zeile des Feldes
@@ -261,7 +261,7 @@ namespace Framework
         __declspec( dllexport ) void setAAfFarbe( int f );
         // Setzt die Stärke des AlphaFeldes, das für das ausgewählte Kästchen verwendet wird
         //  st: Die Stärke
-        __declspec( dllexport ) void setAAfStärke( int st );
+        __declspec( dllexport ) void setAAfStrength( int st );
         // Setzt einen Zeiger auf einen Rahmen, der bei dem Flag AuswahlMultistyled bei der Auswahl eines bestimmten Kästchens verwendte wird
         //  sNum: Der Index der Spalte des Kästchens
         //  zNum: Der Index der Zeile des Kästchens
@@ -341,17 +341,17 @@ namespace Framework
         //  sNum: Der Index der Spalte des Kästchens
         //  zNum: Der Index der Zeile des Kästchens
         //  st: Die Stärke
-        __declspec( dllexport ) void setAAfStärke( int sNum, int zNum, int st );
+        __declspec( dllexport ) void setAAfStrength( int sNum, int zNum, int st );
         // Setzt die Stärke des Farbüergangs, der bei dem Flag AuswahlMultistyled bei der Auswahl eines bestimmten Kästchens verwendte wird
         //  spaltenName: Der Name der Spalte des Kästchens
         //  zeilenName: Der Name der Zeile des Kästchens
         //  st: Die Stärke
-        __declspec( dllexport ) void setAAfStärke( const char *spaltenName, const char *zeilenName, int st );
+        __declspec( dllexport ) void setAAfStrength( const char *spaltenName, const char *zeilenName, int st );
         // Setzt die Stärke des Farbüergangs, der bei dem Flag AuswahlMultistyled bei der Auswahl eines bestimmten Kästchens verwendte wird
         //  spaltenName: Der Name der Spalte des Kästchens
         //  zeilenName: Der Name der Zeile des Kästchens
         //  st: Die Stärke
-        __declspec( dllexport ) void setAAfStärke( Text *spaltenName, Text *zeilenName, int st );
+        __declspec( dllexport ) void setAAfStrength( Text *spaltenName, Text *zeilenName, int st );
         // Fügt Styles hinzu, die bei dem Flag AuswahlMultistyled bei der Auswahl eines bestimmten Kästchens verwendte werden
         //  sNum: Der Index der Spalte des Kästchens
         //  zNum: Der Index der Zeile des Kästchens
@@ -404,17 +404,17 @@ namespace Framework
         //  sNum: Der Index der Spalte des Kästchens
         //  zNum: Der Index der Zeile des Kästchens
         //  style: der Style, der entfernt werden soll
-        __declspec( dllexport ) void löscheMsStyle( int sNum, int zNum, __int64 style );
+        __declspec( dllexport ) void removeMsStyle( int sNum, int zNum, __int64 style );
         // Entfernt Styles von den Styles, die bei dem Flag AuswahlMultistyled bei der Auswahl eines bestimmten Kästchens verwendte werden
         //  spaltenName: Der Name der Spalte des Kästchens
         //  zeilenName: Der Name der Zeile des Kästchens
         //  style: der Style, der entfernt werden soll
-        __declspec( dllexport ) void löscheMsStyle( const char *spaltenName, const char *zeilenName, __int64 style );
+        __declspec( dllexport ) void removeMsStyle( const char *spaltenName, const char *zeilenName, __int64 style );
         // Entfernt Styles von den Styles, die bei dem Flag AuswahlMultistyled bei der Auswahl eines bestimmten Kästchens verwendte werden
         //  spaltenName: Der Name der Spalte des Kästchens
         //  zeilenName: Der Name der Zeile des Kästchens
         //  style: der Style, der entfernt werden soll
-        __declspec( dllexport ) void löscheMsStyle( Text *spaltenName, Text *zeilenName, __int64 style );
+        __declspec( dllexport ) void removeMsStyle( Text *spaltenName, Text *zeilenName, __int64 style );
         // 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
@@ -482,13 +482,13 @@ namespace Framework
         __declspec( dllexport ) int getSpaltenBreite( Text *name ) const;
         // Gibt die Höhe einer Zeile in Pixeln zurück
         //  num: Der Index der Zeile
-        __declspec( dllexport ) int getZeilenHöhe( int num ) const;
+        __declspec( dllexport ) int getZeilenHeight( int num ) const;
         // Gibt die Höhe einer Zeile in Pixeln zurück
         //  name: Der Name der Zeile
-        __declspec( dllexport ) int getZeilenHöhe( const char *name ) const;
+        __declspec( dllexport ) int getZeilenHeight( const char *name ) const;
         // Gibt die Höhe einer Zeile in Pixeln zurück
         //  name: Der Name der Zeile
-        __declspec( dllexport ) int getZeilenHöhe( Text *name ) const;
+        __declspec( dllexport ) int getZeilenHeight( Text *name ) const;
         // Gibt die minimale Spalten breite in Pixeln zurück
         //  num: Der Index der Spalte
         __declspec( dllexport ) int getMinSpaltenBreite( int num ) const;
@@ -509,22 +509,22 @@ namespace Framework
         __declspec( dllexport ) int getMaxSpaltenBreite( Text *name ) const;
         // Gibt die minimale Zeilen Höhe in Pixeln zurück
         //  num: Der Index der Zeile
-        __declspec( dllexport ) int getMinZeilenHöhe( int num ) const;
+        __declspec( dllexport ) int getMinZeilenHeight( int num ) const;
         // Gibt die minimale Zeilen Höhe in Pixeln zurück
         //  name: Der Name der Zeile
-        __declspec( dllexport ) int getMinZeilenHöhe( const char *name ) const;
+        __declspec( dllexport ) int getMinZeilenHeight( const char *name ) const;
         // Gibt die minimale Zeilen Höhe in Pixeln zurück
         //  name: Der Name der Zeile
-        __declspec( dllexport ) int getMinZeilenHöhe( Text *name ) const;
+        __declspec( dllexport ) int getMinZeilenHeight( Text *name ) const;
         // Gibt die maximale Zeilen Höhe in Pixeln zurück
         //  num: Der Index der Zeile
-        __declspec( dllexport ) int getMaxZeilenHöhe( int num ) const;
+        __declspec( dllexport ) int getMaxZeilenHeight( int num ) const;
         // Gibt die maximale Zeilen Höhe in Pixeln zurück
         //  name: Der Name der Zeile
-        __declspec( dllexport ) int getMaxZeilenHöhe( const char *name ) const;
+        __declspec( dllexport ) int getMaxZeilenHeight( const char *name ) const;
         // Gibt die maximale Zeilen Höhe in Pixeln zurück
         //  name: Der Name der Zeile
-        __declspec( dllexport ) int getMaxZeilenHöhe( Text *name ) const;
+        __declspec( dllexport ) int getMaxZeilenHeight( Text *name ) const;
         // Gibt den index der Splate zurück, auf die die Maus zeigt
         //  mx: Die x Koordinate der Mausposition basierend zum linken Rand der Tabelle in Pixeln
         __declspec( dllexport ) double getMausSpalte( int mx ) const;

+ 130 - 130
Text.cpp

@@ -14,7 +14,7 @@ Text::Text()
     : txt( 0 ),
     suchGBeg( 0 ),
     suchGEnd( 0 ),
-    präzision( 0 ),
+    precision( 0 ),
     ref( 1 )
 {
     setText( "" );
@@ -24,7 +24,7 @@ Text::Text( const Text &txt )
     : txt( 0 ),
     suchGBeg( 0 ),
     suchGEnd( 0 ),
-    präzision( 0 ),
+    precision( 0 ),
     ref( 1 )
 {
     setText( txt );
@@ -34,7 +34,7 @@ Text::Text( const char *t )
     : txt( 0 ),
     suchGBeg( 0 ),
     suchGEnd( 0 ),
-    präzision( 0 ),
+    precision( 0 ),
     ref( 1 )
 {
     setText( t ); // Text setzen
@@ -44,7 +44,7 @@ Text::Text( int zahl )
     : txt( 0 ),
     suchGBeg( 0 ),
     suchGEnd( 0 ),
-    präzision( 0 ),
+    precision( 0 ),
     ref( 1 )
 {
     *this = zahl;
@@ -89,15 +89,15 @@ void Text::setText( Text *t )
     t = t->release(); // übergabe loslassen
 }
 
-void Text::anhängen( char c ) // hängt an den Text an
+void Text::append( char c ) // hängt an den Text an
 {
-    anhängen( &c, 1 );
+	append( &c, 1 );
 }
 
-void Text::anhängen( const char *t ) // hängt an den Text an
+void Text::append( const char *t ) // hängt an den Text an
 {
     int tl = (int)strlen( t ); // länge der übergabe
-    int txl = getLänge(); // länge des Textes
+    int txl = getLength(); // länge des Textes
     char *res = new char[ tl + txl + 1 ]; // neuen Text erstellen
     for( int i = 0; i < txl; ++i ) // mit jetzigem Text füllen
         res[ i ] = txt[ i ];
@@ -108,14 +108,14 @@ void Text::anh
     delete[] res; // Speicher freigeben
 }
 
-void Text::hexAnhängen( int num ) // hängt die zahl in hex anden Text an
+void Text::appendHex( int num ) // hängt die zahl in hex anden Text an
 {
-    int l = getLänge();
+    int l = getLength();
     char *res = new char[ l + 9 ];
     for( int i = 0; i < l; ++i )
         res[ i ] = txt[ i ];
     std::stringstream stream;
-    stream << std::setfill( '0' ) << std::setw( sizeof( int ) * 2 ) << std::hex << num;
+    stream << std::setfill( '0' ) << std::setw( (int)sizeof( int ) * 2 ) << std::hex << num;
     std::string str = stream.str();
     for( int i = l; i < l + 8; ++i )
         res[ i ] = str.c_str()[ i - l ];
@@ -124,9 +124,9 @@ void Text::hexAnh
     delete[] res;
 }
 
-void Text::farbeAnhängen( int fc ) // setzt die Farbe des folgenden Textes
+void Text::appendColor( int fc ) // setzt die Farbe des folgenden Textes
 {
-    int l = getLänge();
+    int l = getLength();
     char *res = new char[ l + 12 ];
     for( int i = 0; i < l; ++i )
         res[ i ] = txt[ i ];
@@ -134,7 +134,7 @@ void Text::farbeAnh
     res[ l + 1 ] = '0';
     res[ l + 2 ] = 'x';
     std::stringstream stream;
-    stream << std::setfill( '0' ) << std::setw( sizeof( int ) * 2 ) << std::hex << fc;
+    stream << std::setfill( '0' ) << std::setw( (int)sizeof( int ) * 2 ) << std::hex << fc;
     std::string str = stream.str();
     for( int i = l + 3; i < l + 11; ++i )
         res[ i ] = str.c_str()[ i - ( l + 3 ) ];
@@ -143,9 +143,9 @@ void Text::farbeAnh
     delete[] res;
 }
 
-void Text::anhängen( const char *t, int l ) // hängt an den Text an
+void Text::append( const char *t, int l ) // hängt an den Text an
 {
-    int txl = getLänge(); // länge des Textes
+    int txl = getLength(); // länge des Textes
     char *res = new char[ l + txl + 1 ]; // neuen Text erstellen
     for( int i = 0; i < txl; ++i ) // mit jetzigem Text füllen
         res[ i ] = txt[ i ];
@@ -156,40 +156,40 @@ void Text::anh
     delete[] res; // Speicher freigeben
 }
 
-void Text::anhängen( Text *t )
+void Text::append( Text *t )
 {
-    if( t->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
-        anhängen( t->getText() ); // Text anhängen
+    if( t->getLength() > 0 ) // Auf unsinnige übergabe prüfen
+        append( t->getText() ); // Text anhängen
     t = t->release(); // Übergabe loslassen
 }
 
-void Text::anhängen( int num )
+void Text::append( int num )
 {
     std::stringstream ss;
     ss << num;
-    anhängen( ss.str().c_str() );
+    append( ss.str().c_str() );
 }
 
-void Text::anhängen( unsigned int num )
+void Text::append( unsigned int num )
 {
     std::stringstream ss;
     ss << num;
-    anhängen( ss.str().c_str() );
+    append( ss.str().c_str() );
 }
 
-void Text::anhängen( double num )
+void Text::append( double num )
 {
     std::stringstream ss;
-    ss.precision( präzision );
+    ss.precision( precision );
     ss << num;
-    anhängen( ss.str().c_str() );
+    append( ss.str().c_str() );
 }
 
-void Text::einfügen( int p, char c ) // Fügt an stelle p ein
+void Text::insert( int p, char c ) // Fügt an stelle p ein
 {
-    if( p > getLänge() || p < 0 ) // Auf unsinnige übergabe prüfen
+    if( p > getLength() || p < 0 ) // Auf unsinnige übergabe prüfen
         return;
-    int txl = getLänge(); // Länge des Textes
+    int txl = getLength(); // Länge des Textes
     char *res = new char[ txl + 2 ]; // neuer Text erstellen
     for( int i = 0; i < p; ++i ) // Text füllen
         res[ i ] = txt[ i ];
@@ -201,12 +201,12 @@ void Text::einf
     delete[] res; // Speicher freigeben
 }
 
-void Text::einfügen( int p, const char *t ) // Fügt an stelle p ein
+void Text::insert( int p, const char *t ) // Fügt an stelle p ein
 {
-    if( p > getLänge() || p < 0 || strlen( t ) <= 0 ) // Auf unsinnige übergabe prüfen
+    if( p > getLength() || p < 0 || strlen( t ) <= 0 ) // Auf unsinnige übergabe prüfen
         return;
     int tl = (int)strlen( t ); // Länge der übergabe
-    int txl = getLänge(); // Länge des Textes
+    int txl = getLength(); // Länge des Textes
     char *res = new char[ tl + txl + 1 ]; // neuer Text erstellen
     for( int i = 0; i < p; ++i ) // Text füllen
         res[ i ] = txt[ i ];
@@ -219,10 +219,10 @@ void Text::einf
     delete[] res; // Speicher freigeben
 }
 
-void Text::einfügen( int p, Text *t )
+void Text::insert( int p, Text *t )
 {
-    if( t->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
-        einfügen( p, t->getText() ); // Text einfügen
+    if( t->getLength() > 0 ) // Auf unsinnige übergabe prüfen
+        insert( p, t->getText() ); // Text einfügen
     t = t->release(); // Übergabe loslassen
 }
 
@@ -234,13 +234,13 @@ void Text::ersetzen( int p1, int p2, const char *t ) // Ersetzt den Text von p1
         p1 = p2;
         p2 = x;
     }
-    löschen( p1, p2 ); // Textabschnitt von p1 zu p2 löschen
-    einfügen( p1, t ); // Übergabe bei p1 einfügen
+    remove( p1, p2 ); // Textabschnitt von p1 zu p2 löschen
+    insert( p1, t ); // Übergabe bei p1 einfügen
 }
 
 void Text::ersetzen( int p1, int p2, Text *t )
 {
-    if( t->getLänge() >= 0 ) // Auf unsinnige übergabe prüfen
+    if( t->getLength() >= 0 ) // Auf unsinnige übergabe prüfen
         ersetzen( p1, p2, t->getText() ); // Text ersetzen
     t = t->release(); // Übergabe loslassen
 }
@@ -251,7 +251,7 @@ void Text::ersetzen( char c1, char c2 ) // ersetzt jedes c1 durch c2
         return;
     if( !hat( c1 ) ) // prüfen ob c1 vorhanden
         return;
-    int l = getLänge(); // Text Länge
+    int l = getLength(); // Text Länge
     int suchGCount = 0;
     for( int i = 0; i < l; ++i ) // Text durchsuchen
     {
@@ -269,7 +269,7 @@ void Text::ersetzen( char c1, char c2 ) // ersetzt jedes c1 durch c2
 
 void Text::ersetzen( const char *t1, const char *t2 ) // ersetzt jedes t1 durch t2
 {
-    int txl = getLänge(); // Text Länge
+    int txl = getLength(); // Text Länge
     int t1l = (int)strlen( t1 ); // Länge der Übergaben
     int t2l = (int)strlen( t2 );
     if( t1l > txl || t1l <= 0 ) // Auf unsinnige übergabe prüfen
@@ -321,21 +321,21 @@ void Text::ersetzen( const char *t1, const char *t2 ) // ersetzt jedes t1 durch
 
 void Text::ersetzen( Text *t1, const char *t2 )
 {
-    if( t1->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
+    if( t1->getLength() > 0 ) // Auf unsinnige übergabe prüfen
         ersetzen( t1->getText(), t2 ); // ersetzen
     t1 = t1->release(); // Übergabe loslassen
 }
 
 void Text::ersetzen( const char *t1, Text *t2 )
 {
-    if( t2->getLänge() >= 0 ) // Auf unsinnige übergabe prüfen
+    if( t2->getLength() >= 0 ) // Auf unsinnige übergabe prüfen
         ersetzen( t1, t2->getText() ); // ersetzen
     t2 = t2->release(); // Übergabe loslassen
 }
 
 void Text::ersetzen( Text *t1, Text *t2 )
 {
-    if( t1->getLänge() > 0 && t2->getLänge() >= 0 ) // Auf unsinnige übergabe prüfen
+    if( t1->getLength() > 0 && t2->getLength() >= 0 ) // Auf unsinnige übergabe prüfen
         ersetzen( t1->getText(), t2->getText() ); // ersetzen
     t1 = t1->release(); // Übergaben loslassen
     t2 = t2->release();
@@ -355,7 +355,7 @@ void Text::ersetzen( int index, char c1, char c2 ) // ersetzt das i-te c1 durch
 
 void Text::ersetzen( int index, const char *t1, const char *t2 ) // ersetzt das i-te t1 durch t2
 {
-    int txl = getLänge(); // Text Länge
+    int txl = getLength(); // Text Länge
     int t1l = (int)strlen( t1 ); // Länge der Übergaben
     if( t1l >= txl || t1l <= 0 || index < 0 ) // Auf unsinnige übergabe prüfen
         return;
@@ -371,39 +371,39 @@ void Text::ersetzen( int index, const char *t1, const char *t2 ) // ersetzt das
 
 void Text::ersetzen( int i, Text *t1, const char *t2 )
 {
-    if( t1->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
+    if( t1->getLength() > 0 ) // Auf unsinnige übergabe prüfen
         ersetzen( i, t1->getText(), t2 ); // ersetzen
     t1 = t1->release(); // Übergabe loslassen
 }
 
 void Text::ersetzen( int i, const char *t1, Text *t2 )
 {
-    if( t2->getLänge() >= 0 ) // Auf unsinnige übergabe prüfen
+    if( t2->getLength() >= 0 ) // Auf unsinnige übergabe prüfen
         ersetzen( i, t1, t2->getText() ); // ersetzen
     t2 = t2->release(); // Übergabe loslassen
 }
 
 void Text::ersetzen( int i, Text *t1, Text *t2 )
 {
-    if( t1->getLänge() > 0 || t2->getLänge() >= 0 ) // Auf unsinnige übergabe prüfen
+    if( t1->getLength() > 0 || t2->getLength() >= 0 ) // Auf unsinnige übergabe prüfen
         ersetzen( i, t1->getText(), t2->getText() ); // ersetzen
     t1 = t1->release(); // Übergaben loslassen
     t2 = t2->release();
 }
 
-void Text::füllText( char c, int län ) // setzt den Text zu so vielen c wie län groß ist
+void Text::fillText( char c, int len ) // setzt den Text zu so vielen c wie län groß ist
 {
-    char *res = new char[ län + 1 ];
-    for( int i = 0; i < län; ++i )
+    char *res = new char[ len + 1 ];
+    for( int i = 0; i < len; ++i )
         res[ i ] = c;
-    res[ län ] = '\0';
+    res[ len ] = '\0';
     setText( res );
     delete[] res;
 }
 
-void Text::löschen( int p ) // löscht p
+void Text::remove( int p ) // löscht p
 {
-    int l = getLänge(); // Text Länge
+    int l = getLength(); // Text Länge
     if( p < 0 || p >= l ) // Auf unsinnige übergabe prüfen
         return;
     char *res = new char[ l ]; // neuen Text anlegen
@@ -416,7 +416,7 @@ void Text::l
     delete[] res; // Speicher freigeben
 }
 
-void Text::löschen( int p1, int p2 ) // löscht von p1 zu p2 ( p2 bleibt )
+void Text::remove( int p1, int p2 ) // löscht von p1 zu p2 ( p2 bleibt )
 {
     if( p1 > p2 ) // p1 und p2 tauschen
     {
@@ -424,7 +424,7 @@ void Text::l
         p1 = p2;
         p2 = x;
     }
-    int l = getLänge(); // Länge des Testes
+    int l = getLength(); // Länge des Testes
     if( p1 < 0 || p2 > l ) // Auf unsinnige übergabe prüfen
         return;
     int resl = l - ( p2 - p1 ); // Länge vom Ergebnis
@@ -438,11 +438,11 @@ void Text::l
     delete[] res; // Speicher freigeben
 }
 
-void Text::löschen( char c ) // löscht jetes c
+void Text::remove( char c ) // löscht jetes c
 {
     if( !hat( c ) ) // prüfen ob c vorhanden
         return;
-    int l = getLänge(); // Länge des Textes
+    int l = getLength(); // Länge des Textes
     int anz = anzahlVon( c ); // Anzahl von c
     char *res = new char[ l - anz + 1 ]; // neuen Text erstellen
     int anz2 = 0;
@@ -471,10 +471,10 @@ void Text::l
     delete[] res; // Speicher freigeben
 }
 
-void Text::löschen( const char *t ) // löscht jetes t
+void Text::remove( const char *t ) // löscht jetes t
 {
     int tl = (int)strlen( t ); // Länge der Übergabe
-    int txl = getLänge(); // Länge des Textes
+    int txl = getLength(); // Länge des Textes
     if( tl <= 0 || tl > txl ) // Auf unsinnige übergabe prüfen
         return;
     if( !hat( t ) ) // prüfen ob Text ein t enthält
@@ -502,14 +502,14 @@ void Text::l
     delete[] res; // Speicher freigeben
 }
 
-void Text::löschen( Text *t )
+void Text::remove( Text *t )
 {
-    if( t->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
-        löschen( t->getText() ); // löschen
+    if( t->getLength() > 0 ) // Auf unsinnige übergabe prüfen
+        remove( t->getText() ); // löschen
     t = t->release(); // Übergabe loslassen
 }
 
-void Text::löschen( int index, char c )
+void Text::remove( int index, char c )
 {
     if( index < 0 || !hat( c ) ) // Auf unsinnige übergabe prüfen
         return;
@@ -519,7 +519,7 @@ void Text::l
     int pos = positionVon( c, index ); // Position vom i-ten c
     if( pos < 0 )
         return;
-    int l = getLänge(); // Länge des Textes
+    int l = getLength(); // Länge des Textes
     if( !l )
         return;
     char *res = new char[ l ]; // neuen Text erzeugen
@@ -532,7 +532,7 @@ void Text::l
     delete[] res; // Speicher freigeben
 }
 
-void Text::löschen( int index, const char *t ) // löscht das i-te t
+void Text::remove( int index, const char *t ) // löscht das i-te t
 {
     int tl = (int)strlen( t ); // Länge der Übergabe
     if( index < 0 || !hat( t ) || tl <= 0 ) // Auf unsinnige übergabe prüfen
@@ -543,7 +543,7 @@ void Text::l
     int pos = positionVon( t, index ); // Position vom i-ten c
     if( pos < 0 )
         return;
-    int l = getLänge(); // Länge des Textes
+    int l = getLength(); // Länge des Textes
     if( !l )
         return;
     char *res = new char[ l - tl + 1 ]; // neuen Text erzeugen
@@ -556,20 +556,20 @@ void Text::l
     delete[] res; // Speicher freigeben
 }
 
-void Text::löschen( int i, Text *t )
+void Text::remove( int i, Text *t )
 {
-    if( t->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
-        löschen( i, t->getText() ); // löschen
+    if( t->getLength() > 0 ) // Auf unsinnige übergabe prüfen
+        remove( i, t->getText() ); // löschen
     t = t->release(); // Übergabe loslassen
 }
 
-void Text::setPräzision( int p ) // setzt die Anzahl der Nachkommastellen bei doubles
+void Text::setPrecision( int p ) // setzt die Anzahl der Nachkommastellen bei doubles
 {
-    präzision = p;
+    precision = p;
 }
 
 // constant 
-int Text::getLänge() const // gibt die Text länge zurück
+int Text::getLength() const // gibt die Text länge zurück
 {
     if( !txt )
         return -1;
@@ -601,18 +601,18 @@ int Text::getOKick( int pos ) const
     int lpos = 0;
     while( pos - lpos - 1 > 0 && txt[ pos - lpos - 1 ] != '\n' )
         ++lpos;
-    int vllän = 1;
-    while( pos - lpos - vllän - 1 >= 0 && txt[ pos - lpos - vllän - 1 ] != '\n' )
-        ++vllän;
-    if( vllän > lpos )
-        return pos - vllän;
+    int vllen = 1;
+    while( pos - lpos - vllen - 1 >= 0 && txt[ pos - lpos - vllen - 1 ] != '\n' )
+        ++vllen;
+    if( vllen > lpos )
+        return pos - vllen;
     else
         return pos - lpos - 1;
 }
 
 int Text::getRKick( int pos ) const
 {
-    int tl = getLänge();
+    int tl = getLength();
     if( txt[ pos ] == ' ' )
     {
         int ret = 1;
@@ -630,27 +630,27 @@ int Text::getRKick( int pos ) const
 int Text::getUKick( int pos ) const
 {
     if( !hat( '\n' ) )
-        return getLänge();
+        return getLength();
     int lpos = 0;
     while( pos - lpos > 0 && txt[ pos - lpos - 1 ] != '\n' )
         ++lpos;
-    int llän = 1;
-    while( pos + llän - 1 < getLänge() && txt[ pos + llän - 1 ] != '\n' )
-        ++llän;
-    int vllän = 1;
-    while( pos + llän + vllän - 1 < getLänge() && txt[ pos + llän + vllän - 1 ] != '\n' )
-        ++vllän;
-    if( vllän == 1 )
-        return pos + llän < getLänge() ? pos + llän : getLänge();
-    if( vllän < lpos )
-        return pos + llän + vllän - 1;
-    return pos + llän + lpos;
+    int llen = 1;
+    while( pos + llen - 1 < getLength() && txt[ pos + llen - 1 ] != '\n' )
+        ++llen;
+    int vllen = 1;
+    while( pos + llen + vllen - 1 < getLength() && txt[ pos + llen + vllen - 1 ] != '\n' )
+        ++vllen;
+    if( vllen == 1 )
+        return pos + llen < getLength() ? pos + llen : getLength();
+    if( vllen < lpos )
+        return pos + llen + vllen - 1;
+    return pos + llen + lpos;
 }
 
 bool Text::hat( Text *t ) const // enthält der Text t
 {
     bool ret = 0;
-    if( t->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
+    if( t->getLength() > 0 ) // Auf unsinnige übergabe prüfen
         ret = hat( t->getText() ); // prüfen
     t = t->release(); // Übergabe loslassen
     return ret;
@@ -659,7 +659,7 @@ bool Text::hat( Text *t ) const // enth
 bool Text::hat( const char *t ) const
 {
     int tl = (int)strlen( t ); // Länge der Übergabe
-    int txl = getLänge(); // Länge des Textes
+    int txl = getLength(); // Länge des Textes
     if( tl <= 0 || tl > txl ) // Auf unsinnige übergabe prüfen
         return 0;
     int suchGCount = 0;
@@ -691,7 +691,7 @@ bool Text::hat( const char *t ) const
 
 bool Text::hat( char c ) const // enthält c
 {
-    int l = getLänge(); // Text Länge
+    int l = getLength(); // Text Länge
     bool ret = 0;
     int suchGCount = 0;
     for( int i = 0; i < l; ++i ) // suchen
@@ -711,7 +711,7 @@ bool Text::hat( char c ) const // enth
 
 bool Text::istGleich( const char *t ) const // prüft ob det Text gleich t ist
 {
-    int txl = getLänge(); // Text Länge
+    int txl = getLength(); // Text Länge
     int tl = (int)strlen( t ); // Länge der Übergabe
     if( txl != tl ) // Auf unsinniege Übergabe prüfen
         return 0;
@@ -738,7 +738,7 @@ char *Text::getText() const // gibt Text zur
 int Text::anzahlVon( char c ) const // gibt die Anzahl von c im Text zurück
 {
     int ret = 0;
-    int l = getLänge(); // Text Länge
+    int l = getLength(); // Text Länge
     int suchGCount = 0;
     for( int i = 0; i < l; ++i ) // suchen
     {
@@ -756,7 +756,7 @@ int Text::anzahlVon( char c ) const // gibt die Anzahl von c im Text zur
 int Text::anzahlVon( const char *t ) const // gibt die Anzahl von t im Text zurück
 {
     int tl = (int)strlen( t ); // Länge der Übergabe
-    int txl = getLänge(); // Länge des Textes
+    int txl = getLength(); // Länge des Textes
     if( tl <= 0 || tl > txl ) // Auf unsinnige übergabe prüfen
         return 0;
     int ret = 0;
@@ -791,7 +791,7 @@ int Text::anzahlVon( const char *t ) const // gibt die Anzahl von t im Text zur
 int Text::anzahlVon( Text *t ) const
 {
     int ret = 0;
-    if( t->getLänge() > 0 )  // Auf unsinnige übergabe prüfen
+    if( t->getLength() > 0 )  // Auf unsinnige übergabe prüfen
         ret = anzahlVon( t->getText() ); // zählen
     t = t->release(); // Übergabe loslassen
     return ret;
@@ -799,7 +799,7 @@ int Text::anzahlVon( Text *t ) const
 
 int Text::positionVon( char c ) const // gibt die Position des ersten c zurück
 {
-    int l = getLänge(); // Text Länge
+    int l = getLength(); // Text Länge
     int suchGCount = 0;
     for( int i = 0; i < l; ++i ) // suchen
     {
@@ -819,7 +819,7 @@ int Text::positionVon( char c ) const // gibt die Position des ersten c zur
 int Text::positionVon( const char *t ) const // gibt die Position des ersten t zurück
 {
     int tl = (int)strlen( t ); // Länge der Übergabe
-    int txl = getLänge(); // Länge des Textes
+    int txl = getLength(); // Länge des Textes
     if( tl <= 0 || tl > txl ) // Auf unsinnige übergabe prüfen
         return -1;
     int suchGCount = 0;
@@ -853,7 +853,7 @@ int Text::positionVon( const char *t ) const // gibt die Position des ersten t z
 int Text::positionVon( Text *t ) const
 {
     int ret = 0;
-    if( t->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
+    if( t->getLength() > 0 ) // Auf unsinnige übergabe prüfen
         ret = positionVon( t->getText() ); // position ermitteln
     t = t->release(); // Übergabe loslassen
     return ret;
@@ -861,7 +861,7 @@ int Text::positionVon( Text *t ) const
 
 int Text::positionVon( char c, int index ) const // gibt die Position des i-ten c zurück
 {
-    int l = getLänge(); // Text Länge
+    int l = getLength(); // Text Länge
     int ii = 0;
     int suchGCount = 0;
     for( int i = 0; i < l; ++i ) // suchen
@@ -892,7 +892,7 @@ int Text::positionVon( char c, int index ) const // gibt die Position des i-ten
 int Text::positionVon( const char *t, int index ) const // gibt die Position des i-ten t zurück
 {
     int tl = (int)strlen( t ); // Länge der Übergabe
-    int txl = getLänge(); // Länge des Textes
+    int txl = getLength(); // Länge des Textes
     if( tl <= 0 || tl > txl ) // Auf unsinnige übergabe prüfen
         return 0;
     int i2 = 0;
@@ -937,7 +937,7 @@ int Text::positionVon( const char *t, int index ) const // gibt die Position des
 int Text::positionVon( Text *t, int i ) const
 {
     int ret = 0;
-    if( t->getLänge() > 0 ) // Auf unsinnige übergabe prüfen
+    if( t->getLength() > 0 ) // Auf unsinnige übergabe prüfen
         ret = positionVon( t->getText(), i ); // position ermitteln
     t = t->release(); // Übergabe loslassen
     return ret;
@@ -951,7 +951,7 @@ Text *Text::getTeilText( int p1, int p2 ) const // gibt den Text von p1 bis p2 z
         p1 = p2;
         p2 = x;
     }
-    int l = getLänge(); // Text Länge
+    int l = getLength(); // Text Länge
     if( p1 < 0 || p2 > l ) // Auf unsinnige übergabe prüfen
         return new Text( "" );
     char *cp = new char[ p2 - p1 + 1 ]; // neuen Text erstellen
@@ -967,7 +967,7 @@ Text *Text::getTeilText( int p1, int p2 ) const // gibt den Text von p1 bis p2 z
 
 Text *Text::getTeilText( int p ) const // gibt den Text von p bis zum Ende zurück
 {
-    return getTeilText( p, getLänge() ); // Text zurückgeben
+    return getTeilText( p, getLength() ); // Text zurückgeben
 }
 
 // Reference Counting
@@ -988,39 +988,39 @@ Text *Text::release()
 // Operatoren
 Text &Text::operator+=( const int num )
 {
-    anhängen( num );
+    append( num );
     return *this;
 }
 
 Text &Text::operator+=( const double num )
 {
-    anhängen( num );
+    append( num );
     return *this;
 }
 
 Text &Text::operator+=( const char *txt )
 {
-    anhängen( txt );
+    append( txt );
     return *this;
 }
 
 Text &Text::operator+=( const Text &txt )
 {
-    anhängen( txt.getText() );
+    append( txt.getText() );
     return *this;
 }
 
 Text &Text::operator=( const int num )
 {
     setText( "" );
-    anhängen( num );
+    append( num );
     return *this;
 }
 
 Text &Text::operator=( const double num )
 {
     setText( "" );
-    anhängen( num );
+    append( num );
     return *this;
 }
 
@@ -1057,34 +1057,34 @@ Text::operator double() const
 
 bool Text::operator>( Text &t ) const
 {
-    int län1 = getLänge();
-    int län2 = t.getLänge();
+    int len1 = getLength();
+    int len2 = t.getLength();
     char *txt2 = t;
-    for( int i = 0; i < län1 && i < län2; ++i )
+    for( int i = 0; i < len1 && i < len2; ++i )
     {
         if( txt[ i ] > txt2[ i ] )
             return 1;
         if( txt[ i ] < txt2[ i ] )
             return 0;
     }
-    if( län1 > län2 )
+    if( len1 > len2 )
         return 1;
     return 0;
 }
 
 bool Text::operator<( Text &t ) const
 {
-    int län1 = getLänge();
-    int län2 = t.getLänge();
+    int len1 = getLength();
+    int len2 = t.getLength();
     char *txt2 = t;
-    for( int i = 0; i < län1 && i < län2; ++i )
+    for( int i = 0; i < len1 && i < len2; ++i )
     {
         if( txt[ i ] < txt2[ i ] )
             return 1;
         if( txt[ i ] > txt2[ i ] )
             return 0;
     }
-    if( län1 < län2 )
+    if( len1 < len2 )
         return 1;
     return 0;
 }
@@ -1116,8 +1116,8 @@ int Framework::stringPositionVonString( char *string, char *suche, int sBegPos )
             return -1;
         ++string;
     }
-    int tl = textLänge( suche ); // Länge der Übergabe
-    int txl = textLänge( string ); // Länge des Textes
+    int tl = textLength( suche ); // Länge der Übergabe
+    int txl = textLength( string ); // Länge des Textes
     if( tl <= 0 || tl > txl ) // Auf unsinnige übergabe prüfen
         return -1;
     for( int i = 0; i + tl <= txl; ++i ) // suchen
@@ -1136,7 +1136,7 @@ int Framework::stringPositionVonString( char *string, char *suche, int sBegPos )
 void Framework::TextKopieren( const char *txt ) // kopiert den Text in den Zwischenspeicher
 {
 #ifdef WIN32
-    int län = textLänge( txt ) + 1;
+    int län = textLength( txt ) + 1;
     if( län == 1 )
         return;
     HGLOBAL hMem = GlobalAlloc( GMEM_MOVEABLE, län );
@@ -1151,7 +1151,7 @@ void Framework::TextKopieren( const char *txt ) // kopiert den Text in den Zwisc
 #endif
 }
 
-char *Framework::TextEinfügen() // gibt den Text aus der Zwischenablage zurück
+char *Framework::TextInsert() // gibt den Text aus der Zwischenablage zurück
 {
 #ifdef WIN32
     if( !OpenClipboard( 0 ) )
@@ -1166,7 +1166,7 @@ char *Framework::TextEinf
 #endif
 }
 
-char Framework::KleinOrGroß( char c, bool gr )
+char Framework::smallOrBig( char c, bool gr )
 {
     int ret = c;
     if( gr )
@@ -1279,7 +1279,7 @@ char Framework::KleinOrGro
             }
         }
     }
-    return ret;
+    return (char)ret;
 }
 
 bool Framework::istSchreibbar( unsigned char zeichen ) // prüft, ob zeichen ein Schreibbarer Buchstabe ist
@@ -1312,15 +1312,15 @@ bool Framework::istSchreibbar( unsigned char zeichen ) // pr
 unsigned int Framework::TextZuInt( char *c, int system ) // Konvertiert c zu int
 {
     if( system == 16 )
-        return strtoul( c, 0, system );
-    return strtol( c, 0, system );
+        return (unsigned int)strtoul( c, 0, system );
+    return (unsigned int)strtol( c, 0, system );
 }
 
 unsigned int Framework::TextZuInt( char *c, char **c_ende, int system )
 {
     if( system == 16 )
-        return strtoul( c, c_ende, system );
-    return strtol( c, c_ende, system );
+        return (unsigned int)strtoul( c, c_ende, system );
+    return (unsigned int)strtol( c, c_ende, system );
 }
 
 double Framework::TextZuDouble( char *c ) // Konvertiert c zu double
@@ -1333,7 +1333,7 @@ double Framework::TextZuDouble( char *c, char **c_ende )
     return strtod( c, c_ende );
 }
 
-int Framework::textLänge( const char *txt ) // gibt die Länge von txt zurück
+int Framework::textLength( const char *txt ) // gibt die Länge von txt zurück
 {
     if( !txt )
         return 0;

+ 28 - 28
Text.h

@@ -14,7 +14,7 @@ namespace Framework
         char *txt;
         char suchGBeg;
         char suchGEnd;
-        int präzision;
+        int precision;
         int ref;
 
     public:
@@ -47,44 +47,44 @@ namespace Framework
         __declspec( dllexport ) void setText( Text *t );
         // Hängt eine Zeichenfolge ans Ende des Textes an, die von der Schrift Klasse beim zeichnen interpretiert wird, so dass der nachfolgende Text in einer anderen Farbe gezeichnet wird.
         //  fc: Der Farbcode im A8R8G8B8 Format
-        __declspec( dllexport ) void farbeAnhängen( int fc );
+        __declspec( dllexport ) void appendColor( int fc );
         // Hängt die übergebene Zahl als Hex Text (0-F) ans Ende des Textes an.
         //  num: Die Zahl, die ins Hex System umgewandelt und angehängt werden soll
-        __declspec( dllexport ) void hexAnhängen( int num );
+        __declspec( dllexport ) void appendHex( int num );
         // Fügt den übergebenen Buchtaben der Zeichenkette hinzu
         //  c: Der Buchstabe, der angehängt werden soll
-        __declspec( dllexport ) void anhängen( char c );
+        __declspec( dllexport ) void append( char c );
         // Hängt die übergebene Zeichenkette ans Ende des Textes an
         //  t: Die Zeichenkette, deren Kopie ans Ende des Textes angehängt werden soll
-        __declspec( dllexport ) void anhängen( const char *t );
+        __declspec( dllexport ) void append( const char *t );
         // Hängt einen Teil der übergebenen Zeichenkette ans Ende des Textes an
         //  t: Die Zeichenkette, deren Kopie angehängt werden soll
         //  l: Die Länge des Textabschnittes der angehängt werden soll
-        __declspec( dllexport ) void anhängen( const char *t, int l );
+        __declspec( dllexport ) void append( const char *t, int l );
         // Hängt den Inhalt des eines Textes ans Ende des Textes an
         //  t: Der Text, dessen Kopie ans Ende des Textes angehängt werden soll
-        __declspec( dllexport ) void anhängen( Text *t );
+        __declspec( dllexport ) void append( Text *t );
         // Hängt eine Zahl ans Ende Des Textes an
         //  num: Die Zahl, die in einen Text umgewandelt und am Ende angehängt werden soll
-        __declspec( dllexport ) void anhängen( int num );
+        __declspec( dllexport ) void append( int num );
         // Hängt eine Zahl ohne Vorzeichenbit am Ende des Textes an
         //  num: Die Zahl, die in einen Text umgewandelt und am Ende angehängt werden soll
-        __declspec( dllexport ) void anhängen( unsigned int num );
+        __declspec( dllexport ) void append( unsigned int num );
         // Hängt eine Kommazahl am Ende des Textes an
         //  num: Die Kommazahl, die am Ende des Textes angehängt werden soll
-        __declspec( dllexport ) void anhängen( double num );
+        __declspec( dllexport ) void append( double num );
         // Fügt an einer Bestimmten Stelle ein Zeichen in den Text ein
         //  p: Die position im Text bei der das Zeichen eingefügt werden soll
         //  c: Das Zeichen, das eingefügt werden soll
-        __declspec( dllexport ) void einfügen( int p, char c );
+        __declspec( dllexport ) void insert( int p, char c );
         // Fügt an einer Bestimmten Stelle im Text eine Zeichenkette ein
         //  p: Die position im Text bei der die Zeichenkette eingefügt werden soll
         //  t: Die Zeichenkette, deren Kopie an eingefügt werden soll
-        __declspec( dllexport ) void einfügen( int p, const char *t );
+        __declspec( dllexport ) void insert( int p, const char *t );
         // Fügt den Inhalt eines Textes an einer Bestimmten Stelle im Text ein
         //  p: Die Position im Text, bei der der inhalt des Textest eingefügt werden soll
         //  t: Der Text, dessen Kopie an der Stelle eingefügt werden soll
-        __declspec( dllexport ) void einfügen( int p, Text *t );
+        __declspec( dllexport ) void insert( int p, Text *t );
         // Ersetzt einen bestimmten Textabschnitt mit einer anderen Zeichenkette
         //  p1: Die Startposition des zu ersetzenden Textabschnittes
         //  p2: Die Endposition des zu ersetzenden Textabschnittes
@@ -144,41 +144,41 @@ namespace Framework
         __declspec( dllexport ) void ersetzen( int i, Text *t1, Text *t2 );
         // Löscht den bisherigen Text und erzeugt einen Text, der aus einem Bestimten Buchstaben besteht, mit einer bestimmten Länge
         //  c: Der Buchstabe, aus dem der Text bestehen soll
-        //  län: Die Länge des Textes
-        __declspec( dllexport ) void füllText( char c, int län );
+        //  length: Die Länge des Textes
+        __declspec( dllexport ) void fillText( char c, int length );
         // Löscht ein Bestimmtes Zeichen aus dem Text
         //  p: Die Position des zu löschenden Zeichens
-        __declspec( dllexport ) void löschen( int p );
+        __declspec( dllexport ) void remove( int p );
         // Löscht einen Bestimmten Textabschnitt
         //  p1: Die Startposition des zu löschenden Abschnittes
         //  p2: Die Endposition des zu löschenden Abschnittes (Das Zeichen bei p2 bleibt erhalten)
-        __declspec( dllexport ) void löschen( int p1, int p2 );
+        __declspec( dllexport ) void remove( int p1, int p2 );
         // Löscht jedes Vorkommen eines bestimmten Buchsaben
         //  c: Der Buchstabe, dessen Vorkommen gelöscht werden soll
-        __declspec( dllexport ) void löschen( char c );
+        __declspec( dllexport ) void remove( char c );
         // Löscht jedes Vorkommen einer bestimmten Zeichenkette
         //  t: Die Zeichenkette, deren Vorkommen entfernt werden sollen
-        __declspec( dllexport ) void löschen( const char *t );
+        __declspec( dllexport ) void remove( const char *t );
         // Löscht jedes Vorkommen des Inhalts eines Textes
         //  t: Der text, dessen Inhalt gelöscht werden soll
-        __declspec( dllexport ) void löschen( Text *t );
+        __declspec( dllexport ) void remove( Text *t );
         // Löscht das i-te Vorkommen eines bestimmten Buchstaben
         //  i: Das wie vielte Vorkommen des Buchstabens gelöscht werden soll
         //  c: Der Buchstabe, dessen i-tes Vorkommen gelöscht werden soll
-        __declspec( dllexport ) void löschen( int i, char c );
+        __declspec( dllexport ) void remove( int i, char c );
         // Löscht das i-te Vorkommen einer bestimmten Zechenkette
         //  i: Das wie vielte Vorkommen der Zeichenkette gelöscht werden soll
         //  t: Die Zeichenkette, dessen i-tes Vorkommen gelöscht werden soll
-        __declspec( dllexport ) void löschen( int i, const char *t );
+        __declspec( dllexport ) void remove( int i, const char *t );
         // Löscht das i-te Vorkommen eines bestimmten Textinhaltes
         //  i: Das wie vielte Vorkommen des Textinhaltes gelöscht werden soll
         //  t: Der Text, dessen i-tes Vorkommen gelöscht werden soll
-        __declspec( dllexport ) void löschen( int i, Text *t );
+        __declspec( dllexport ) void remove( int i, Text *t );
         // Setzt die Anzahl der Nachkommastellen beim Anhängen von Kommazahlen
         //  p: Die Anzahl der Stellen nach dem Komma
-        __declspec( dllexport ) void setPräzision( int p );
+        __declspec( dllexport ) void setPrecision( int p );
         // Gibt die Länge des Textes zurück
-        __declspec( dllexport ) int getLänge() const;
+        __declspec( dllexport ) int getLength() const;
         // Ermittelt die neue Curserposition nachdem Drücken der 'Links' Pfeiltaste
         //  pos: Die alte Curserposition
         __declspec( dllexport ) int getLKick( int pos ) const;
@@ -311,12 +311,12 @@ namespace Framework
     __declspec( dllexport ) void TextKopieren( const char *txt );
     // Ermittelt, ob in der Zwischenablage des Betriebssystems eine Zeichenkette steht.
     //  return: Die Zeichenkette aus der Zwischenablage. Wenn keine Zeichenkette kopiert wurde, wird eine lehre Zeichenkette zurückgegeben.
-    __declspec( dllexport ) char *TextEinfügen();
+    __declspec( dllexport ) char *TextInsert();
     // Wandelt einen bestimmten schreibbaren Buchstaben in einen Groß- oder Kleinbuchstaben um
     //  c: Der Buchstabe, der umgewandelt werden soll
     //  groß: Wenn (true), so wird der Buchstabe in einen Großbuchstaben umgewandelt. Wenn (false), wird er in einen Kleinbuchstaben umgewandelt.
     //  return: Den umgewandelten Buchstaben
-    __declspec( dllexport ) char KleinOrGroß( char c, bool groß );
+    __declspec( dllexport ) char smallOrBig( char c, bool big );
     // Ermittelt, ob ein Buchstabe ein schreibbares Zeichen ist
     //  zeichen: Der Buchstabe, der geprüft werden soll
     //  return: (true), wenn der Buchstabe gezeichnet werden kann. (false) sonnst
@@ -344,6 +344,6 @@ namespace Framework
     // Ermittelt die Länge einer bestimmten Zeichenkette
     //  txt: Die Zeichenkette, deren Länge ermittelt werden soll
     //  return: Die Länge der Zeichenkette
-    __declspec( dllexport ) int textLänge( const char *txt );
+    __declspec( dllexport ) int textLength( const char *txt );
 }
 #endif

+ 697 - 699
TextFeld.cpp

@@ -18,825 +18,823 @@ using namespace Framework;
 // Inhalt der TextFeld Klasse aus TextFeld.h 
 // Konstruktor 
 TextFeld::TextFeld()
-    : ZeichnungHintergrund(),
-    schriftGröße( 12 ),
-    schrift( 0 ),
-    text( 0 ),
-    sF( 0xFF000000 ),
-    showChar( 0 ),
-    begf( 0 ),
-    cpos( 0 ),
-    tickVal( 0 ),
-    mausKlick( 0 ),
-    ref( 1 )
+	: ZeichnungHintergrund(),
+	schriftSize( 12 ),
+	schrift( 0 ),
+	text( 0 ),
+	sF( 0xFF000000 ),
+	showChar( 0 ),
+	begf( 0 ),
+	cpos( 0 ),
+	tickVal( 0 ),
+	mausKlick( 0 ),
+	ref( 1 )
 {
-    horizontalScrollBar = new HScrollBar();
-    vertikalScrollBar = new VScrollBar();
-    style = 0;
-    this->setMausEreignis( _ret1ME );
-    this->setTastaturEreignis( _ret1TE );
+	horizontalScrollBar = new HScrollBar();
+	vertikalScrollBar = new VScrollBar();
+	style = 0;
+	this->setMausEreignis( _ret1ME );
+	this->setTastaturEreignis( _ret1TE );
 }
 
 // Destruktor 
 TextFeld::~TextFeld()
 {
-    if( schrift )
-        schrift->release();
-    if( text )
-        text->release();
+	if( schrift )
+		schrift->release();
+	if( text )
+		text->release();
 }
 
 // nicht constant 
 void TextFeld::setText( Text *txt ) // setzt den angezeigten Text
 {
-    lockZeichnung();
-    if( !text )
-        text = new Text();
-    text->setText( txt );
-    if( hatStyle( Style::VScroll ) )
-        updateVScroll();
-    if( hatStyle( Style::HScroll ) )
-        updateHScroll();
-    unlockZeichnung();
-    rend = 1;
+	lockZeichnung();
+	if( !text )
+		text = new Text();
+	text->setText( txt );
+	if( hatStyle( Style::VScroll ) )
+		updateVScroll();
+	if( hatStyle( Style::HScroll ) )
+		updateHScroll();
+	unlockZeichnung();
+	rend = 1;
 }
 
 void TextFeld::setTextZ( Text *txt ) // setzt einen Zeiger zum angezeigten Text
 {
-    lockZeichnung();
-    if( text )
-        text->release();
-    text = txt;
-    if( hatStyle( Style::VScroll ) )
-        updateVScroll();
-    if( hatStyle( Style::HScroll ) )
-        updateHScroll();
-    rend = 1;
-    unlockZeichnung();
+	lockZeichnung();
+	if( text )
+		text->release();
+	text = txt;
+	if( hatStyle( Style::VScroll ) )
+		updateVScroll();
+	if( hatStyle( Style::HScroll ) )
+		updateHScroll();
+	rend = 1;
+	unlockZeichnung();
 }
 
 void TextFeld::setText( const char *txt ) // setzt den angezeigten Text
 {
-    lockZeichnung();
-    if( !text )
-        text = new Text();
-    text->setText( txt );
-    if( hatStyle( Style::VScroll ) )
-        updateVScroll();
-    if( hatStyle( Style::HScroll ) )
-        updateHScroll();
-    rend = 1;
-    unlockZeichnung();
+	lockZeichnung();
+	if( !text )
+		text = new Text();
+	text->setText( txt );
+	if( hatStyle( Style::VScroll ) )
+		updateVScroll();
+	if( hatStyle( Style::HScroll ) )
+		updateHScroll();
+	rend = 1;
+	unlockZeichnung();
 }
 
 void TextFeld::addZeile( const char *zeile ) // fügt Zeile An
 {
-    if( text )
-    {
-        Text *txt = new Text( zeile );
-        txt->anhängen( "\n" );
-        if( schrift )
-        {
-            bool vs = vertikalScrollBar && hatStyle( Style::VScroll );
-            int rbr = ( rahmen && hatStyle( Style::Rahmen ) ) ? rahmen->getRBreite() : 0;
-            schrift->lock();
-            schrift->setSchriftGröße( schriftGröße );
-            schrift->textFormatieren( txt, gr.x - ( (int)vs * 15 ) - rbr * 2, schriftGröße );
-            schrift->unlock();
-        }
-        lockZeichnung();
-        text->anhängen( txt->getText() );
-        unlockZeichnung();
-        txt->release();
-        if( hatStyle( Style::VScroll ) )
-            updateVScroll();
-        if( hatStyle( Style::HScroll ) )
-            updateHScroll();
-        rend = 1;
-    }
+	if( text )
+	{
+		Text *txt = new Text( zeile );
+		txt->append( "\n" );
+		if( schrift )
+		{
+			bool vs = vertikalScrollBar && hatStyle( Style::VScroll );
+			int rbr = ( rahmen && hatStyle( Style::Rahmen ) ) ? rahmen->getRBreite() : 0;
+			schrift->lock();
+			schrift->setSchriftSize( schriftSize );
+			schrift->textFormatieren( txt, gr.x - ( (int)vs * 15 ) - rbr * 2, schriftSize );
+			schrift->unlock();
+		}
+		lockZeichnung();
+		text->append( txt->getText() );
+		unlockZeichnung();
+		txt->release();
+		if( hatStyle( Style::VScroll ) )
+			updateVScroll();
+		if( hatStyle( Style::HScroll ) )
+			updateHScroll();
+		rend = 1;
+	}
 }
 
 void TextFeld::setAuswahl( int pos1, int pos2 ) // setzt den Ausgewählten Text
 {
-    cpos = pos1;
-    begf = pos2;
-    rend = 1;
+	cpos = pos1;
+	begf = pos2;
+	rend = 1;
 }
 
 void TextFeld::setAuswahl( Punkt &auswahl )
 {
-    cpos = auswahl.x;
-    begf = auswahl.y;
-    rend = 1;
+	cpos = auswahl.x;
+	begf = auswahl.y;
+	rend = 1;
 }
 
 void TextFeld::setSchriftZ( Schrift *schrift ) // setzt einen Zeiger zur Schrift
 {
-    if( this->schrift )
-        this->schrift->release();
-    this->schrift = schrift;
-    rend = 1;
+	if( this->schrift )
+		this->schrift->release();
+	this->schrift = schrift;
+	rend = 1;
 }
 
-void TextFeld::setSchriftGröße( unsigned char gr ) // setzt die Schriftgröße
+void TextFeld::setSchriftSize( unsigned char gr ) // setzt die Schriftgröße
 {
-    schriftGröße = gr;
-    rend = 1;
+	schriftSize = gr;
+	rend = 1;
 }
 
 void TextFeld::setSchriftFarbe( int fc ) // setzt die Schrift Farbe
 {
-    sF = fc;
-    rend = 1;
+	sF = fc;
+	rend = 1;
 }
 
 void TextFeld::setSchowChar( unsigned char c ) // bei Passwortfeld *
 {
-    showChar = c;
-    rend = 1;
+	showChar = c;
+	rend = 1;
 }
 
 void TextFeld::setVScrollZuZeile( int zeile ) // scrollt zur Zeile
 {
-    if( vertikalScrollBar && schrift && text && hatStyle( Style::Mehrzeilig ) )
-    {
-        schrift->lock();
-        schrift->setSchriftGröße( schriftGröße );
-        Text t = "a";
-        vertikalScrollBar->scroll( zeile * ( schrift->getZeilenabstand() + schrift->getTextHöhe( &t ) ) );
-        schrift->unlock();
-        rend = 1;
-    }
+	if( vertikalScrollBar && schrift && text && hatStyle( Style::Mehrzeilig ) )
+	{
+		schrift->lock();
+		schrift->setSchriftSize( schriftSize );
+		Text t = "a";
+		vertikalScrollBar->scroll( zeile * ( schrift->getZeilenabstand() + schrift->getTextHeight( &t ) ) );
+		schrift->unlock();
+		rend = 1;
+	}
 }
 
 void TextFeld::updateVScroll( int pos ) // scrollt nach unten
 {
-    if( pos == -1 )
-        pos = cpos;
-    if( vertikalScrollBar )
-    {
-        int sPos = 0;
-        int hö = 0;
-        if( text && schrift )
-        {
-            if( hatStyleNicht( Style::Mehrzeilig ) )
-                text->löschen( '\n' );
-            schrift->setSchriftGröße( schriftGröße );
- = gr.y;
-            if( hatStyle( Style::Rahmen ) && rahmen )
- -= rahmen->getRBreite() * 2;
-            if( hatStyle( Style::HScroll ) && horizontalScrollBar )
- -= 15;
-            vertikalScrollBar->update( schrift->getTextHöhe( text ) + schriftGröße + schrift->getTextHöhe( &Text( "a" ) ), hö );
-            Text t;
-            int zh = schrift->getTextHöhe( &t ) + schrift->getZeilenabstand();
-            int l = text->getLänge();
-            for( int i = 0; i < l && ( i < pos || hatStyleNicht( Style::Erlaubt ) ); ++i )
-            {
-                if( text->getText()[ i ] == '\n' )
-                    sPos += zh;
-            }
-        }
-        if( schrift )
-        {
-            if( sPos - schrift->getZeilenabstand() - schrift->getTextHöhe( &Text( "a" ) ) < vertikalScrollBar->getScroll() )
-                vertikalScrollBar->scroll( sPos - schrift->getZeilenabstand() - schrift->getTextHöhe( &Text( "a" ) ) );
-            if( sPos + schrift->getZeilenabstand() + schrift->getTextHöhe( &Text( "a" ) ) > vertikalScrollBar->getScroll() + vertikalScrollBar->getScrollData()->anzeige )
-                vertikalScrollBar->scroll( sPos + ( schrift->getZeilenabstand() + schrift->getTextHöhe( &Text( "a" ) ) ) * 2 - hö );
-        }
-        rend = 1;
-    }
+	if( pos == -1 )
+		pos = cpos;
+	if( vertikalScrollBar )
+	{
+		int sPos = 0;
+		int hi = 0;
+		if( text && schrift )
+		{
+			if( hatStyleNicht( Style::Mehrzeilig ) )
+				text->remove( '\n' );
+			schrift->setSchriftSize( schriftSize );
+			hi = gr.y;
+			if( hatStyle( Style::Rahmen ) && rahmen )
+				hi -= rahmen->getRBreite() * 2;
+			if( hatStyle( Style::HScroll ) && horizontalScrollBar )
+				hi -= 15;
+			vertikalScrollBar->update( schrift->getTextHeight( text ) + schriftSize + schrift->getTextHeight( Text( "a" ).getThis() ), hi );
+			Text t;
+			int zh = schrift->getTextHeight( &t ) + schrift->getZeilenabstand();
+			int l = text->getLength();
+			for( int i = 0; i < l && ( i < pos || hatStyleNicht( Style::Erlaubt ) ); ++i )
+			{
+				if( text->getText()[ i ] == '\n' )
+					sPos += zh;
+			}
+		}
+		if( schrift )
+		{
+			if( sPos - schrift->getZeilenabstand() - schrift->getTextHeight( Text( "a" ).getThis() ) < vertikalScrollBar->getScroll() )
+				vertikalScrollBar->scroll( sPos - schrift->getZeilenabstand() - schrift->getTextHeight( Text( "a" ).getThis() ) );
+			if( sPos + schrift->getZeilenabstand() + schrift->getTextHeight( Text( "a" ).getThis() ) > vertikalScrollBar->getScroll() + vertikalScrollBar->getScrollData()->anzeige )
+				vertikalScrollBar->scroll( sPos + ( schrift->getZeilenabstand() + schrift->getTextHeight( Text( "a" ).getThis() ) ) * 2 - hi );
+		}
+		rend = 1;
+	}
 }
 
 void TextFeld::updateHScroll( int pos ) // scrollt zur Curser Position
 {
-    if( pos == -1 )
-        pos = cpos;
-    if( horizontalScrollBar && text && schrift )
-    {
-        schrift->lock();
-        schrift->setSchriftGröße( schriftGröße );
-        int br = gr.x;
-        if( hatStyle( Style::Rahmen ) && rahmen )
-            br -= rahmen->getRBreite() * 2;
-        if( hatStyle( Style::VScroll ) && vertikalScrollBar )
-            br -= 15;
-        int maxBr = schrift->getTextBreite( text ) + schriftGröße;
-        horizontalScrollBar->update( maxBr, br );
-        if( hatStyle( Style::Erlaubt ) && maxBr > br && pos > 0 && pos < text->getLänge() )
-        {
-            int l = text->getLänge();
-            int p1 = 0;
-            char *tmp = text->getText();
-            for( int i = 0; i < pos; i++, tmp++ )
-            {
-                if( *tmp == '\n' )
-                    p1 = i + 1;
-            }
-            Text *t = text->getTeilText( p1, pos );
-            int cbr = schrift->getTextBreite( t );
-            t->release();
-            if( cbr + schriftGröße > horizontalScrollBar->getScroll() + horizontalScrollBar->getScrollData()->anzeige )
-                horizontalScrollBar->scroll( cbr + schriftGröße - br );
-            if( cbr - schriftGröße < horizontalScrollBar->getScroll() )
-                horizontalScrollBar->scroll( cbr - schriftGröße );
-        }
-        schrift->unlock();
-    }
+	if( pos == -1 )
+		pos = cpos;
+	if( horizontalScrollBar && text && schrift )
+	{
+		schrift->lock();
+		schrift->setSchriftSize( schriftSize );
+		int br = gr.x;
+		if( hatStyle( Style::Rahmen ) && rahmen )
+			br -= rahmen->getRBreite() * 2;
+		if( hatStyle( Style::VScroll ) && vertikalScrollBar )
+			br -= 15;
+		int maxBr = schrift->getTextBreite( text ) + schriftSize;
+		horizontalScrollBar->update( maxBr, br );
+		if( hatStyle( Style::Erlaubt ) && maxBr > br && pos > 0 && pos < text->getLength() )
+		{
+			int p1 = 0;
+			char *tmp = text->getText();
+			for( int i = 0; i < pos; i++, tmp++ )
+			{
+				if( *tmp == '\n' )
+					p1 = i + 1;
+			}
+			Text *t = text->getTeilText( p1, pos );
+			int cbr = schrift->getTextBreite( t );
+			t->release();
+			if( cbr + schriftSize > horizontalScrollBar->getScroll() + horizontalScrollBar->getScrollData()->anzeige )
+				horizontalScrollBar->scroll( cbr + schriftSize - br );
+			if( cbr - schriftSize < horizontalScrollBar->getScroll() )
+				horizontalScrollBar->scroll( cbr - schriftSize );
+		}
+		schrift->unlock();
+	}
 }
 
 bool TextFeld::tick( double tickval ) // tick
 {
-    if( hatStyle( Style::Fokus ) )
-    {
-        if( tickVal < 0.5 && tickVal + tickval >= 0.5 )
-            rend = 1;
-        if( tickVal >= 0.5 && tickVal + tickval >= 1 )
-            rend = 1;
-        tickVal += tickval;
-        if( tickVal >= 1 )
-            tickVal -= 1;
-    }
-    return __super::tick( tickval );
+	if( hatStyle( Style::Fokus ) )
+	{
+		if( tickVal < 0.5 && tickVal + tickval >= 0.5 )
+			rend = 1;
+		if( tickVal >= 0.5 && tickVal + tickval >= 1 )
+			rend = 1;
+		tickVal += tickval;
+		if( tickVal >= 1 )
+			tickVal -= 1;
+	}
+	return ZeichnungHintergrund::tick( tickval );
 }
 
 void TextFeld::doMausEreignis( MausEreignis &me ) // Maus Ereignis
 {
-    bool nmakc = !me.verarbeitet;
-    if( hatStyleNicht( Style::Erlaubt ) || hatStyleNicht( Style::Sichtbar ) )
-    {
-        if( toolTip )
-            toolTip->setMausIn( 0 );
-        me.mx -= pos.x, me.my -= pos.y;
-        int rbr = 0;
-        if( rahmen )
-            rbr = rahmen->getRBreite();
-        if( ( vertikalScrollBar && hatStyle( Style::VScroll ) ||
-              horizontalScrollBar && hatStyle( Style::HScroll ) ) &&
-            me.mx > rbr && me.mx < gr.x - rbr &&
-            me.my > rbr && me.my < gr.y - rbr )
-        {
-            vertikalScrollBar->doMausMessage( gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me );
-            horizontalScrollBar->doMausMessage( rbr, gr.y - rbr * 2 - 15, gr.x - rbr * 2 - ( ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? 15 : 0 ), 15, me );
-            me.verarbeitet = 1;
-        }
-        me.mx += pos.x, me.my += pos.y;
-        mausKlick = 0;
-        return;
-    }
-    bool removeFokus = 0;
-    if( me.verarbeitet || !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) )
-    {
-        if( mausIn )
-        {
-            mausIn = 0;
-            if( toolTip )
-                toolTip->setMausIn( 0 );
-            MausEreignis me2;
-            me2.id = ME_Verlässt;
-            me2.mx = me.mx;
-            me2.my = me.my;
-            me2.verarbeitet = 0;
-            doMausEreignis( me2 );
-            return;
-        }
-        removeFokus = 1;
-    }
-    if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt )
-    {
-        if( removeFokus && me.id == ME_RLinks )
-        {
-            me.mx -= pos.x, me.my -= pos.y;
-            if( hatStyle( Style::Fokus ) && Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
-                löscheStyle( Style::Fokus );
-            if( nmakc && me.verarbeitet && nMak )
-                me.verarbeitet = nMak( nmakParam, this, me );
-            me.mx += pos.x, me.my += pos.y;
-        }
-        if( toolTip )
-            toolTip->setMausIn( 0 );
-        return;
-    }
-    if( !mausIn && me.id != ME_Verlässt )
-    {
-        mausIn = 1;
-        if( toolTip )
-            toolTip->setMausIn( 1 );
-        MausEreignis me2;
-        me2.id = ME_Betritt;
-        me2.mx = me.mx;
-        me2.my = me.my;
-        me2.verarbeitet = 0;
-        doMausEreignis( me2 );
-    }
-    me.mx -= pos.x, me.my -= pos.y;
-    if( Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
-    {
-        if( removeFokus && me.id == ME_RLinks )
-            löscheStyle( Style::Fokus );
-        if( !me.verarbeitet )
-        {
-            if( hatStyleNicht( Style::Fokus ) )
-            {
-                mausKlick = 0;
-                if( me.id == Framework::ME_PLinks )
-                    addStyle( Style::Fokus );
-            }
-            int rbr = 0;
-            if( rahmen )
-                rbr = rahmen->getRBreite();
-            if( vertikalScrollBar && hatStyle( Style::VScroll ) )
-            {
-                if( vertikalScrollBar->doMausMessage( gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me ) )
-                {
-                    if( nmakc && me.verarbeitet && nMak )
-                        me.verarbeitet = nMak( nmakParam, this, me );
-                    me.mx += pos.x, me.my += pos.y;
-                    return;
-                }
-            }
-            if( horizontalScrollBar && hatStyle( Style::HScroll ) )
-            {
-                if( horizontalScrollBar->doMausMessage( rbr, gr.y - rbr - 15, gr.x - rbr * 2 - ( ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? 15 : 0 ), 15, me ) )
-                {
-                    if( nmakc && me.verarbeitet && nMak )
-                        me.verarbeitet = nMak( nmakParam, this, me );
-                    me.mx += pos.x, me.my += pos.y;
-                    return;
-                }
-            }
-            if( me.mx < gr.x - rbr - 15 )
-            {
-                if( schrift )
-                {
-                    schrift->setSchriftGröße( schriftGröße );
-                    bool shift = TastenStand[ T_Shift ];
-                    if( me.id == Framework::ME_PLinks )
-                    {
-                        int tbr = schrift->getTextBreite( text );
-                        int thö = schrift->getTextHöhe( text );
-                        int scrollHö = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0;
-                        int scrollBr = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0;
-                        int xxx = me.mx - rbr + scrollBr;
-                        int yyy = me.my - rbr + scrollHö;
-                        int scrollBreite = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) * 15;
-                        int scrollHöhe = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) * 15;
-                        if( hatStyle( Style::HCenter ) )
-                            xxx -= ( ( ( gr.x - scrollBreite ) / 2 ) - tbr / 2 ) - rbr;
-                        if( hatStyle( Style::VCenter ) && hatStyleNicht( Style::VScroll ) )
-                            yyy -= ( ( ( gr.y - scrollHö ) / 2 ) - thö / 2 ) - rbr;
-                        int pos = schrift->textPos( text, xxx, yyy );
-                        if( pos != -1 )
-                        {
-                            if( shift )
-                                begf = pos;
-                            else
-                            {
-                                cpos = pos;
-                                begf = pos;
-                            }
-                            rend = 1;
-                            if( vertikalScrollBar && hatStyle( Style::VScroll ) )
-                                updateVScroll( begf );
-                            if( horizontalScrollBar && hatStyle( Style::HScroll ) )
-                                updateHScroll( begf );
-                        }
-                        mausKlick = 1;
-                    }
-                    if( me.id == ME_Bewegung && mausKlick )
-                    {
-                        int tbr = schrift->getTextBreite( text );
-                        int thö = schrift->getTextHöhe( text );
-                        int scrollHö = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0;
-                        int scrollBr = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0;
-                        int xxx = me.mx - rbr + scrollBr;
-                        int yyy = me.my - rbr + scrollHö;
-                        int scrollBreite = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) * 15;
-                        int scrollHöhe = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) * 15;
-                        if( hatStyle( Style::HCenter ) )
-                            xxx -= ( ( ( gr.x - scrollBreite ) / 2 ) - tbr / 2 ) - rbr;
-                        if( hatStyle( Style::VCenter ) && hatStyleNicht( Style::VScroll ) )
-                            yyy -= ( ( ( gr.y - scrollHöhe ) / 2 ) - thö / 2 ) - rbr;
-                        int pos = schrift->textPos( text, xxx, yyy );
-                        if( pos != -1 )
-                        {
-                            if( begf != pos )
-                                rend = 1;
-                            begf = pos;
-                            if( vertikalScrollBar && hatStyle( Style::VScroll ) )
-                                updateVScroll( begf );
-                            if( horizontalScrollBar && hatStyle( Style::HScroll ) )
-                                updateHScroll( begf );
-                        }
-                    }
-                    if( me.id == ME_RLinks )
-                    {
-                        if( !shift )
-                        {
-                            int tbr = schrift->getTextBreite( text );
-                            int thö = schrift->getTextHöhe( text );
-                            int scrollHö = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0;
-                            int scrollBr = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0;
-                            int xxx = me.mx - rbr + scrollBr;
-                            int yyy = me.my - rbr + scrollHö;
-                            int scrollBreite = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) * 15;
-                            int scrollHöhe = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) * 15;
-                            if( hatStyle( Style::HCenter ) )
-                                xxx -= ( ( ( gr.x - scrollBreite ) / 2 ) - tbr / 2 ) - rbr;
-                            if( hatStyle( Style::VCenter ) && hatStyleNicht( Style::VScroll ) )
-                                yyy -= ( ( ( gr.y - scrollHöhe ) / 2 ) - thö / 2 ) - rbr;
-                            int pos = schrift->textPos( text, xxx, yyy );
-                            if( pos != -1 )
-                            {
-                                begf = pos;
-                                if( vertikalScrollBar && hatStyle( Style::VScroll ) )
-                                    updateVScroll( begf );
-                                if( horizontalScrollBar && hatStyle( Style::HScroll ) )
-                                    updateHScroll( begf );
-                            }
-                            rend = 1;
-                        }
-                        mausKlick = 0;
-                    }
-                }
-            }
-        }
-        me.verarbeitet = 1;
-    }
-    if( nmakc && me.verarbeitet && nMak )
-        me.verarbeitet = nMak( nmakParam, this, me );
-    me.mx += pos.x, me.my += pos.y;
+	bool nmakc = !me.verarbeitet;
+	if( hatStyleNicht( Style::Erlaubt ) || hatStyleNicht( Style::Sichtbar ) )
+	{
+		if( toolTip )
+			toolTip->setMausIn( 0 );
+		me.mx -= pos.x, me.my -= pos.y;
+		int rbr = 0;
+		if( rahmen )
+			rbr = rahmen->getRBreite();
+		if( ( ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ||
+			( horizontalScrollBar && hatStyle( Style::HScroll ) ) ) &&
+			me.mx > rbr && me.mx < gr.x - rbr &&
+			me.my > rbr && me.my < gr.y - rbr )
+		{
+			vertikalScrollBar->doMausMessage( gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me );
+			horizontalScrollBar->doMausMessage( rbr, gr.y - rbr * 2 - 15, gr.x - rbr * 2 - ( ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? 15 : 0 ), 15, me );
+			me.verarbeitet = 1;
+		}
+		me.mx += pos.x, me.my += pos.y;
+		mausKlick = 0;
+		return;
+	}
+	bool removeFokus = 0;
+	if( me.verarbeitet || !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) )
+	{
+		if( mausIn )
+		{
+			mausIn = 0;
+			if( toolTip )
+				toolTip->setMausIn( 0 );
+			MausEreignis me2;
+			me2.id = ME_Leaves;
+			me2.mx = me.mx;
+			me2.my = me.my;
+			me2.verarbeitet = 0;
+			doMausEreignis( me2 );
+			return;
+		}
+		removeFokus = 1;
+	}
+	if( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves )
+	{
+		if( removeFokus && me.id == ME_RLinks )
+		{
+			me.mx -= pos.x, me.my -= pos.y;
+			if( hatStyle( Style::Fokus ) && Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
+				removeStyle( Style::Fokus );
+			if( nmakc && me.verarbeitet && nMak )
+				me.verarbeitet = nMak( nmakParam, this, me );
+			me.mx += pos.x, me.my += pos.y;
+		}
+		if( toolTip )
+			toolTip->setMausIn( 0 );
+		return;
+	}
+	if( !mausIn && me.id != ME_Leaves )
+	{
+		mausIn = 1;
+		if( toolTip )
+			toolTip->setMausIn( 1 );
+		MausEreignis me2;
+		me2.id = ME_Betritt;
+		me2.mx = me.mx;
+		me2.my = me.my;
+		me2.verarbeitet = 0;
+		doMausEreignis( me2 );
+	}
+	me.mx -= pos.x, me.my -= pos.y;
+	if( Mak && ( me.verarbeitet || Mak( makParam, this, me ) ) )
+	{
+		if( removeFokus && me.id == ME_RLinks )
+			removeStyle( Style::Fokus );
+		if( !me.verarbeitet )
+		{
+			if( hatStyleNicht( Style::Fokus ) )
+			{
+				mausKlick = 0;
+				if( me.id == Framework::ME_PLinks )
+					addStyle( Style::Fokus );
+			}
+			int rbr = 0;
+			if( rahmen )
+				rbr = rahmen->getRBreite();
+			if( vertikalScrollBar && hatStyle( Style::VScroll ) )
+			{
+				if( vertikalScrollBar->doMausMessage( gr.x - rbr - 15, rbr, 15, gr.y - rbr * 2, me ) )
+				{
+					if( nmakc && me.verarbeitet && nMak )
+						me.verarbeitet = nMak( nmakParam, this, me );
+					me.mx += pos.x, me.my += pos.y;
+					return;
+				}
+			}
+			if( horizontalScrollBar && hatStyle( Style::HScroll ) )
+			{
+				if( horizontalScrollBar->doMausMessage( rbr, gr.y - rbr - 15, gr.x - rbr * 2 - ( ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? 15 : 0 ), 15, me ) )
+				{
+					if( nmakc && me.verarbeitet && nMak )
+						me.verarbeitet = nMak( nmakParam, this, me );
+					me.mx += pos.x, me.my += pos.y;
+					return;
+				}
+			}
+			if( me.mx < gr.x - rbr - 15 )
+			{
+				if( schrift )
+				{
+					schrift->setSchriftSize( schriftSize );
+					bool shift = TastenStand[ T_Shift ];
+					if( me.id == Framework::ME_PLinks )
+					{
+						int tbr = schrift->getTextBreite( text );
+						int thi = schrift->getTextHeight( text );
+						int scrollHi = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0;
+						int scrollBr = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0;
+						int xxx = me.mx - rbr + scrollBr;
+						int yyy = me.my - rbr + scrollHi;
+						int scrollBreite = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) * 15;
+						if( hatStyle( Style::HCenter ) )
+							xxx -= ( ( ( gr.x - scrollBreite ) / 2 ) - tbr / 2 ) - rbr;
+						if( hatStyle( Style::VCenter ) && hatStyleNicht( Style::VScroll ) )
+							yyy -= ( ( ( gr.y - scrollHi ) / 2 ) - thi / 2 ) - rbr;
+						int pos = schrift->textPos( text, xxx, yyy );
+						if( pos != -1 )
+						{
+							if( shift )
+								begf = pos;
+							else
+							{
+								cpos = pos;
+								begf = pos;
+							}
+							rend = 1;
+							if( vertikalScrollBar && hatStyle( Style::VScroll ) )
+								updateVScroll( begf );
+							if( horizontalScrollBar && hatStyle( Style::HScroll ) )
+								updateHScroll( begf );
+						}
+						mausKlick = 1;
+					}
+					if( me.id == ME_Bewegung && mausKlick )
+					{
+						int tbr = schrift->getTextBreite( text );
+						int thi = schrift->getTextHeight( text );
+						int scrollHi = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0;
+						int scrollBr = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0;
+						int xxx = me.mx - rbr + scrollBr;
+						int yyy = me.my - rbr + scrollHi;
+						int scrollBreite = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) * 15;
+						int scrollHeight = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) * 15;
+						if( hatStyle( Style::HCenter ) )
+							xxx -= ( ( ( gr.x - scrollBreite ) / 2 ) - tbr / 2 ) - rbr;
+						if( hatStyle( Style::VCenter ) && hatStyleNicht( Style::VScroll ) )
+							yyy -= ( ( ( gr.y - scrollHeight ) / 2 ) - thi / 2 ) - rbr;
+						int pos = schrift->textPos( text, xxx, yyy );
+						if( pos != -1 )
+						{
+							if( begf != pos )
+								rend = 1;
+							begf = pos;
+							if( vertikalScrollBar && hatStyle( Style::VScroll ) )
+								updateVScroll( begf );
+							if( horizontalScrollBar && hatStyle( Style::HScroll ) )
+								updateHScroll( begf );
+						}
+					}
+					if( me.id == ME_RLinks )
+					{
+						if( !shift )
+						{
+							int tbr = schrift->getTextBreite( text );
+							int thi = schrift->getTextHeight( text );
+							int scrollHi = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) ? vertikalScrollBar->getScroll() : 0;
+							int scrollBr = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) ? horizontalScrollBar->getScroll() : 0;
+							int xxx = me.mx - rbr + scrollBr;
+							int yyy = me.my - rbr + scrollHi;
+							int scrollBreite = ( vertikalScrollBar && hatStyle( Style::VScroll ) ) * 15;
+							int scrollHeight = ( horizontalScrollBar && hatStyle( Style::HScroll ) ) * 15;
+							if( hatStyle( Style::HCenter ) )
+								xxx -= ( ( ( gr.x - scrollBreite ) / 2 ) - tbr / 2 ) - rbr;
+							if( hatStyle( Style::VCenter ) && hatStyleNicht( Style::VScroll ) )
+								yyy -= ( ( ( gr.y - scrollHeight ) / 2 ) - thi / 2 ) - rbr;
+							int pos = schrift->textPos( text, xxx, yyy );
+							if( pos != -1 )
+							{
+								begf = pos;
+								if( vertikalScrollBar && hatStyle( Style::VScroll ) )
+									updateVScroll( begf );
+								if( horizontalScrollBar && hatStyle( Style::HScroll ) )
+									updateHScroll( begf );
+							}
+							rend = 1;
+						}
+						mausKlick = 0;
+					}
+				}
+			}
+		}
+		me.verarbeitet = 1;
+	}
+	if( nmakc && me.verarbeitet && nMak )
+		me.verarbeitet = nMak( nmakParam, this, me );
+	me.mx += pos.x, me.my += pos.y;
 }
 
 void TextFeld::doTastaturEreignis( TastaturEreignis &te )
 {
-    bool ntakc = !te.verarbeitet;
-    if( te.verarbeitet || hatStyleNicht( Style::Fokus ) )
-        return;
-    if( !Tak )
-        return;
-    ++ref;
-    if( Tak( takParam, this, te ) )
-    {
-        if( hatStyleNicht( Style::Erlaubt ) )
-        {
-            --ref;
-            if( !ref )
-                delete this;
-            return;
-        }
-        if( te.id == TE_Press )
-        {
-            bool shift = TastenStand[ T_Shift ];
-            bool strg = TastenStand[ T_Strg ];
-            switch( te.taste )
-            {
-            case T_Entf:
-                if( cpos != begf )
-                    text->löschen( cpos, begf );
-                else
-                    text->löschen( cpos, cpos + 1 );
-                begf = cpos;
-                rend = 1;
-                break;
-            case T_BackSpace:
-                if( cpos != begf )
-                {
-                    text->löschen( cpos, begf );
-                    if( cpos > begf )
-                        cpos -= cpos - begf;
-                }
-                else
-                {
-                    text->löschen( cpos - 1, cpos );
-                    --cpos;
-                }
-                begf = cpos;
-                rend = 1;
-                break;
-            case T_Enter:
-                if( cpos != begf )
-                {
-                    text->löschen( begf, cpos );
-                    if( cpos > begf )
-                        cpos -= cpos - begf;
-                }
-                text->einfügen( cpos, '\n' );
-                ++cpos;
-                begf = cpos;
-                rend = 1;
-                break;
-            case T_Links:
-                if( shift )
-                {
-                    if( strg )
-                        begf = text->getLKick( begf );
-                    else
-                        --begf;
-                }
-                else
-                {
-                    if( strg )
-                        cpos = text->getLKick( cpos );
-                    else
-                        --cpos;
-                    begf = cpos;
-                }
-                rend = 1;
-                break;
-            case T_Oben:
-                if( shift )
-                {
-                    begf = text->getOKick( begf );
-                }
-                else
-                {
-                    cpos = text->getOKick( cpos );
-                    begf = cpos;
-                }
-                rend = 1;
-                break;
-            case T_Rechts:
-                if( shift )
-                {
-                    if( strg )
-                        begf = text->getRKick( begf );
-                    else
-                        ++begf;
-                }
-                else
-                {
-                    if( strg )
-                        cpos = text->getRKick( cpos );
-                    else
-                        ++cpos;
-                    begf = cpos;
-                }
-                rend = 1;
-                break;
-            case T_Unten:
-                if( shift )
-                {
-                    begf = text->getUKick( begf );
-                }
-                else
-                {
-                    cpos = text->getUKick( cpos );
-                    begf = cpos;
-                }
-                rend = 1;
-                break;
-            default:
-                if( strg && te.id == TE_Press )
-                {
-                    if( te.taste == 'c' || te.taste == 'C' )
-                    {
-                        if( begf != cpos )
-                        {
-                            int län = begf - cpos;
-                            if( län < 0 )
-                                län = -län;
-                            char *txt = new char[ län + 1 ];
-                            txt[ län ] = 0;
-                            int beg = begf < cpos ? begf : cpos;
-                            for( int i = beg; i < beg + län; ++i )
-                                txt[ i - beg ] = text->getText()[ i ];
-                            TextKopieren( txt );
-                            delete[] txt;
-                        }
-                        else
-                            TextKopieren( text->getText() );
-                    }
-                    if( te.taste == 'v' || te.taste == 'V' )
-                    {
-                        if( begf != cpos )
-                        {
-                            text->löschen( begf, cpos );
-                            if( cpos > begf )
-                                cpos = begf;
-                        }
-                        char *txt = TextEinfügen();
-                        text->einfügen( cpos, txt );
-                        cpos += textLänge( txt );
-                        begf = cpos;
-                        rend = 1;
-                    }
-                    break;
-                }
-                if( istSchreibbar( te.taste ) )
-                {
-                    if( begf != cpos )
-                    {
-                        text->löschen( begf, cpos );
-                        if( cpos > begf )
-                            cpos = begf;
-                    }
-                    text->einfügen( cpos, (char)te.taste );
-                    ++cpos;
-                    begf = cpos;
-                    rend = 1;
-                }
-                break;
-            }
-        }
-        if( cpos < 0 )
-            cpos = 0;
-        if( cpos > text->getLänge() )
-            cpos = text->getLänge();
-        if( begf < 0 )
-            begf = 0;
-        if( begf > text->getLänge() )
-            begf = text->getLänge();
-        if( hatStyle( Style::VScroll ) )
-            updateVScroll( begf );
-        if( hatStyle( Style::HScroll ) )
-            updateHScroll( begf );
-        te.verarbeitet = 1;
-    }
-    --ref;
-    if( ntakc && te.verarbeitet && nTak )
-        te.verarbeitet = nTak( ntakParam, this, te );
-    if( !ref )
-        delete this;
+	bool ntakc = !te.verarbeitet;
+	if( te.verarbeitet || hatStyleNicht( Style::Fokus ) )
+		return;
+	if( !Tak )
+		return;
+	++ref;
+	if( Tak( takParam, this, te ) )
+	{
+		if( hatStyleNicht( Style::Erlaubt ) )
+		{
+			--ref;
+			if( !ref )
+				delete this;
+			return;
+		}
+		if( te.id == TE_Press )
+		{
+			bool shift = TastenStand[ T_Shift ];
+			bool strg = TastenStand[ T_Strg ];
+			switch( te.taste )
+			{
+			case T_Entf:
+				if( cpos != begf )
+					text->remove( cpos, begf );
+				else
+					text->remove( cpos, cpos + 1 );
+				begf = cpos;
+				rend = 1;
+				break;
+			case T_BackSpace:
+				if( cpos != begf )
+				{
+					text->remove( cpos, begf );
+					if( cpos > begf )
+						cpos -= cpos - begf;
+				}
+				else
+				{
+					text->remove( cpos - 1, cpos );
+					--cpos;
+				}
+				begf = cpos;
+				rend = 1;
+				break;
+			case T_Enter:
+				if( cpos != begf )
+				{
+					text->remove( begf, cpos );
+					if( cpos > begf )
+						cpos -= cpos - begf;
+				}
+				text->insert( cpos, '\n' );
+				++cpos;
+				begf = cpos;
+				rend = 1;
+				break;
+			case T_Links:
+				if( shift )
+				{
+					if( strg )
+						begf = text->getLKick( begf );
+					else
+						--begf;
+				}
+				else
+				{
+					if( strg )
+						cpos = text->getLKick( cpos );
+					else
+						--cpos;
+					begf = cpos;
+				}
+				rend = 1;
+				break;
+			case T_Oben:
+				if( shift )
+				{
+					begf = text->getOKick( begf );
+				}
+				else
+				{
+					cpos = text->getOKick( cpos );
+					begf = cpos;
+				}
+				rend = 1;
+				break;
+			case T_Rechts:
+				if( shift )
+				{
+					if( strg )
+						begf = text->getRKick( begf );
+					else
+						++begf;
+				}
+				else
+				{
+					if( strg )
+						cpos = text->getRKick( cpos );
+					else
+						++cpos;
+					begf = cpos;
+				}
+				rend = 1;
+				break;
+			case T_Unten:
+				if( shift )
+				{
+					begf = text->getUKick( begf );
+				}
+				else
+				{
+					cpos = text->getUKick( cpos );
+					begf = cpos;
+				}
+				rend = 1;
+				break;
+			default:
+				if( strg && te.id == TE_Press )
+				{
+					if( te.taste == 'c' || te.taste == 'C' )
+					{
+						if( begf != cpos )
+						{
+							int len = begf - cpos;
+							if( len < 0 )
+								len = -len;
+							char *txt = new char[ len + 1 ];
+							txt[ len ] = 0;
+							int beg = begf < cpos ? begf : cpos;
+							for( int i = beg; i < beg + len; ++i )
+								txt[ i - beg ] = text->getText()[ i ];
+							TextKopieren( txt );
+							delete[] txt;
+						}
+						else
+							TextKopieren( text->getText() );
+					}
+					if( te.taste == 'v' || te.taste == 'V' )
+					{
+						if( begf != cpos )
+						{
+							text->remove( begf, cpos );
+							if( cpos > begf )
+								cpos = begf;
+						}
+						char *txt = TextInsert();
+						text->insert( cpos, txt );
+						cpos += textLength( txt );
+						begf = cpos;
+						rend = 1;
+					}
+					break;
+				}
+				if( istSchreibbar( te.taste ) )
+				{
+					if( begf != cpos )
+					{
+						text->remove( begf, cpos );
+						if( cpos > begf )
+							cpos = begf;
+					}
+					text->insert( cpos, (char)te.taste );
+					++cpos;
+					begf = cpos;
+					rend = 1;
+				}
+				break;
+			}
+		}
+		if( cpos < 0 )
+			cpos = 0;
+		if( cpos > text->getLength() )
+			cpos = text->getLength();
+		if( begf < 0 )
+			begf = 0;
+		if( begf > text->getLength() )
+			begf = text->getLength();
+		if( hatStyle( Style::VScroll ) )
+			updateVScroll( begf );
+		if( hatStyle( Style::HScroll ) )
+			updateHScroll( begf );
+		te.verarbeitet = 1;
+	}
+	--ref;
+	if( ntakc && te.verarbeitet && nTak )
+		te.verarbeitet = nTak( ntakParam, this, te );
+	if( !ref )
+		delete this;
 }
 
 void TextFeld::render( Bild &zRObj ) // zeichenet nach zRObj
 {
-    if( hatStyleNicht( Style::Sichtbar ) )
-        return;
-    __super::render( zRObj );
-    if( !text || !schrift )
-        return;
-    lockZeichnung();
-    if( !zRObj.setDrawOptions( innenPosition, innenGröße ) )
-    {
-        unlockZeichnung();
-        return;
-    }
-    if( hatStyleNicht( Style::Mehrzeilig ) )
-        text->löschen( '\n' );
-    if( hatStyleNicht( Style::Mehrfarbig ) )
-    {
-        while( text->hat( '\r' ) )
-            text->löschen( text->positionVon( '\r' ), text->positionVon( '\r' ) + 11 );
-    }
-    schrift->setSchriftGröße( schriftGröße );
-    int tbr = schrift->getTextBreite( text );
-    int thö = schrift->getTextHöhe( text );
-    int xxx = 0;
-    int yyy = 0;
-    int breite = innenGröße.x;
-    int höhe = innenGröße.y;
-    bool hs = horizontalScrollBar && hatStyle( Style::HScroll );
-    bool vs = vertikalScrollBar && hatStyle( Style::VScroll );
-    if( vs )
-        yyy -= vertikalScrollBar->getScroll();
-    if( hs )
-        xxx -= horizontalScrollBar->getScroll();
-    if( hatStyle( Style::HCenter ) && !hs )
-        xxx = ( breite / 2 ) - tbr / 2;
-    if( hatStyle( Style::VCenter ) && !vs )
-        yyy = ( höhe / 2 ) - thö / 2;
-    schrift->setDrawPosition( xxx, yyy );
-    if( hatStyle( Style::Fokus ) && hatStyle( Style::Erlaubt ) )
-    {
-        if( istSchreibbar( showChar ) )
-        {
-            Text rt;
-            int län = text->getLänge() - text->anzahlVon( '\n' ) - text->anzahlVon( '\r' ) * 11;
-            rt.füllText( showChar, län );
-            if( tickVal <= 0.5 )
-                schrift->renderText( &rt, zRObj, cpos, 0xFFFF5555, begf, 0xFF0000FF, sF );
-            else
-                schrift->renderText( &rt, zRObj, cpos, 0x00000000, begf, 0xFF0000FF, sF );
-        }
-        else
-        {
-            if( tickVal <= 0.5 )
-                schrift->renderText( text, zRObj, cpos, 0xFFFF5555, begf, 0xFF0000FF, sF );
-            else
-                schrift->renderText( text, zRObj, cpos, 0x00000000, begf, 0xFF0000FF, sF );
-        }
-    }
-    else
-    {
-        if( istSchreibbar( showChar ) )
-        {
-            Text rt;
-            int län = text->getLänge() - text->anzahlVon( '\n' ) - text->anzahlVon( '\r' ) * 11;
-            rt.füllText( showChar, län );
-            schrift->renderText( &rt, zRObj, sF );
-        }
-        else
-            schrift->renderText( text, zRObj, sF );
-    }
-    zRObj.releaseDrawOptions();
-    unlockZeichnung();
+	if( hatStyleNicht( Style::Sichtbar ) )
+		return;
+	ZeichnungHintergrund::render( zRObj );
+	if( !text || !schrift )
+		return;
+	lockZeichnung();
+	if( !zRObj.setDrawOptions( innenPosition, innenSize ) )
+	{
+		unlockZeichnung();
+		return;
+	}
+	if( hatStyleNicht( Style::Mehrzeilig ) )
+		text->remove( '\n' );
+	if( hatStyleNicht( Style::Mehrfarbig ) )
+	{
+		while( text->hat( '\r' ) )
+			text->remove( text->positionVon( '\r' ), text->positionVon( '\r' ) + 11 );
+	}
+	schrift->setSchriftSize( schriftSize );
+	int tbr = schrift->getTextBreite( text );
+	int thi = schrift->getTextHeight( text );
+	int xxx = 0;
+	int yyy = 0;
+	int breite = innenSize.x;
+	int height = innenSize.y;
+	bool hs = horizontalScrollBar && hatStyle( Style::HScroll );
+	bool vs = vertikalScrollBar && hatStyle( Style::VScroll );
+	if( vs )
+		yyy -= vertikalScrollBar->getScroll();
+	if( hs )
+		xxx -= horizontalScrollBar->getScroll();
+	if( hatStyle( Style::HCenter ) && !hs )
+		xxx = ( breite / 2 ) - tbr / 2;
+	if( hatStyle( Style::VCenter ) && !vs )
+		yyy = ( height / 2 ) - thi / 2;
+	schrift->setDrawPosition( xxx, yyy );
+	if( hatStyle( Style::Fokus ) && hatStyle( Style::Erlaubt ) )
+	{
+		if( istSchreibbar( showChar ) )
+		{
+			Text rt;
+			int len = text->getLength() - text->anzahlVon( '\n' ) - text->anzahlVon( '\r' ) * 11;
+			rt.fillText( showChar, len );
+			if( tickVal <= 0.5 )
+				schrift->renderText( &rt, zRObj, cpos, 0xFFFF5555, begf, 0xFF0000FF, sF );
+			else
+				schrift->renderText( &rt, zRObj, cpos, 0x00000000, begf, 0xFF0000FF, sF );
+		}
+		else
+		{
+			if( tickVal <= 0.5 )
+				schrift->renderText( text, zRObj, cpos, 0xFFFF5555, begf, 0xFF0000FF, sF );
+			else
+				schrift->renderText( text, zRObj, cpos, 0x00000000, begf, 0xFF0000FF, sF );
+		}
+	}
+	else
+	{
+		if( istSchreibbar( showChar ) )
+		{
+			Text rt;
+			int len = text->getLength() - text->anzahlVon( '\n' ) - text->anzahlVon( '\r' ) * 11;
+			rt.fillText( showChar, len );
+			schrift->renderText( &rt, zRObj, sF );
+		}
+		else
+			schrift->renderText( text, zRObj, sF );
+	}
+	zRObj.releaseDrawOptions();
+	unlockZeichnung();
 }
 
 // Konstant 
 Text *TextFeld::getText() const // gibt vom Text zurück
 {
-    if( !text )
-        return 0;
-    return text->getThis();
+	if( !text )
+		return 0;
+	return text->getThis();
 }
 
 Text *TextFeld::zText() const // gibt den Text zurück
 {
-    return text;
+	return text;
 }
 
 Schrift *TextFeld::getSchrift() const// gint getThis der Schrift Zurück
 {
-    if( !schrift )
-        return 0;
-    return schrift->getThis();
+	if( !schrift )
+		return 0;
+	return schrift->getThis();
 }
 
 Schrift *TextFeld::zSchrift() const// gibt die Schrift zurück
 {
-    return schrift;
+	return schrift;
 }
 
-unsigned char TextFeld::getSchriftGröße() const // gibt die Schriftgröße zurück
+unsigned char TextFeld::getSchriftSize() const // gibt die Schriftgröße zurück
 {
-    return schriftGröße;
+	return schriftSize;
 }
 
 int TextFeld::getSchriftFarbe() const// gibt getThis der Schriftfarbe zurück
 {
-    return sF;
+	return sF;
 }
 
 unsigned char TextFeld::getShowChar() const // gibt den Anzeige Char zurück
 {
-    return showChar;
+	return showChar;
 }
 
 int TextFeld::getCursorPos() const
 {
-    return cpos;
+	return cpos;
 }
 
-int TextFeld::getFärbungPos() const
+int TextFeld::getSelectionPos() const
 {
-    return begf;
+	return begf;
 }
 
 Zeichnung *TextFeld::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
 {
-    TextFeld *obj = new TextFeld();
-    obj->setPosition( pos );
-    obj->setGröße( gr );
-    obj->setMausEreignisParameter( makParam );
-    obj->setTastaturEreignisParameter( takParam );
-    obj->setMausEreignis( Mak );
-    obj->setTastaturEreignis( Tak );
-    if( toolTip )
-        obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
-    obj->setStyle( style );
-    obj->setSchriftGröße( schriftGröße );
-    if( schrift )
-        obj->setSchriftZ( schrift->getThis() );
-    if( text )
-        obj->setText( text->getText() );
-    obj->setHintergrundFarbe( hintergrundFarbe );
-    obj->setSchriftFarbe( sF );
-    if( hintergrundFeld )
-        obj->setAlphaFeldZ( (AlphaFeld*)hintergrundFeld->dublizieren() );
-    if( rahmen )
-        obj->setLinienRahmenZ( (LRahmen*)rahmen->dublizieren() );
-    if( hintergrundBild )
-        obj->setHintergrundBild( hintergrundBild->getThis() );
-    if( vertikalScrollBar )
-    {
-        obj->setVertikalKlickScroll( vertikalScrollBar->getKlickScroll() );
-        obj->setVertikalScrollPos( vertikalScrollBar->getScroll() );
-        obj->setVertikalScrollFarbe( vertikalScrollBar->getFarbe(), vertikalScrollBar->getBgFarbe() );
-    }
-    if( horizontalScrollBar )
-    {
-        obj->setHorizontalKlickScroll( horizontalScrollBar->getKlickScroll() );
-        obj->setHorizontalScrollPos( horizontalScrollBar->getScroll() );
-        obj->setHorizontalScrollFarbe( horizontalScrollBar->getFarbe(), horizontalScrollBar->getBgFarbe() );
-    }
-    obj->setSchowChar( showChar );
-    obj->setAuswahl( begf, cpos );
-    return obj;
+	TextFeld *obj = new TextFeld();
+	obj->setPosition( pos );
+	obj->setSize( gr );
+	obj->setMausEreignisParameter( makParam );
+	obj->setTastaturEreignisParameter( takParam );
+	obj->setMausEreignis( Mak );
+	obj->setTastaturEreignis( Tak );
+	if( toolTip )
+		obj->setToolTipText( toolTip->zText()->getText(), toolTip->zBildschirm() );
+	obj->setStyle( style );
+	obj->setSchriftSize( schriftSize );
+	if( schrift )
+		obj->setSchriftZ( schrift->getThis() );
+	if( text )
+		obj->setText( text->getText() );
+	obj->setHintergrundFarbe( hintergrundFarbe );
+	obj->setSchriftFarbe( sF );
+	if( hintergrundFeld )
+		obj->setAlphaFeldZ( (AlphaFeld*)hintergrundFeld->dublizieren() );
+	if( rahmen )
+		obj->setLinienRahmenZ( (LRahmen*)rahmen->dublizieren() );
+	if( hintergrundBild )
+		obj->setHintergrundBild( hintergrundBild->getThis() );
+	if( vertikalScrollBar )
+	{
+		obj->setVertikalKlickScroll( vertikalScrollBar->getKlickScroll() );
+		obj->setVertikalScrollPos( vertikalScrollBar->getScroll() );
+		obj->setVertikalScrollFarbe( vertikalScrollBar->getFarbe(), vertikalScrollBar->getBgFarbe() );
+	}
+	if( horizontalScrollBar )
+	{
+		obj->setHorizontalKlickScroll( horizontalScrollBar->getKlickScroll() );
+		obj->setHorizontalScrollPos( horizontalScrollBar->getScroll() );
+		obj->setHorizontalScrollFarbe( horizontalScrollBar->getFarbe(), horizontalScrollBar->getBgFarbe() );
+	}
+	obj->setSchowChar( showChar );
+	obj->setAuswahl( begf, cpos );
+	return obj;
 }
 
 // Reference Counting 
 TextFeld *TextFeld::getThis()
 {
-    ++ref;
-    return this;
+	++ref;
+	return this;
 }
 
 TextFeld *TextFeld::release()
 {
-    --ref;
-    if( ref == 0 )
-        delete this;
-    return 0;
+	--ref;
+	if( ref == 0 )
+		delete this;
+	return 0;
 }

+ 5 - 5
TextFeld.h

@@ -32,7 +32,7 @@ namespace Framework
             const static __int64 Scroll = VScroll | HScroll; // Vereint die Flags VScroll und HScroll
         };
     private:
-        unsigned char schriftGröße;
+        unsigned char schriftSize;
         Schrift *schrift;
         Text *text;
         int sF;
@@ -47,7 +47,7 @@ namespace Framework
         // Konstruktor 
         __declspec( dllexport ) TextFeld();
         // Destruktor 
-        __declspec( dllexport ) ~TextFeld();
+        __declspec( dllexport ) virtual ~TextFeld();
         // setzt einen Zeiger auf den Text im Textfeld
         //  txt: Der Zeiger auf den Text
         __declspec( dllexport ) void setTextZ( Text *txt );
@@ -72,7 +72,7 @@ namespace Framework
         __declspec( dllexport ) void setSchriftZ( Schrift *schrift );
         // Setzt die Schriftgröße (Standart: 12)
         //  gr: Die Schriftgröße, die zum Textzeichnen verwendet werden soll
-        __declspec( dllexport ) void setSchriftGröße( unsigned char gr );
+        __declspec( dllexport ) void setSchriftSize( unsigned char gr );
         // Setzt die Schrift Farbe
         //  fc: Die Farbe, die zum Textzeichnen verwendet werden soll
         __declspec( dllexport ) void setSchriftFarbe( int fc );
@@ -113,7 +113,7 @@ namespace Framework
         //  return: 0, falls die Schrift nicht gesetzt wurde
         __declspec( dllexport ) Schrift *zSchrift() const;
         // Gibt die Schriftgröße zurück
-        __declspec( dllexport ) unsigned char getSchriftGröße() const;
+        __declspec( dllexport ) unsigned char getSchriftSize() const;
         // Gibt die Schriftfarbe im A8R8G8B8 Format zurück
         __declspec( dllexport ) int getSchriftFarbe() const;
         // Gibt den Anzeigebuchstabe zurück
@@ -121,7 +121,7 @@ namespace Framework
         // Gibt die Cursorposition zurück
         __declspec( dllexport ) int getCursorPos() const;
         // Gibt den Index des Buchstaben zurück, con dem an der Text bis zur Cursorposition eingefärbt ist
-        __declspec( dllexport ) int getFärbungPos() const;
+        __declspec( dllexport ) int getSelectionPos() const;
         // Erzeugt eine Komplette Kopie des Textfeldes, welches ohne auswirkungen verändert werden kann
         __declspec( dllexport ) Zeichnung *dublizieren() const override;
         // Erhöht den Reference Counting Zähler.

+ 14 - 8
Textur.cpp

@@ -1,7 +1,9 @@
 #include "Textur.h"
 #include "Bild.h"
+#ifdef WIN32
 #include "Render3D.h"
 #include <d3d11.h>
+#endif
 
 using namespace Framework;
 
@@ -23,10 +25,12 @@ Textur::~Textur()
 {
     if( bild )
         bild->release();
+#ifdef WIN32
     if( txt )
         txt->Release();
     if( view )
         view->Release();
+#endif
 }
 
 // Setzt einen Zeiger auf das Bild, welches die Textur enthält
@@ -44,13 +48,13 @@ void Textur::setBild( Bild *b )
 {
     if( !b )
         return;
-    if( !bild || bild->getBreite() != b->getBreite() || bild->getHöhe() != b->getHöhe() )
+    if( !bild || bild->getBreite() != b->getBreite() || bild->getHeight() != b->getHeight() )
     {
         if( !bild )
             bild = new Bild();
-        bild->neuBild( b->getBreite(), b->getHöhe(), 0 );
+        bild->neuBild( b->getBreite(), b->getHeight(), 0 );
     }
-    bild->drawBild( 0, 0, bild->getBreite(), bild->getHöhe(), *b );
+    bild->drawBild( 0, 0, bild->getBreite(), bild->getHeight(), *b );
     b->release();
 }
 
@@ -60,7 +64,8 @@ bool Textur::updateTextur( Render3D *zRObj )
 {
     if( !bild )
         return 0;
-    if( !txt || lastGr != bild->getGröße() )
+#ifdef WIN32
+    if( !txt || lastGr != bild->getSize() )
     {
         if( txt )
             txt->Release();
@@ -69,7 +74,7 @@ bool Textur::updateTextur( Render3D *zRObj )
         memset( &bufferDesc, 0, sizeof( D3D11_TEXTURE2D_DESC ) );
         bufferDesc.ArraySize = 1;
         bufferDesc.Width = bild->getBreite();
-        bufferDesc.Height = bild->getHöhe();
+        bufferDesc.Height = bild->getHeight();
         bufferDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
         bufferDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
         bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
@@ -84,10 +89,10 @@ bool Textur::updateTextur( Render3D *zRObj )
     zRObj->zContext()->Map( txt, 0, D3D11_MAP::D3D11_MAP_WRITE_DISCARD, 0, &buffer );
     int *bgBuff = bild->getBuffer();
     int tmpBr = 4 * bild->getBreite();
-    for( int y = 0, pitch = 0, bry = 0; y < bild->getHöhe(); ++y, pitch += buffer.RowPitch, bry += bild->getBreite() )
+    for( int y = 0, pitch = 0, bry = 0; y < bild->getHeight(); ++y, pitch += buffer.RowPitch, bry += bild->getBreite() )
         memcpy( &( (BYTE *)buffer.pData )[ pitch ], ( void* )&( bgBuff[ bry ] ), tmpBr );
     zRObj->zContext()->Unmap( txt, 0 );
-    if( !view || lastGr != bild->getGröße() )
+    if( !view || lastGr != bild->getSize() )
     {
         if( view )
             view->Release();
@@ -101,7 +106,8 @@ bool Textur::updateTextur( Render3D *zRObj )
         if( r != S_OK )
             return 0;
     }
-    lastGr = bild->getGröße();
+    lastGr = bild->getSize();
+#endif
     return 1;
 }
 

+ 3 - 3
TexturList.cpp

@@ -47,7 +47,7 @@ bool TexturList::addTextur( Textur *t, const char *name )
 
 // Entfernt eine Textur aus der Liste
 //  name: Der Name der Textur
-void TexturList::löscheTextur( const char *name )
+void TexturList::removeTextur( const char *name )
 {
     EnterCriticalSection( &cs );
     int index = 0;
@@ -55,8 +55,8 @@ void TexturList::l
     {
         if( i.var->istGleich( name ) )
         {
-            names->lösche( index );
-            textures->lösche( index );
+            names->remove( index );
+            textures->remove( index );
             LeaveCriticalSection( &cs );
             return;
         }

+ 1 - 1
TexturList.h

@@ -27,7 +27,7 @@ namespace Framework
         __declspec( dllexport ) bool addTextur( Textur *t, const char *name );
         // Entfernt eine Textur aus der Liste
         //  name: Der Name der Textur
-        __declspec( dllexport ) void löscheTextur( const char *name );
+        __declspec( dllexport ) void removeTextur( const char *name );
         // Überprüft, ob unter einem bestimmten Namen eine Textur abgespeichert wurde
         //  name: Der Name
         //  return: true, wenn eine Textur mit dem Namen existiert

+ 3 - 3
TexturModel.cpp

@@ -29,7 +29,7 @@ TexturModel::TexturModel()
     Polygon3D *p = new Polygon3D();
     p->indexAnz = 6;
     p->indexList = new int[ p->indexAnz ];
-    p->indexBuffer->setLänge( p->indexAnz * 4 );
+    p->indexBuffer->setLength( p->indexAnz * 4 );
     p->indexBuffer->setData( p->indexList );
     p->indexList[ 0 ] = 0;
     p->indexList[ 1 ] = 3;
@@ -65,7 +65,7 @@ void TexturModel::setTextur( int id )
 
 // Setzt die Größe, in der Die Textur angezeigt wird
 //  gr: Ein Vektor, der für x und y die breite und höhe beinhaltet
-void TexturModel::setGröße( Vec2< float > gr )
+void TexturModel::setSize( Vec2< float > gr )
 {
     gr /= 2;
     Vertex3D *vertecies = new Vertex3D[ 4 ];
@@ -85,7 +85,7 @@ void TexturModel::setGr
 // Setzt die Größe, in der die Textur angezeigt wird
 //  b: Die Breite, in der die Textur angezeigt wird
 //  h: Die Höhe, in der die Textur angezeigt wird
-void TexturModel::setGröße( float b, float h )
+void TexturModel::setSize( float b, float h )
 {
     b /= 2;
     h /= 2;

+ 2 - 2
TexturModel.h

@@ -20,11 +20,11 @@ namespace Framework
         __declspec( dllexport ) void setTextur( int id );
         // Setzt die Größe, in der Die Textur angezeigt wird
         //  gr: Ein Vektor, der für x und y die breite und höhe beinhaltet
-        __declspec( dllexport ) void setGröße( Vec2< float > gr );
+        __declspec( dllexport ) void setSize( Vec2< float > gr );
         // Setzt die Größe, in der die Textur angezeigt wird
         //  b: Die Breite, in der die Textur angezeigt wird
         //  h: Die Höhe, in der die Textur angezeigt wird
-        __declspec( dllexport ) void setGröße( float b, float h );
+        __declspec( dllexport ) void setSize( float b, float h );
         // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
         //  return: 0.
         __declspec( dllexport ) Model3D *release() override;

+ 3 - 3
Thread.cpp

@@ -87,7 +87,7 @@ void Thread::threadEnd()
 }
 
 // constant 
-bool Thread::läuft() const // prüft, ob der Thrad aktiv ist
+bool Thread::isRunning() const // prüft, ob der Thrad aktiv ist
 {
     return run;
 }
@@ -177,7 +177,7 @@ void ThreadRegister::add( Thread *t )
 void ThreadRegister::remove( Thread *t )
 {
     EnterCriticalSection( &cs );
-    threads.lösche( threads.getWertIndex( t ) );
+    threads.remove( threads.getWertIndex( t ) );
     LeaveCriticalSection( &cs );
 }
 
@@ -206,7 +206,7 @@ void ThreadRegister::cleanUpClosedThreads()
 #ifndef WIN32
         pthread_join( closedThreads.get( 0 ), 0 );
 #endif
-        closedThreads.lösche( 0 );
+        closedThreads.remove( 0 );
     }
     LeaveCriticalSection( &cs );
 }

+ 1 - 1
Thread.h

@@ -39,7 +39,7 @@ namespace Framework
         // prüft, ob der Thrad aktiv ist
         // return: true, falls der Thread läuft. 
         //         false, wenn der Thread beendet, pausiert oder noch nicht gestartet wurde.
-        __declspec( dllexport ) bool läuft() const;
+        __declspec( dllexport ) bool isRunning() const;
         // wartet zeit lang auf den Thread
         //  zeit: Die Zeit, die auf den Thread gewartet werden soll. 1000 = 1 Sekunde
         __declspec( dllexport ) int warteAufThread( int zeit );

+ 23 - 23
ToolTip.cpp

@@ -13,7 +13,7 @@ using namespace Framework;
 // Konstruktor
 ToolTip::ToolTip( Bildschirm *zScreen )
     : TextFeld(),
-    größe( 0, 0 ),
+    size( 0, 0 ),
     animationSpeed( 250 ),
     warten( 1 ),
     wartenCount( 0 ),
@@ -21,8 +21,8 @@ ToolTip::ToolTip( Bildschirm *zScreen )
     mausIn( 0 ),
     alpha( 0 ),
     sichtbar( 0 ),
-    bildschirm( zScreen ),
-    zeichnen( 0 )
+    zeichnen( 0 ),
+	bildschirm( zScreen )
 {
     bildschirm->addToolTip( ( ToolTip* )this->getThis() );
 }
@@ -32,16 +32,16 @@ ToolTip::~ToolTip()
 {}
 
 // nicht constant
-void ToolTip::setGröße( int breite, int höhe )
+void ToolTip::setSize( int breite, int height )
 {
-    größe.x = breite;
-    größe.y = höhe;
+    size.x = breite;
+    size.y = height;
     rend = 1;
 }
 
-void ToolTip::setGröße( Punkt &gr )
+void ToolTip::setSize( Punkt &gr )
 {
-    größe = gr;
+    size = gr;
     rend = 1;
 }
 
@@ -92,7 +92,7 @@ bool ToolTip::tick( double tickVal )
             if( alpha - val < 0 )
                 alpha = 0;
             else
-                alpha -= val;
+                alpha = (unsigned char)( alpha - val );
             rend = 1;
         }
         if( mausIn )
@@ -103,7 +103,7 @@ bool ToolTip::tick( double tickVal )
                 sichtbar = 1;
                 wartenCount = 0;
                 alpha = 0xFF;
-                __super::setGröße( 0, 0 );
+				TextFeld::setSize( 0, 0 );
             }
         }
         else
@@ -111,18 +111,18 @@ bool ToolTip::tick( double tickVal )
     }
     else
     {
-        if( getBreite() != größe.x )
+        if( getBreite() != size.x )
         {
-            __super::setGröße( getBreite() + val, getSchriftGröße() + getLinienRahmenBreite() * 2 );
-            if( getBreite() > größe.x )
-                __super::setGröße( größe.x, getHöhe() );
+			TextFeld::setSize( getBreite() + val, getSchriftSize() + getLinienRahmenBreite() * 2 );
+            if( getBreite() > size.x )
+				TextFeld::setSize( size.x, getHeight() );
             rend = 1;
         }
-        else if( getHöhe() != größe.y )
+        else if( getHeight() != size.y )
         {
-            __super::setGröße( getBreite(), getHöhe() + val );
-            if( getHöhe() > größe.y )
-                __super::setGröße( getBreite(), größe.y );
+			TextFeld::setSize( getBreite(), getHeight() + val );
+            if( getHeight() > size.y )
+				TextFeld::setSize( getBreite(), size.y );
             rend = 1;
         }
     }
@@ -145,16 +145,16 @@ void ToolTip::render( Bild &zRObj )
     if( alpha && zeichnen )
     {
         zSchrift()->lock();
-        zSchrift()->setSchriftGröße( getSchriftGröße() );
-        größe = Punkt( zSchrift()->getTextBreite( zText() ) + getLinienRahmenBreite() * 2, zSchrift()->getTextHöhe( zText() ) + getLinienRahmenBreite() * 2 );
+        zSchrift()->setSchriftSize( getSchriftSize() );
+        size = Punkt( zSchrift()->getTextBreite( zText() ) + getLinienRahmenBreite() * 2, zSchrift()->getTextHeight( zText() ) + getLinienRahmenBreite() * 2 );
         zSchrift()->unlock();
         zRObj.setAlpha( alpha );
         setPosition( pos );
         if( getX() + getBreite() > zRObj.getBreite() )
             setPosition( getX() - ( getX() + getBreite() - zRObj.getBreite() ), getY() );
-        if( getY() + getHöhe() > zRObj.getHöhe() )
-            setPosition( getX(), getY() - ( getY() + getHöhe() - zRObj.getHöhe() ) );
-        __super::render( zRObj );
+        if( getY() + getHeight() > zRObj.getHeight() )
+            setPosition( getX(), getY() - ( getY() + getHeight() - zRObj.getHeight() ) );
+		TextFeld::render( zRObj );
         zRObj.releaseAlpha();
         zeichnen = 0;
     }

+ 4 - 4
ToolTip.h

@@ -20,7 +20,7 @@ namespace Framework
         class Style : public TextFeld::Style
         {};
     private:
-        Punkt größe;
+        Punkt size;
         double animationSpeed;
         double warten;
         double wartenCount;
@@ -38,13 +38,13 @@ namespace Framework
         __declspec( dllexport ) ~ToolTip();
         // Setzt die ausgeklappte Größe.
         //  breite: Die Breite in Pixeln
-        //  höhe: Die Höhe in Pixeln
+        //  height: Die Höhe in Pixeln
         // Die Größe wird beim rendern überschrieben
-        __declspec( dllexport ) void setGröße( int breite, int höhe );
+        __declspec( dllexport ) void setSize( int breite, int height );
         // Setzt die ausgeklappte Größe.
         //  gr: Die Größe in Pixeln
         // Die Größe wird beim rendern überschrieben
-        __declspec( dllexport ) void setGröße( Punkt &gr );
+        __declspec( dllexport ) void setSize( Punkt &gr );
         // Setzt die anzahl an Seunden, de gewartet wird bis der Tipp erscheint
         //  warten: Die Anzahl an Sekunden
         __declspec( dllexport ) void setWarten( double warten );

+ 6 - 6
Vec2.h

@@ -31,9 +31,9 @@ namespace Framework
         // Skalliert den Vektor, so dass er die Länge 1 hat
         inline Vec2 &normalize()
         {
-            const T länge = län();
-            x /= länge;
-            y /= länge;
+            const T length = getLength();
+            x /= length;
+            y /= length;
             return *this;
         }
         // Dreht den Vektor um 90 Grad gegen den Uhrzeigersinn
@@ -113,14 +113,14 @@ namespace Framework
             return Vec2< T2 >( (T2)x, (T2)y );
         }
         // Errechnet das Quadrat der Länge desVektors
-        inline T länSq() const
+        inline T getLengthSq() const
         {
             return *this * *this;
         }
         // Errechnet die Länge des Vektors
-        inline T län() const
+        inline T getLength() const
         {
-            return sqrt( länSq() );
+            return sqrt( getLengthSq() );
         }
         // Errechnet das Skalarprodukt zwischen zwei Vektoren
         //  r: Der andere Vektor

+ 7 - 7
Vec3.h

@@ -33,10 +33,10 @@ namespace Framework
         // Skalliert den Vektor, so dass er die Länge 1 hat
         inline Vec3 &normalize()
         {
-            const T länge = län();
-            x /= länge;
-            y /= länge;
-            z /= länge;
+            const T length = getLength();
+            x /= length;
+            y /= length;
+            z /= length;
             return *this;
         }
         // Vertaucht die Werte des Vektors mit denen eines anderen Vektor
@@ -117,14 +117,14 @@ namespace Framework
             return{ (T2)x, (T2)y, (T2)z };
         }
         // Errechnet das Quadrat der Länge des Vektors
-        inline T länSq() const
+        inline T getLengthSq() const
         {
             return *this * *this;
         }
         // Errechnet due Länge des Vektors
-        inline T län() const
+        inline T getLength() const
         {
-            return sqrt( länSq() );
+            return (T)sqrt( getLengthSq() );
         }
         // Bildet das Skalarprodukt zwischen zwei Vektoren
         //  r: Der andere Vektor

+ 6 - 2
Welt3D.cpp

@@ -1,7 +1,9 @@
 #include "Welt3D.h"
 #include "Zeichnung3D.h"
-#include "Render3D.h"
 #include "MausEreignis.h"
+#ifdef WIN32
+#include "Render3D.h"
+#endif
 
 using namespace Framework;
 
@@ -228,9 +230,10 @@ bool Welt3D::tick( double tickval )
 //  zRObj: Enthällt alle Werkzeuge, die zum Zeichnen verwendet werden
 void Welt3D::render( Render3D *zRObj )
 {
+#ifdef WIN32
     upd = 1;
+	EnterCriticalSection( &cs );
     int index = 0;
-    EnterCriticalSection( &cs );
     for( Zeichnung3D **i = members; index < arraySize; i++, index++ )
     {
         if( *i && zRObj->isInFrustrum( ( *i )->getPos(), ( *i )->getRadius() ) )
@@ -311,6 +314,7 @@ void Welt3D::render( Render3D *zRObj )
     for( int i = index2 - 1; i >= 0; i-- )
         alphaVS[ i ]->render( zRObj );
     LeaveCriticalSection( &cs );
+#endif
 }
 
 // Erhöht den Reference Counting Zähler.

+ 1 - 1
Welt3D.h

@@ -30,7 +30,7 @@ namespace Framework
         // Konstructor
         __declspec( dllexport ) Welt3D();
         // Destruktor
-        __declspec( dllexport ) ~Welt3D();
+        __declspec( dllexport ) virtual ~Welt3D();
         // Fügt der Welt ein Objekt hinzu
         //  obj: Das Objekt, was hinzugefügt werden soll
         __declspec( dllexport ) void addZeichnung( Zeichnung3D *obj );

+ 39 - 37
Zeichnung.cpp

@@ -8,7 +8,9 @@
 #include "Rahmen.h"
 #include "AlphaFeld.h"
 #include "Bild.h"
+#ifdef WIN32
 #include <Windows.h>
+#endif
 
 using namespace Framework;
 
@@ -110,7 +112,7 @@ void Zeichnung::setNTastaturEreignis( bool( *ak )( void *, void *, TastaturEreig
 
 void Zeichnung::doMausEreignis( MausEreignis &me ) // ruft Mak auf
 {
-    if( me.verarbeitet || ( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Verlässt ) )
+    if( me.verarbeitet || ( !( me.mx >= pos.x && me.mx <= pos.x + gr.x && me.my >= pos.y && me.my <= pos.y + gr.y ) && me.id != ME_Leaves ) )
     {
         if( mausIn )
         {
@@ -118,7 +120,7 @@ void Zeichnung::doMausEreignis( MausEreignis &me ) // ruft Mak auf
             if( toolTip )
                 toolTip->setMausIn( 0 );
             MausEreignis me2;
-            me2.id = ME_Verlässt;
+            me2.id = ME_Leaves;
             me2.mx = me.mx;
             me2.my = me.my;
             me2.verarbeitet = 0;
@@ -126,7 +128,7 @@ void Zeichnung::doMausEreignis( MausEreignis &me ) // ruft Mak auf
         }
         return;
     }
-    if( !mausIn && me.id != ME_Verlässt )
+    if( !mausIn && me.id != ME_Leaves )
     {
         mausIn = 1;
         if( toolTip )
@@ -187,7 +189,7 @@ void Zeichnung::setY( int yPos )
     unlockZeichnung();
 }
 
-void Zeichnung::setGröße( const Punkt &gr ) // setzt die Größe
+void Zeichnung::setSize( const Punkt &gr ) // setzt die Größe
 {
     lockZeichnung();
     if( this->gr != gr )
@@ -201,9 +203,9 @@ void Zeichnung::setPosition( int x, int y ) // setzt die position
     setPosition( Punkt( x, y ) );
 }
 
-void Zeichnung::setGröße( int x, int y ) // setzt die Größe
+void Zeichnung::setSize( int x, int y ) // setzt die Größe
 {
-    setGröße( Punkt( x, y ) );
+    setSize( Punkt( x, y ) );
 }
 
 bool Zeichnung::tick( double tickval )
@@ -222,14 +224,14 @@ void Zeichnung::setStyle( __int64 style ) // setzt den Style des Text Feldes
     }
 }
 
-void Zeichnung::setStyle( __int64 style, bool add_löschen )
+void Zeichnung::setStyle( __int64 style, bool add_remove )
 {
-    if( add_löschen && ( this->style | style ) != this->style )
+    if( add_remove && ( this->style | style ) != this->style )
     {
         this->style |= style;
         rend = 1;
     }
-    else if( !add_löschen && ( this->style & ~style ) != this->style )
+    else if( !add_remove && ( this->style & ~style ) != this->style )
     {
         if( toolTip && ( style | Style::Sichtbar ) == style )
             toolTip->setMausIn( 0 );
@@ -247,7 +249,7 @@ void Zeichnung::addStyle( __int64 style )
     }
 }
 
-void Zeichnung::löscheStyle( __int64 style )
+void Zeichnung::removeStyle( __int64 style )
 {
     if( ( this->style & ~style ) != this->style )
     {
@@ -280,7 +282,7 @@ const Punkt &Zeichnung::getPosition() const // gibt die Position zur
     return pos;
 }
 
-const Punkt &Zeichnung::getGröße() const // gibt die Größe zurück
+const Punkt &Zeichnung::getSize() const // gibt die Größe zurück
 {
     return gr;
 }
@@ -290,7 +292,7 @@ int Zeichnung::getBreite() const // gibt die Breite zur
     return gr.x;
 }
 
-int Zeichnung::getHöhe() const // gibt die Höhe zurück
+int Zeichnung::getHeight() const // gibt die Höhe zurück
 {
     return gr.y;
 }
@@ -329,7 +331,7 @@ Zeichnung *Zeichnung::dublizieren() const // Erzeugt eine Kopie des Zeichnungs
 {
     Zeichnung *obj = new Zeichnung();
     obj->setPosition( pos );
-    obj->setGröße( gr );
+    obj->setSize( gr );
     obj->setMausEreignisParameter( makParam );
     obj->setTastaturEreignisParameter( takParam );
     obj->setMausEreignis( Mak );
@@ -506,8 +508,8 @@ ZeichnungHintergrund::ZeichnungHintergrund()
     vertikalScrollBar = 0;
     innenPosition.x = 0;
     innenPosition.y = 0;
-    innenGröße.x = 0;
-    innenGröße.y = 0;
+    innenSize.x = 0;
+    innenSize.y = 0;
 }
 
 // Destruktor 
@@ -529,10 +531,10 @@ void ZeichnungHintergrund::setHintergrundBild( Bild *bild ) // setzt das Hinterg
 {
     if( !hintergrundBild )
         hintergrundBild = new Bild();
-    hintergrundBild->neuBild( bild->getBreite(), bild->getHöhe(), 0 );
+    hintergrundBild->neuBild( bild->getBreite(), bild->getHeight(), 0 );
     int *buff1 = hintergrundBild->getBuffer();
     int *buff2 = bild->getBuffer();
-    for( int i = 0; i < bild->getBreite() * bild->getHöhe(); ++i )
+    for( int i = 0; i < bild->getBreite() * bild->getHeight(); ++i )
         buff1[ i ] = buff2[ i ];
     bild->release();
     rend = 1;
@@ -569,16 +571,16 @@ void ZeichnungHintergrund::setAlphaFeldZ( AlphaFeld *buff ) // setzt einen Zeige
     }
 }
 
-void ZeichnungHintergrund::setAlphaFeldStärke( int st ) // setzt die Stärke des Hintergrund Buffers
+void ZeichnungHintergrund::setAlphaFeldStrength( int st ) // setzt die Stärke des Hintergrund Buffers
 {
     if( !hintergrundFeld )
     {
         hintergrundFeld = new AlphaFeld();
         rend = 1;
     }
-    if( hintergrundFeld->getStärke() != st )
+    if( hintergrundFeld->getStrength() != st )
     {
-        hintergrundFeld->setStärke( st );
+        hintergrundFeld->setStrength( st );
         rend = 1;
     }
 }
@@ -728,15 +730,15 @@ bool ZeichnungHintergrund::tick( double tickVal )
         rend |= vertikalScrollBar->getRend();
     if( horizontalScrollBar && hatStyle( Style::HScroll ) )
         rend |= horizontalScrollBar->getRend();
-    return __super::tick( tickVal );
+    return Zeichnung::tick( tickVal );
 }
 
 void ZeichnungHintergrund::render( Bild &rObj )
 {
     innenPosition.x = pos.x;
     innenPosition.y = pos.y;
-    innenGröße.x = gr.x;
-    innenGröße.y = gr.y;
+    innenSize.x = gr.x;
+    innenSize.y = gr.y;
     if( hatStyleNicht( Style::Sichtbar ) )
         return;
     lockZeichnung();
@@ -745,18 +747,18 @@ void ZeichnungHintergrund::render( Bild &rObj )
         unlockZeichnung();
         return;
     }
-    __super::render( rObj );
+	Zeichnung::render( rObj );
     int rbr = 0;
     if( hatStyle( Style::Rahmen ) && rahmen )
     {
-        rahmen->setGröße( gr );
+        rahmen->setSize( gr );
         rahmen->render( rObj );
         rbr = rahmen->getRBreite();
     }
     innenPosition.x += rbr;
     innenPosition.y += rbr;
-    innenGröße.x -= rbr * 2;
-    innenGröße.y -= rbr * 2;
+    innenSize.x -= rbr * 2;
+    innenSize.y -= rbr * 2;
     if( !rObj.setDrawOptions( rbr, rbr, gr.x - rbr * 2, gr.y - rbr * 2 ) )
     {
         rObj.releaseDrawOptions();
@@ -768,11 +770,11 @@ void ZeichnungHintergrund::render( Bild &rObj )
     if( vs )
     {
         vertikalScrollBar->render( gr.x - rbr * 2 - 15, 0, 15, gr.y - rbr * 2, rObj );
-        innenGröße.x -= 15;
+        innenSize.x -= 15;
         if( hs )
         {
             horizontalScrollBar->render( 0, gr.y - rbr * 2 - 15, gr.x - rbr * 2 - 15, 15, rObj );
-            innenGröße.y -= 15;
+            innenSize.y -= 15;
             if( !rObj.setDrawOptions( 0, 0, gr.x - rbr * 2 - 15, gr.y - rbr * 2 - 15 ) )
             {
                 rObj.releaseDrawOptions();
@@ -780,7 +782,7 @@ void ZeichnungHintergrund::render( Bild &rObj )
                 unlockZeichnung();
                 return;
             }
-            horizontalScrollBar->update( horizontalScrollBar->getScrollData()->max, innenGröße.x );
+            horizontalScrollBar->update( horizontalScrollBar->getScrollData()->max, innenSize.x );
         }
         else
         {
@@ -792,12 +794,12 @@ void ZeichnungHintergrund::render( Bild &rObj )
                 return;
             }
         }
-        vertikalScrollBar->update( vertikalScrollBar->getScrollData()->max, innenGröße.y );
+        vertikalScrollBar->update( vertikalScrollBar->getScrollData()->max, innenSize.y );
     }
     else if( hs )
     {
         horizontalScrollBar->render( rbr, gr.y - rbr * 2 - 15, gr.x - rbr * 2, 15, rObj );
-        innenGröße.y -= 15;
+        innenSize.y -= 15;
         if( !rObj.setDrawOptions( 0, 0, gr.x - rbr * 2, gr.y - rbr * 2 - 15 ) )
         {
             rObj.releaseDrawOptions();
@@ -811,7 +813,7 @@ void ZeichnungHintergrund::render( Bild &rObj )
         if( hatStyle( Style::HAlpha ) )
             rObj.alphaRegion( 0, 0, gr.x - rbr * 2, gr.y - rbr * 2, hintergrundFarbe );
         else
-            rObj.füllRegion( 0, 0, gr.x - rbr * 2, gr.y - rbr * 2, hintergrundFarbe );
+            rObj.fillRegion( 0, 0, gr.x - rbr * 2, gr.y - rbr * 2, hintergrundFarbe );
         if( hatStyle( Style::HBild ) && hintergrundBild )
         {
             if( hatStyle( Style::HAlpha ) )
@@ -822,7 +824,7 @@ void ZeichnungHintergrund::render( Bild &rObj )
     }
     if( hatStyle( Style::Buffered ) && hintergrundFeld )
     {
-        hintergrundFeld->setGröße( gr.x - rbr * 2, gr.y - rbr * 2 );
+        hintergrundFeld->setSize( gr.x - rbr * 2, gr.y - rbr * 2 );
         hintergrundFeld->render( rObj );
     }
     if( vs || hs )
@@ -861,11 +863,11 @@ AlphaFeld *ZeichnungHintergrund::zAlphaFeld() const // gibt den Hintergrund Buff
     return hintergrundFeld;
 }
 
-int ZeichnungHintergrund::getAlphaFeldStärke() const // gibt die Stärke des Hintergrund Buffers zurück
+int ZeichnungHintergrund::getAlphaFeldStrength() const // gibt die Stärke des Hintergrund Buffers zurück
 {
     if( !hintergrundFeld )
         return 0;
-    return hintergrundFeld->getStärke();
+    return hintergrundFeld->getStrength();
 }
 
 int ZeichnungHintergrund::getAlphaFeldFarbe() const // gibt getThis von der Farbe des Hintergrund Buffers zurück
@@ -941,7 +943,7 @@ Zeichnung *ZeichnungHintergrund::dublizieren() const // Erzeugt eine Kopie des Z
 {
     ZeichnungHintergrund *obj = new ZeichnungHintergrund();
     obj->setPosition( pos );
-    obj->setGröße( gr );
+    obj->setSize( gr );
     obj->setMausEreignisParameter( makParam );
     obj->setTastaturEreignisParameter( takParam );
     obj->setMausEreignis( Mak );

+ 13 - 13
Zeichnung.h

@@ -118,28 +118,28 @@ namespace Framework
         __declspec( dllexport ) void setY( int yPos );
         // Setzt die Größe der Zeichnung
         //  gr: Ein Punkt mit x als Breite und y als Höhe in Pixeln
-        __declspec( dllexport ) void setGröße( const Punkt &gr );
+        __declspec( dllexport ) void setSize( const Punkt &gr );
         // Setzt die Position der Zeichnung
         //  x: Die X Position in Pixeln
         //  y: Die Y Position in Pixeln
         __declspec( dllexport ) void setPosition( int x, int y );
         // Setzt die Größe der Zeichnung
         //  br: Die Breite in Pixeln
-        //  hö: Die Höhe in Pixeln
-        __declspec( dllexport ) void setGröße( int br, int hö );
+        //  height: Die Höhe in Pixeln
+        __declspec( dllexport ) void setSize( int br, int height );
         // Setzt den Style der Zeichnung
         //  style: Der neue Style bestehend aus den Flags aus der zugehörigen Style Klasse
         __declspec( dllexport ) void setStyle( __int64 style );
         // Setzt den Style der Zeichnung
         //  style: Alle Style Flags, die verändert werden sollen
-        //  add_löschen: 1, falls der Style hinzugefügt werden soll. 0, falls der Style entfernt weden soll
-        __declspec( dllexport ) void setStyle( __int64 style, bool add_löschen );
+        //  add_remove: 1, falls der Style hinzugefügt werden soll. 0, falls der Style entfernt weden soll
+        __declspec( dllexport ) void setStyle( __int64 style, bool add_remove );
         // Fügt Style Flags hinzu
         //  style: Der Style, der hinzugefügt werden soll
         __declspec( dllexport ) void addStyle( __int64 style );
         // Entfernt Style Flags
         //  style: Der Style, der entfernt werden soll
-        __declspec( dllexport ) void löscheStyle( __int64 style );
+        __declspec( dllexport ) void removeStyle( __int64 style );
         // Zeichnet die Zeihnung in ein bestimmtes Bild
         //  zRObj: Das Bild, in das gezeichnet werden soll
         __declspec( dllexport ) virtual void render( Bild &zRObj );
@@ -150,11 +150,11 @@ namespace Framework
         // Gibt die Position der Zeichnung in Pixeln zurück
         __declspec( dllexport ) const Punkt &getPosition() const;
         // Gibt die Größe der Zeichnung in Pixeln zurück. x für Breite und y für Höhe
-        __declspec( dllexport ) const Punkt &getGröße() const;
+        __declspec( dllexport ) const Punkt &getSize() const;
         // Gibt die Breite der Zeichnung in Pixeln zurück
         __declspec( dllexport ) int getBreite() const;
         // Gibt die Höhe der Zeichnung in Pixeln zurück
-        __declspec( dllexport ) int getHöhe() const;
+        __declspec( dllexport ) int getHeight() const;
         // Gibt die X Position der Zeichnung in Pixeln zurück
         __declspec( dllexport ) int getX() const;
         // Gibt die Y Position der Zeichnung in Pixeln zurück
@@ -166,11 +166,11 @@ namespace Framework
         // Gibt zurück, ob bestimmte Styles gesetzt wurden
         //  style: Die Styles, die überprüft werden sollen
         //  return: 1, falls alle Styles in style gesetzt wurden
-        __declspec( dllexport ) inline bool hatStyle( __int64 style ) const;
+        __declspec( dllexport ) bool hatStyle( __int64 style ) const;
         // Gibt zurück, ob bestimmte Styles nicht gesetzt wurden
         //  style: Die Styles, die geprüft werden sollen
         //  return: 1, falls alle Styles in style nicht gesetzt wurden
-        __declspec( dllexport ) inline bool hatStyleNicht( __int64 style ) const;
+        __declspec( dllexport ) bool hatStyleNicht( __int64 style ) const;
         // Kopiert die Komplette Zeichnung, so dass sie ohne Effekt auf das Original verändert werden kann
         __declspec( dllexport ) virtual Zeichnung *dublizieren() const;
     };
@@ -252,7 +252,7 @@ namespace Framework
         VScrollBar *vertikalScrollBar;
         HScrollBar *horizontalScrollBar;
         Punkt innenPosition;
-        Punkt innenGröße;
+        Punkt innenSize;
 
     public:
         // Konstruktor 
@@ -273,7 +273,7 @@ namespace Framework
         __declspec( dllexport ) void setAlphaFeldZ( AlphaFeld *buff );
         // Setzt die Stärke des AlphaFeldes (benötigt Flag zum Zeichnen: Buffered)
         //  st: Die Stärke des AlphaFeldes, welches über dem Hintergrund gezeichnet werden soll
-        __declspec( dllexport ) void setAlphaFeldStärke( int st );
+        __declspec( dllexport ) void setAlphaFeldStrength( int st );
         // Setzt die Farbe des AlphaFeldes (benötigt Flag zum Zeichnen: Buffered)
         //  fc: Die Farbe des AlphaFeldes, welches über dem Hintergrund gezeichnet werden soll
         __declspec( dllexport ) void setAlphaFeldFarbe( int fc );
@@ -328,7 +328,7 @@ namespace Framework
         //  return: 0, falls das AlphaFeld nicht definiert wurde
         __declspec( dllexport ) AlphaFeld *zAlphaFeld() const;
         // Git die Stärke des Alphafeldes zurück
-        __declspec( dllexport ) int getAlphaFeldStärke() const;
+        __declspec( dllexport ) int getAlphaFeldStrength() const;
         // Gibt die Farbe des Alphafedes im A8R8G8B8 Format zurück
         __declspec( dllexport ) int getAlphaFeldFarbe() const;
         // Gibt den Rahmen zurück

+ 84 - 84
Zeit.cpp

@@ -134,9 +134,9 @@ int Uhrzeit::setUhrzeit( int stunde, int minute, int sekunde )
 
 int Uhrzeit::setUhrzeit( const char *format, const char *zeit ) // format Beispiele: "H:i:s", "H-i-s" (H=stunde,i=minute,s=sekunde)
 {
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -206,9 +206,9 @@ int Uhrzeit::plusUhrzeit( int stunde, int minute, int sekunde )
 
 int Uhrzeit::plusUhrzeit( const char *format, const char *zeit )
 {
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -279,9 +279,9 @@ int Uhrzeit::minusUhrzeit( int stunde, int minute, int sekunde )
 
 int Uhrzeit::minusUhrzeit( const char *format, const char *zeit )
 {
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -352,22 +352,22 @@ int Uhrzeit::getSekunde() const // gibt die Sekunde zur
 Text *Uhrzeit::getUhrzeit( const char *format ) const // gibt die Uhrzeit als Text formatiert zurück
 {
     Text *ret = new Text( "" );
-    int flän = textLänge( format );
-    for( const char *f = format; f < format + flän; ++f )
+    int flen = textLength( format );
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
         case 'h':
-            ret->anhängen( stunde );
+            ret->append( stunde );
             break;
         case 'i':
-            ret->anhängen( minute );
+            ret->append( minute );
             break;
         case 's':
-            ret->anhängen( sekunde );
+            ret->append( sekunde );
             break;
         default:
-            ret->anhängen( f, 1 );
+            ret->append( f, 1 );
             break;
         }
     }
@@ -386,9 +386,9 @@ bool Uhrzeit::istGleich( Uhrzeit *zeit ) const // pr
 bool Uhrzeit::istGleich( const char *format, const char *zeit ) const
 {
     int st = stunde, min = minute, sek = sekunde;
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -481,9 +481,9 @@ bool Uhrzeit::istKleiner( int stunde, int minute, int sekunde ) const
 bool Uhrzeit::istKleiner( const char *format, const char *zeit ) const
 {
     int st = stunde, min = minute, sek = sekunde;
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -517,14 +517,14 @@ bool Uhrzeit::istKleiner( const char *format, Text *zeit ) const
     return ret;
 }
 
-bool Uhrzeit::istGrößer( Uhrzeit *zeit ) const // prüft, ob die Zeit größer als zeit ist
+bool Uhrzeit::istLater( Uhrzeit *zeit ) const // prüft, ob die Zeit größer als zeit ist
 {
-    bool ret = istGrößer( zeit->getStunde(), zeit->getMinute(), zeit->getSekunde() );
+    bool ret = istLater( zeit->getStunde(), zeit->getMinute(), zeit->getSekunde() );
     zeit->release();
     return ret;
 }
 
-bool Uhrzeit::istGrößer( int stunde, int minute, int sekunde ) const
+bool Uhrzeit::istLater( int stunde, int minute, int sekunde ) const
 {
     if( this->stunde > stunde )
         return 1;
@@ -548,12 +548,12 @@ bool Uhrzeit::istGr
         return 0;
 }
 
-bool Uhrzeit::istGrößer( const char *format, const char *zeit ) const
+bool Uhrzeit::istLater( const char *format, const char *zeit ) const
 {
     int st = stunde, min = minute, sek = sekunde;
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -577,12 +577,12 @@ bool Uhrzeit::istGr
             break;
         }
     }
-    return istGrößer( st, min, sek );
+    return istLater( st, min, sek );
 }
 
-bool Uhrzeit::istGrößer( const char *format, Text *zeit ) const
+bool Uhrzeit::istLater( const char *format, Text *zeit ) const
 {
-    bool ret = istGrößer( format, zeit->getText() );
+    bool ret = istLater( format, zeit->getText() );
     zeit->release();
     return ret;
 }
@@ -688,9 +688,9 @@ void Datum::setDatum( int jahr, int monat, int tag )
 
 void Datum::setDatum( const char *format, const char *datum ) // format Beispiele: "Y:m:d", "Y-m-d" (Y=Jahr,m=Monat,d=tag)
 {
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -760,9 +760,9 @@ void Datum::plusDatum( int jahr, int monat, int tag )
 
 void Datum::plusDatum( const char *format, const char *datum )
 {
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -832,9 +832,9 @@ void Datum::minusDatum( int jahr, int monat, int tag )
 
 void Datum::minusDatum( const char *format, const char *datum )
 {
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -904,22 +904,22 @@ int Datum::getTag() const // gibt der Tag zur
 Text *Datum::getDatum( const char *format ) const // gibt das Datum als Text formatiert zurück
 {
     Text *ret = new Text( "" );
-    int flän = textLänge( format );
-    for( const char *f = format; f < format + flän; ++f )
+    int flen = textLength( format );
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
         case 'y':
-            ret->anhängen( jahr );
+            ret->append( jahr );
             break;
         case 'm':
-            ret->anhängen( monat );
+            ret->append( monat );
             break;
         case 'd':
-            ret->anhängen( tag );
+            ret->append( tag );
             break;
         default:
-            ret->anhängen( f, 1 );
+            ret->append( f, 1 );
             break;
         }
     }
@@ -938,9 +938,9 @@ bool Datum::istGleich( Datum *datum ) const // pr
 bool Datum::istGleich( const char *format, const char *datum ) const
 {
     int j = jahr, m = monat, t = tag;
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1033,9 +1033,9 @@ bool Datum::istKleiner( int jahr, int monat, int tag ) const
 bool Datum::istKleiner( const char *format, const char *datum ) const
 {
     int j = jahr, m = monat, t = tag;
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1069,14 +1069,14 @@ bool Datum::istKleiner( const char *format, Text *datum ) const
     return ret;
 }
 
-bool Datum::istGrößer( Datum *datum ) const // prüft, ob die Datum größer als datum ist
+bool Datum::istLater( Datum *datum ) const // prüft, ob die Datum größer als datum ist
 {
-    bool ret = istGrößer( datum->getJahr(), datum->getMonat(), datum->getTag() );
+    bool ret = istLater( datum->getJahr(), datum->getMonat(), datum->getTag() );
     datum->release();
     return ret;
 }
 
-bool Datum::istGrößer( int jahr, int monat, int tag ) const
+bool Datum::istLater( int jahr, int monat, int tag ) const
 {
     if( this->jahr > jahr )
         return 1;
@@ -1100,12 +1100,12 @@ bool Datum::istGr
         return 0;
 }
 
-bool Datum::istGrößer( const char *format, const char *datum ) const
+bool Datum::istLater( const char *format, const char *datum ) const
 {
     int j = jahr, m = monat, t = tag;
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1129,12 +1129,12 @@ bool Datum::istGr
             break;
         }
     }
-    return istGrößer( j, m, t );
+    return istLater( j, m, t );
 }
 
-bool Datum::istGrößer( const char *format, Text *datum ) const
+bool Datum::istLater( const char *format, Text *datum ) const
 {
-    bool ret = istGrößer( format, datum->getText() );
+    bool ret = istLater( format, datum->getText() );
     datum->release();
     return ret;
 }
@@ -1192,9 +1192,9 @@ void Zeit::setZeit( const char *format, const char *zeit ) // format Beispiele:
     int i = uhrzeit->getMinute();
     int s = uhrzeit->getSekunde();
 
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1295,9 +1295,9 @@ void Zeit::plusZeit( const char *format, const char *zeit )
     int i = uhrzeit->getMinute();
     int s = uhrzeit->getSekunde();
 
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1398,9 +1398,9 @@ void Zeit::minusZeit( const char *format, const char *zeit )
     int i = uhrzeit->getMinute();
     int s = uhrzeit->getSekunde();
 
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1483,31 +1483,31 @@ void Zeit::minusSekunde( int sekunde ) // subtrahiert sekunde Sekunden
 Text *Zeit::getZeit( const char *format ) const // gibt die Zeit als Text formatiert zurück
 {
     Text *ret = new Text( "" );
-    int flän = textLänge( format );
-    for( const char *f = format; f < format + flän; ++f )
+    int flen = textLength( format );
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
         case 'y':
-            ret->anhängen( datum->getJahr() );
+            ret->append( datum->getJahr() );
             break;
         case 'm':
-            ret->anhängen( datum->getMonat() );
+            ret->append( datum->getMonat() );
             break;
         case 'd':
-            ret->anhängen( datum->getTag() );
+            ret->append( datum->getTag() );
             break;
         case 'h':
-            ret->anhängen( uhrzeit->getStunde() );
+            ret->append( uhrzeit->getStunde() );
             break;
         case 'i':
-            ret->anhängen( uhrzeit->getMinute() );
+            ret->append( uhrzeit->getMinute() );
             break;
         case 's':
-            ret->anhängen( uhrzeit->getSekunde() );
+            ret->append( uhrzeit->getSekunde() );
             break;
         default:
-            ret->anhängen( f, 1 );
+            ret->append( f, 1 );
         }
     }
     return ret;
@@ -1529,9 +1529,9 @@ bool Zeit::istGleich( const char *format, const char *zeit ) const
     int i = uhrzeit->getMinute();
     int s = uhrzeit->getSekunde();
 
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1656,9 +1656,9 @@ bool Zeit::istKleiner( const char *format, const char *zeit ) const
     int i = uhrzeit->getMinute();
     int s = uhrzeit->getSekunde();
 
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1717,16 +1717,16 @@ bool Zeit::istKleiner( const char *format, Text *zeit ) const
     return ret;
 }
 
-bool Zeit::istGrößer( Zeit *zeit ) const // prüft, ob die Zeit größer als zeit ist
+bool Zeit::istLater( Zeit *zeit ) const // prüft, ob die Zeit größer als zeit ist
 {
-    if( datum->istGrößer( zeit->getDatum() ) )
+    if( datum->istLater( zeit->getDatum() ) )
     {
         zeit->release();
         return 1;
     }
     else if( datum->istGleich( zeit->getDatum() ) )
     {
-        if( uhrzeit->istGrößer( zeit->getUhrzeit() ) )
+        if( uhrzeit->istLater( zeit->getUhrzeit() ) )
         {
             zeit->release();
             return 1;
@@ -1744,13 +1744,13 @@ bool Zeit::istGr
     }
 }
 
-bool Zeit::istGrößer( int jahr, int monat, int tag, int stunde, int minute, int sekunde ) const
+bool Zeit::istLater( int jahr, int monat, int tag, int stunde, int minute, int sekunde ) const
 {
-    if( datum->istGrößer( jahr, monat, tag ) )
+    if( datum->istLater( jahr, monat, tag ) )
         return 1;
     else if( datum->istGleich( jahr, monat, tag ) )
     {
-        if( uhrzeit->istGrößer( stunde, minute, sekunde ) )
+        if( uhrzeit->istLater( stunde, minute, sekunde ) )
             return 1;
         else
             return 0;
@@ -1759,7 +1759,7 @@ bool Zeit::istGr
         return 0;
 }
 
-bool Zeit::istGrößer( const char *format, const char *zeit ) const
+bool Zeit::istLater( const char *format, const char *zeit ) const
 {
     int y = datum->getJahr();
     int m = datum->getMonat();
@@ -1768,9 +1768,9 @@ bool Zeit::istGr
     int i = uhrzeit->getMinute();
     int s = uhrzeit->getSekunde();
 
-    int flän = textLänge( format );
+    int flen = textLength( format );
     char *ende = 0;
-    for( const char *f = format; f < format + flän; ++f )
+    for( const char *f = format; f < format + flen; ++f )
     {
         switch( *f )
         {
@@ -1809,11 +1809,11 @@ bool Zeit::istGr
             break;
         }
     }
-    if( datum->istGrößer( y, m, d ) )
+    if( datum->istLater( y, m, d ) )
         return 1;
     else if( datum->istGleich( y, m, d ) )
     {
-        if( uhrzeit->istGrößer( h, i, s ) )
+        if( uhrzeit->istLater( h, i, s ) )
             return 1;
         else
             return 0;
@@ -1822,9 +1822,9 @@ bool Zeit::istGr
         return 0;
 }
 
-bool Zeit::istGrößer( const char *format, Text *zeit ) const
+bool Zeit::istLater( const char *format, Text *zeit ) const
 {
-    bool ret = istGrößer( format, zeit->getText() );
+    bool ret = istLater( format, zeit->getText() );
     zeit->release();
     return ret;
 }
@@ -1864,14 +1864,14 @@ void ZeitMesser::messungStart() // legt des Startpunkt der Zeitmessung fest
 {
     timeval tv;
     gettimeofday( &tv, 0 );
-    start = tv.tv_sec + tv.tv_usec / 1000000.0;
+    start = (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;
 }
 
 void ZeitMesser::messungEnde() // legt des Endpunkt der Zeitmessung fest
 {
     timeval tv;
     gettimeofday( &tv, 0 );
-    ende = tv.tv_sec + tv.tv_usec / 1000000.0;
+    ende = (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;
     messung = ende - start;
 }
 

+ 12 - 12
Zeit.h

@@ -214,26 +214,26 @@ namespace Framework
         //  zeit: Die zu prüfende Uhrzeit.
         //  return: (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
         // Beispiel: (5:30:00).istGrößer( (10:40:29) ); return false
-        __declspec( dllexport ) bool istGrößer( Uhrzeit *zeit ) const;
+        __declspec( dllexport ) bool istLater( Uhrzeit *zeit ) const;
         // prüft, ob die Uhrzeit größer als die übergebene Zeit ist.
         //  stunde: Die Stunden der zu prüfenden Zeit.
         //  minute: Die Minute der zu prüfenden Zeit.
         //  sekunde: Die Sekunde der zu prüfenden Zeit.
         //  return: (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
         // Beispiel: (5:30:00).istGrößer( 10, 40, 29 ); return false
-        __declspec( dllexport ) bool istGrößer( int stunde, int minute, int sekunde ) const;
+        __declspec( dllexport ) bool istLater( int stunde, int minute, int sekunde ) const;
         // prüft, ob die Uhrzeit größer als die übergebene Zeit ist.
         //  format: Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
         //  zeit: Eine Zeichenfolge die die andere Uhrzeit enthält.
         //  return: (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
         // Beispiel: (5:30:00).istGrößer( "h:i:s", "10:40:29" ); return false
-        __declspec( dllexport ) bool istGrößer( const char *format, const char *zeit ) const;
+        __declspec( dllexport ) bool istLater( const char *format, const char *zeit ) const;
         // prüft, ob die Uhrzeit größer als die übergebene Zeit ist.
         //  format: Eine Zeichenfolge, die bestimmt in welcher Form die Uhrzeit in (zeit) vorliegt. h=Stunde, i=Minute,s=Sekunde.
         //  zeit: Ein Text Zeichnung, welches die andere Uhrzeit enthält.
         //  return: (true), wenn die gespeicherte Zeit größer als die übergebene Zeit ist. (false) sonst.
         // Beispiel: (5:30:00).istGrößer( "h:i:s", "10:40:29" ); return false
-        __declspec( dllexport ) bool istGrößer( const char *format, Text *zeit ) const;
+        __declspec( dllexport ) bool istLater( const char *format, Text *zeit ) const;
         // Erhöht den Reference Counting Zähler
         //  return: this
         __declspec( dllexport ) Uhrzeit *getThis();
@@ -422,26 +422,26 @@ namespace Framework
         //  datum: Das zu prüfende Datum.
         //  return: (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
         // Beispiel: ( 1.11.1995 ).istGrößer( ( 23.1.2016 ) ); return false
-        __declspec( dllexport ) bool istGrößer( Datum *datum ) const;
+        __declspec( dllexport ) bool istLater( Datum *datum ) const;
         // Prüft, ob das gespeicherte Datum größer als das übergebene ist.
         //  jahr: Das Jahr des zu prüfenden Datums.
         //  monat: Der Monat des zu prüfenden Datums.
         //  tag: Der Tag des zu prüfenden Datums.
         //  return: (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
         // Beispiel: ( 1.11.1995 ).istGrößer( 2016, 1, 23 ); return false
-        __declspec( dllexport ) bool istGrößer( int jahr, int monat, int tag ) const;
+        __declspec( dllexport ) bool istLater( int jahr, int monat, int tag ) const;
         // Prüft, ob das gespeicherte Datum größer als das übergebene ist.
         //  format: Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
         //  datum: Eine Zeichenkette, die das zu überprüfende Datum enthält.
         //  return: (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
         // Beispiel: ( 1.11.1995 ).istGrößer( "y, m, d", "2016, 1, 23" ); return false
-        __declspec( dllexport ) bool istGrößer( const char *format, const char *datum ) const;
+        __declspec( dllexport ) bool istLater( const char *format, const char *datum ) const;
         // Prüft, ob das gespeicherte Datum größer als das übergebene ist.
         //  format: Eine Zeichenkette, die angibt in welcher Form das Datum in (datum) vorhanden ist. y=Jahr, m=Monat, d=Tag.
         //  datum: Ein Text Zeichnung, welches das zu überprüfende Datum enthält.
         //  return: (true), wenn das gespeicherte Datum hinter dem übergebenen liegt. (false) sonnst.
         // Beispiel: ( 1.11.1995 ).istGrößer( "y, m, d", new Text( "2016, 1, 23" ) ) ); return true
-        __declspec( dllexport ) bool istGrößer( const char *format, Text *datum ) const;
+        __declspec( dllexport ) bool istLater( const char *format, Text *datum ) const;
         // Erhöht den Reference Counting Zähler
         //  return: this
         __declspec( dllexport ) Datum *getThis();
@@ -636,7 +636,7 @@ namespace Framework
         // Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
         //  zeit: Die zu überprüfende Zeit.
         //  return: (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
-        __declspec( dllexport ) bool istGrößer( Zeit *zeit ) const;
+        __declspec( dllexport ) bool istLater( Zeit *zeit ) const;
         // Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
         //  jahr: Das zu überprüfende Jahr.
         //  monat: Der zu überprüfende Monat.
@@ -645,17 +645,17 @@ namespace Framework
         //  minute: Die zu überprüfende Minute.
         //  sekunde: Die zu überprüfende Sekunde.
         //  return: (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
-        __declspec( dllexport ) bool istGrößer( int jahr, int monat, int tag, int stunde, int minute, int sekunde ) const;
+        __declspec( dllexport ) bool istLater( int jahr, int monat, int tag, int stunde, int minute, int sekunde ) const;
         // Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
         //  format: Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
         //  zeit: Eine Zeichenkette, die die zu überprüfende Zeit enthält.
         //  return: (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
-        __declspec( dllexport ) bool istGrößer( const char *format, const char *zeit ) const;
+        __declspec( dllexport ) bool istLater( const char *format, const char *zeit ) const;
         // Überprüft, ob die gespeicherte Zeit größer als die übergebene Zeit ist.
         //  format: Eine Zeichenkette, die angibt in welcher Form die neue Zeit in (zeit) vorhanden ist. y=Jahr, m=Monat, d=Tag, h=Stunde, i=Minute, s=Sekunde.
         //  zeit: Eine Text Zeichnung, welches die zu überprüfende Zeit enthält.
         //  return: (true) wenn die gespeicherte Zeit nach der übergebenen Zeit liegt. (false) sonnst.
-        __declspec( dllexport ) bool istGrößer( const char *format, Text *zeit ) const;
+        __declspec( dllexport ) bool istLater( const char *format, Text *zeit ) const;
         // Erhöht den Reference Counting Zähler
         //  return: this
         __declspec( dllexport ) Zeit *getThis();