Browse Source

update to newest framework version

Kolja Strohm 3 years ago
parent
commit
c772984a0b
4 changed files with 719 additions and 748 deletions
  1. BIN
      Schrift Editor 2/Framework.dll
  2. 70 70
      Schrift Editor 2/Initialisierung.cpp
  3. 649 678
      Schrift Editor 2/Start.cpp
  4. 0 0
      Schrift Editor 2/normal

BIN
Schrift Editor 2/Framework.dll


+ 70 - 70
Schrift Editor 2/Initialisierung.cpp

@@ -3,86 +3,86 @@
 
 Knopf *initKnopf( int x, int y, int br, int hö, Schrift *zSchrift, __int64 style, char *titel )
 {
-	Knopf *ret = new Knopf();
-	ret->addStyle( style );
-	ret->setPosition( x, y );
-	ret->setSize( br, hö );
-	if( zSchrift )
-		ret->setSchriftZ( zSchrift->getThis() );
-	ret->setText( titel );
-	return ret;
+    Knopf *ret = new Knopf();
+    ret->addStyle( style );
+    ret->setPosition( x, y );
+    ret->setSize( br, hö );
+    if( zSchrift )
+        ret->setSchriftZ( dynamic_cast<Schrift *>( zSchrift->getThis() ) );
+    ret->setText( titel );
+    return ret;
 }
 
 TextFeld *initTextFeld( int x, int y, int br, int hö, Schrift *zSchrift, __int64 style, char *txt )
 {
-	TextFeld *ret = new TextFeld();
-	ret->setStyle( style );
-	if( zSchrift )
-	    ret->setSchriftZ( zSchrift->getThis() );
-	ret->setText( txt );
-	ret->setSchriftFarbe( 0xFFFFFFFF );
-	ret->setSchriftSize( 12 );
-	if( ret->hatStyle( TextFeld::Style::Buffered ) )
-	{
-		ret->setAlphaFeldFarbe( 0x5500FF00 );
-		ret->setAlphaFeldStrength( -5 );
-	}
-	if( ret->hatStyle( TextFeld::Style::Rahmen ) )
-	{
-		ret->setRahmenBreite( 1 );
-		ret->setRahmenFarbe( 0xFF00FF00 );
-	}
-	ret->setPosition( x, y );
-	ret->setSize( br, hö );
-	return ret;
+    TextFeld *ret = new TextFeld();
+    ret->setStyle( style );
+    if( zSchrift )
+        ret->setSchriftZ( dynamic_cast<Schrift *>( zSchrift->getThis() ) );
+    ret->setText( txt );
+    ret->setSchriftFarbe( 0xFFFFFFFF );
+    ret->setSchriftSize( 12 );
+    if( ret->hatStyle( TextFeld::Style::Buffered ) )
+    {
+        ret->setAlphaFeldFarbe( 0x5500FF00 );
+        ret->setAlphaFeldStrength( -5 );
+    }
+    if( ret->hatStyle( TextFeld::Style::Rahmen ) )
+    {
+        ret->setRahmenBreite( 1 );
+        ret->setRahmenFarbe( 0xFF00FF00 );
+    }
+    ret->setPosition( x, y );
+    ret->setSize( br, hö );
+    return ret;
 }
 
 Fenster *initFenster( int x, int y, int br, int hö, Schrift *zSchrift, __int64 style, char *titel )
 {
-	Fenster *ret = new Fenster();
-	ret->setStyle( style );
-	ret->setPosition( x, y );
-	ret->setSize( br, hö );
-	if( ret->hatStyle( Fenster::Style::Rahmen ) )
-	{
-		ret->setRBreite( 1 );
-		ret->setRFarbe( 0xFFFFFFFF );
-	}
-	if( ret->hatStyle( Fenster::Style::Titel ) )
-	{
-		ret->setTitel( titel );
-		ret->setTSchriftZ( zSchrift->getThis() );
-		ret->setTSFarbe( 0xFFFFFFFF );
-		ret->zTTextFeld()->setSize( 0, 20 );
-		ret->zTTextFeld()->addStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Center | TextFeld::Style::Rahmen );
-		ret->setTRFarbe( 0xFF00FF00 );
-		ret->setTRBreite( 1 );
-		if( ret->hatStyle( Fenster::Style::TitelBuffered ) )
-		{
-			ret->setTAfFarbe( 0x1000FF00 );
-			ret->setTAfStrength( -15 );
-		}
-		if( ret->hatStyle( Fenster::Style::Closable | Fenster::Style::ClosingKlickBuffer ) )
-		{
-			ret->setSKAfFarbe( 0xFF00FF00 );
-			ret->setSKAfStrength( 20 );
-		}
-	}
-	return ret;
+    Fenster *ret = new Fenster();
+    ret->setStyle( style );
+    ret->setPosition( x, y );
+    ret->setSize( br, hö );
+    if( ret->hatStyle( Fenster::Style::Rahmen ) )
+    {
+        ret->setRBreite( 1 );
+        ret->setRFarbe( 0xFFFFFFFF );
+    }
+    if( ret->hatStyle( Fenster::Style::Titel ) )
+    {
+        ret->setTitel( titel );
+        ret->setTSchriftZ( dynamic_cast<Schrift *>( zSchrift->getThis() ) );
+        ret->setTSFarbe( 0xFFFFFFFF );
+        ret->zTTextFeld()->setSize( 0, 20 );
+        ret->zTTextFeld()->addStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Center | TextFeld::Style::Rahmen );
+        ret->setTRFarbe( 0xFF00FF00 );
+        ret->setTRBreite( 1 );
+        if( ret->hatStyle( Fenster::Style::TitelBuffered ) )
+        {
+            ret->setTAfFarbe( 0x1000FF00 );
+            ret->setTAfStrength( -15 );
+        }
+        if( ret->hatStyle( Fenster::Style::Closable | Fenster::Style::ClosingKlickBuffer ) )
+        {
+            ret->setSKAfFarbe( 0xFF00FF00 );
+            ret->setSKAfStrength( 20 );
+        }
+    }
+    return ret;
 }
 
 BildZ *initBildZ( int x, int y, int br, int hö, __int64 style, Bild *b )
 {
-	BildZ *ret = new BildZ();
-	ret->setStyle( style );
-	ret->setPosition( x, y );
-	ret->setSize( br, hö );
-	if( b )
-		ret->setBildZ( b );
-	if( ( style | BildZ::Style::Rahmen ) == style )
-	{
-		ret->setRahmenBreite( 1 );
-		ret->setRahmenFarbe( 0xFFFFFFFF );
-	}
-	return ret;
+    BildZ *ret = new BildZ();
+    ret->setStyle( style );
+    ret->setPosition( x, y );
+    ret->setSize( br, hö );
+    if( b )
+        ret->setBildZ( b );
+    if( ( style | BildZ::Style::Rahmen ) == style )
+    {
+        ret->setRahmenBreite( 1 );
+        ret->setRahmenFarbe( 0xFFFFFFFF );
+    }
+    return ret;
 }

+ 649 - 678
Schrift Editor 2/Start.cpp

@@ -19,294 +19,294 @@
 #include <Datei.h>
 #include <DateiDialog.h>
 #include <AsynchronCall.h>
-#include <Dialog.h> 
+#include <Dialog.h>
 
 using namespace Framework;
 
 struct Variablen
 {
-	// Normale Schrift
-	Schrift *nSchrift;
-	// Schrift zum Bearbeiten laden
-	TextFeld *sPfad;
-	Knopf *sLaden;
-	Schrift *schrift;
-	LTDSDatei *sDatei;
-	// Auswählen der zu Bearbeitenden Zeichen und Größen
-	AuswahlListe *größe;
-	AuswahlListe *zeichen;
-	// Löschen
-	Knopf *gLöschen;
-	Knopf *zLöschen;
-	// Hinzufügen
-	Knopf *neuGröße;
-	Knopf *neuZeichen;
-	// Bearbeiten
-	Knopf *editZeichen;
-	// Schrift Vorschau
-	TextFeld *vorschau;
-	TextFeld *vFgT;
-	TextFeld *vFg;
-	TextFeld *vBgT;
-	TextFeld *vBg;
+    // Normale Schrift
+    Schrift *nSchrift;
+    // Schrift zum Bearbeiten laden
+    TextFeld *sPfad;
+    Knopf *sLaden;
+    Schrift *schrift;
+    LTDSDatei *sDatei;
+    // Auswählen der zu Bearbeitenden Zeichen und Größen
+    AuswahlListe *größe;
+    AuswahlListe *zeichen;
+    // Löschen
+    Knopf *gLöschen;
+    Knopf *zLöschen;
+    // Hinzufügen
+    Knopf *neuGröße;
+    Knopf *neuZeichen;
+    // Bearbeiten
+    Knopf *editZeichen;
+    // Schrift Vorschau
+    TextFeld *vorschau;
+    TextFeld *vFgT;
+    TextFeld *vFg;
+    TextFeld *vBgT;
+    TextFeld *vBg;
     Knopf *vBgB;
-	TextFeld *vGrößeT;
-	TextFeld *vGröße;
+    TextFeld *vGrößeT;
+    TextFeld *vGröße;
     AuswahlBox *vStyle;
-	// Neue Größe erstellen
-	Fenster *neuGrößeF;
-	TextFeld *nGGrößeT;
-	TextFeld *nGGröße;
-	Knopf *nGOk;
-	// Neues Zeichen erstellen
-	Fenster *neuZeichenF;
-	TextFeld *nZZeichenT;
-	TextFeld *nZZeichen;
-	TextFeld *nZVorschau;
-	TextFeld *nZBreiteT;
-	TextFeld *nZBreite;
-	TextFeld *nZHöheT;
-	TextFeld *nZHöhe;
-	Knopf *nZOk;
-	// Zeichen Editor
-	Fenster *editF;
-	TextFeld *editFgT;
-	TextFeld *editFg;
-	TextFeld *editBgT;
-	TextFeld *editBg;
-	TextFeld *editAlphaT;
-	TextFeld *editAlpha;
-	BildZ *editObj;
-	Knopf *editSpeichern;
+    // Neue Größe erstellen
+    Fenster *neuGrößeF;
+    TextFeld *nGGrößeT;
+    TextFeld *nGGröße;
+    Knopf *nGOk;
+    // Neues Zeichen erstellen
+    Fenster *neuZeichenF;
+    TextFeld *nZZeichenT;
+    TextFeld *nZZeichen;
+    TextFeld *nZVorschau;
+    TextFeld *nZBreiteT;
+    TextFeld *nZBreite;
+    TextFeld *nZHöheT;
+    TextFeld *nZHöhe;
+    Knopf *nZOk;
+    // Zeichen Editor
+    Fenster *editF;
+    TextFeld *editFgT;
+    TextFeld *editFg;
+    TextFeld *editBgT;
+    TextFeld *editBg;
+    TextFeld *editAlphaT;
+    TextFeld *editAlpha;
+    BildZ *editObj;
+    Knopf *editSpeichern;
 };
 
 void beenden( void *p, void *obj )
 {
-	StopNachrichtenSchleife( ( (WFenster*)obj )->getFensterHandle() );
+    StopNachrichtenSchleife( ( (WFenster *)obj )->getFensterHandle() );
 }
 
 void SetErlaubt( bool e, Variablen *var )
 {
-	if( !e )
-	{
-		var->sLaden->removeStyle( Knopf::Style::Erlaubt );
-		var->größe->removeStyle( AuswahlListe::Style::Erlaubt );
-		var->zeichen->removeStyle( AuswahlListe::Style::Erlaubt );
-		var->neuGröße->removeStyle( Knopf::Style::Erlaubt );
-		var->gLöschen->removeStyle( Knopf::Style::Erlaubt );
-		var->editZeichen->removeStyle( Knopf::Style::Erlaubt );
-		var->zLöschen->removeStyle( Knopf::Style::Erlaubt );
-		var->neuZeichen->removeStyle( Knopf::Style::Erlaubt );
-	}
-	else
-	{
-		var->sLaden->addStyle( Knopf::Style::Erlaubt );
-		var->größe->addStyle( AuswahlListe::Style::Erlaubt );
-		var->zeichen->setStyle( AuswahlListe::Style::Erlaubt, var->größe->getAuswahl() >= 0 );
-		var->neuGröße->addStyle( AuswahlListe::Style::Erlaubt );
-		var->gLöschen->setStyle( Knopf::Style::Erlaubt, var->größe->getAuswahl() >= 0 );
-		var->editZeichen->setStyle( Knopf::Style::Erlaubt, var->zeichen->getAuswahl() >= 0 );
-		var->zLöschen->setStyle( Knopf::Style::Erlaubt, var->zeichen->getAuswahl() >= 0 );
-		var->neuZeichen->setStyle( Knopf::Style::Erlaubt, var->größe->getAuswahl() >= 0 );
-	}
-	var->vorschau->addStyle( TextFeld::Style::Erlaubt );
+    if( !e )
+    {
+        var->sLaden->removeStyle( Knopf::Style::Erlaubt );
+        var->größe->removeStyle( AuswahlListe::Style::Erlaubt );
+        var->zeichen->removeStyle( AuswahlListe::Style::Erlaubt );
+        var->neuGröße->removeStyle( Knopf::Style::Erlaubt );
+        var->gLöschen->removeStyle( Knopf::Style::Erlaubt );
+        var->editZeichen->removeStyle( Knopf::Style::Erlaubt );
+        var->zLöschen->removeStyle( Knopf::Style::Erlaubt );
+        var->neuZeichen->removeStyle( Knopf::Style::Erlaubt );
+    }
+    else
+    {
+        var->sLaden->addStyle( Knopf::Style::Erlaubt );
+        var->größe->addStyle( AuswahlListe::Style::Erlaubt );
+        var->zeichen->setStyle( AuswahlListe::Style::Erlaubt, var->größe->getAuswahl() >= 0 );
+        var->neuGröße->addStyle( AuswahlListe::Style::Erlaubt );
+        var->gLöschen->setStyle( Knopf::Style::Erlaubt, var->größe->getAuswahl() >= 0 );
+        var->editZeichen->setStyle( Knopf::Style::Erlaubt, var->zeichen->getAuswahl() >= 0 );
+        var->zLöschen->setStyle( Knopf::Style::Erlaubt, var->zeichen->getAuswahl() >= 0 );
+        var->neuZeichen->setStyle( Knopf::Style::Erlaubt, var->größe->getAuswahl() >= 0 );
+    }
+    var->vorschau->addStyle( TextFeld::Style::Erlaubt );
 }
 
 void SchriftLaden( Variablen *var )
 {
-	if( var->schrift )
-		var->schrift->release();
-	var->schrift = var->sDatei->ladeSchrift();
-	if( !var->schrift )
-		var->schrift = new Schrift();
-	var->vorschau->setSchriftZ( var->schrift->getThis() );
-	int anz = var->zeichen->getEintragAnzahl();
-	for( int i = 0; i < anz; i++ )
-		var->zeichen->removeEintrag( 0 );
-	var->zeichen->deSelect();
-	anz = var->größe->getEintragAnzahl();
-	for( int i = 0; i < anz; i++ )
-		var->größe->removeEintrag( 0 );
-	var->größe->deSelect();
-	anz = var->schrift->getAlphabetAnzahl();
-	for( int i = 0; i < anz; i++ )
-	{
-		Text n = "";
-		n += var->schrift->zAlphabetI( i )->getSchriftSize();
-		var->größe->addEintrag( n );
-		var->größe->zEintrag( i )->setSchriftZ( var->nSchrift->getThis() );
-		var->größe->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
-		var->größe->zEintrag( i )->setSize( 0, 20 );
-	}
-	SetErlaubt( 1, var );
+    if( var->schrift )
+        var->schrift->release();
+    var->schrift = var->sDatei->ladeSchrift();
+    if( !var->schrift )
+        var->schrift = new Schrift();
+    var->vorschau->setSchriftZ( dynamic_cast<Schrift *>( var->schrift->getThis() ) );
+    int anz = var->zeichen->getEintragAnzahl();
+    for( int i = 0; i < anz; i++ )
+        var->zeichen->removeEintrag( 0 );
+    var->zeichen->deSelect();
+    anz = var->größe->getEintragAnzahl();
+    for( int i = 0; i < anz; i++ )
+        var->größe->removeEintrag( 0 );
+    var->größe->deSelect();
+    anz = var->schrift->getAlphabetAnzahl();
+    for( int i = 0; i < anz; i++ )
+    {
+        Text n = "";
+        n += var->schrift->zAlphabetI( i )->getSchriftSize();
+        var->größe->addEintrag( n );
+        var->größe->zEintrag( i )->setSchriftZ( dynamic_cast<Schrift *>( var->nSchrift->getThis() ) );
+        var->größe->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+        var->größe->zEintrag( i )->setSize( 0, 20 );
+    }
+    SetErlaubt( 1, var );
 }
 
 bool SLadenME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( !DateiExistiert( var->sPfad->getText() ) )
-			DateiPfadErstellen( var->sPfad->getText() );
-		var->sDatei->setPfad( var->sPfad->getText() );
-		var->sDatei->leseDaten();
-		SchriftLaden( var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( !DateiExistiert( var->sPfad->getText() ) )
+            DateiPfadErstellen( var->sPfad->getText() );
+        var->sDatei->setPfad( var->sPfad->getText() );
+        var->sDatei->leseDaten();
+        SchriftLaden( var );
+    }
+    return 1;
 }
 
 bool GrößeME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		int anz = var->zeichen->getEintragAnzahl();
-		for( int i = 0; i < anz; i++ )
-			var->zeichen->removeEintrag( 0 );
-		var->zeichen->deSelect();
-		var->editZeichen->removeStyle( Knopf::Style::Erlaubt );
-		var->zLöschen->removeStyle( Knopf::Style::Erlaubt );
-		if( var->größe->getKlickEintrag( me.my ) < 0 )
-		{
-			var->zeichen->removeStyle( AuswahlListe::Style::Erlaubt );
-			var->neuZeichen->removeStyle( Knopf::Style::Erlaubt );
-			var->gLöschen->removeStyle( Knopf::Style::Erlaubt );
-			return 1;
-		}
-		Alphabet *tmp = var->schrift->zAlphabet( (int)*var->größe->zEintrag( var->größe->getKlickEintrag( me.my ) )->zText() );
-		for( int c = 1; c < 256; c++ )
-		{
-			if( !tmp->hatBuchstabe( (unsigned char)c ) )
-				continue;
-			Text n = "";
-			n.append( (char)c );
-			n += " (";
-			n += (int)c;
-			n += ")";
-			var->zeichen->addEintrag( n );
-			var->zeichen->zEintrag( var->zeichen->getEintragAnzahl() - 1 )->setSchriftZ( var->nSchrift->getThis() );
-			var->zeichen->zEintrag( var->zeichen->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
-			var->zeichen->zEintrag( var->zeichen->getEintragAnzahl() - 1 )->setSize( 0, 20 );
-		}
-		var->zeichen->addStyle( AuswahlListe::Style::Erlaubt );
-		var->neuZeichen->addStyle( Knopf::Style::Erlaubt );
-		var->gLöschen->addStyle( Knopf::Style::Erlaubt );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        int anz = var->zeichen->getEintragAnzahl();
+        for( int i = 0; i < anz; i++ )
+            var->zeichen->removeEintrag( 0 );
+        var->zeichen->deSelect();
+        var->editZeichen->removeStyle( Knopf::Style::Erlaubt );
+        var->zLöschen->removeStyle( Knopf::Style::Erlaubt );
+        if( var->größe->getKlickEintrag( me.my ) < 0 )
+        {
+            var->zeichen->removeStyle( AuswahlListe::Style::Erlaubt );
+            var->neuZeichen->removeStyle( Knopf::Style::Erlaubt );
+            var->gLöschen->removeStyle( Knopf::Style::Erlaubt );
+            return 1;
+        }
+        Alphabet *tmp = var->schrift->zAlphabet( (int)*var->größe->zEintrag( var->größe->getKlickEintrag( me.my ) )->zText() );
+        for( int c = 1; c < 256; c++ )
+        {
+            if( !tmp->hatBuchstabe( (unsigned char)c ) )
+                continue;
+            Text n = "";
+            n.append( (char)c );
+            n += " (";
+            n += (int)c;
+            n += ")";
+            var->zeichen->addEintrag( n );
+            var->zeichen->zEintrag( var->zeichen->getEintragAnzahl() - 1 )->setSchriftZ( dynamic_cast<Schrift *>( var->nSchrift->getThis() ) );
+            var->zeichen->zEintrag( var->zeichen->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
+            var->zeichen->zEintrag( var->zeichen->getEintragAnzahl() - 1 )->setSize( 0, 20 );
+        }
+        var->zeichen->addStyle( AuswahlListe::Style::Erlaubt );
+        var->neuZeichen->addStyle( Knopf::Style::Erlaubt );
+        var->gLöschen->addStyle( Knopf::Style::Erlaubt );
+    }
+    return 1;
 }
 
 bool ZeichenME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( var->zeichen->getKlickEintrag( me.my ) < 0 )
-		{
-			var->editZeichen->removeStyle( Knopf::Style::Erlaubt );
-			var->zLöschen->removeStyle( Knopf::Style::Erlaubt );
-		}
-		else
-		{
-			var->editZeichen->addStyle( Knopf::Style::Erlaubt );
-			var->zLöschen->addStyle( Knopf::Style::Erlaubt );
-		}
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( var->zeichen->getKlickEintrag( me.my ) < 0 )
+        {
+            var->editZeichen->removeStyle( Knopf::Style::Erlaubt );
+            var->zLöschen->removeStyle( Knopf::Style::Erlaubt );
+        }
+        else
+        {
+            var->editZeichen->addStyle( Knopf::Style::Erlaubt );
+            var->zLöschen->addStyle( Knopf::Style::Erlaubt );
+        }
+    }
+    return 1;
 }
 
 bool GLöschenME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( var->größe->getAuswahl() < 0 )
-			return 1;
-		var->sDatei->löscheSchrifrGröße( (int)*var->größe->zEintrag( var->größe->getAuswahl() )->zText() );
-		SchriftLaden( var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( var->größe->getAuswahl() < 0 )
+            return 1;
+        var->sDatei->löscheSchrifrGröße( (int)*var->größe->zEintrag( var->größe->getAuswahl() )->zText() );
+        SchriftLaden( var );
+    }
+    return 1;
 }
 
 bool NeuGrößeME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		var->neuGrößeF->addStyle( Fenster::Style::Sichtbar );
-		SetErlaubt( 0, var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        var->neuGrößeF->addStyle( Fenster::Style::Sichtbar );
+        SetErlaubt( 0, var );
+    }
+    return 1;
 }
 
 bool NeuGrößeFME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		var->neuGrößeF->removeStyle( Fenster::Style::Sichtbar );
-		SetErlaubt( 1, var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        var->neuGrößeF->removeStyle( Fenster::Style::Sichtbar );
+        SetErlaubt( 1, var );
+    }
+    return 1;
 }
 
 bool NGOkME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( (int)*var->nGGröße->zText() <= 0 )
-			return 1;
-		Alphabet *a = new Alphabet();
-		a->setSchriftSize( (int)*var->nGGröße->zText() );
-		var->sDatei->addSchriftgröße( a );
-		var->neuGrößeF->removeStyle( Fenster::Style::Sichtbar );
-		SchriftLaden( var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( (int)*var->nGGröße->zText() <= 0 )
+            return 1;
+        Alphabet *a = new Alphabet();
+        a->setSchriftSize( (int)*var->nGGröße->zText() );
+        var->sDatei->addSchriftgröße( a );
+        var->neuGrößeF->removeStyle( Fenster::Style::Sichtbar );
+        SchriftLaden( var );
+    }
+    return 1;
 }
 
 bool VFgTE( void *p, void *obj, TastaturEreignis te )
 {
-	bool ret = te.taste == T_Enter;
-	Variablen *var = (Variablen*)p;
-	if( te.taste >= '0' && te.taste <= '9' && var->vFg->zText()->getLength() < 6 )
-		ret = 1;
-	if( te.taste >= 'A' && te.taste <= 'F' && var->vFg->zText()->getLength() < 6 )
-		ret = 1;
-	if( te.taste >= 'a' && te.taste <= 'f' && var->vFg->zText()->getLength() < 6 )
-		ret = 1;
-	if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
-		ret = 1;
-	if( !ret )
-		return 0;
-	Text fgT = "0xFF";
-	fgT += var->vFg->zText()->getText();
-	for( int i = fgT.getLength(); i < 10; i++ )
-		fgT += "0";
-	var->vorschau->setSchriftFarbe( 0xFF000000 | (int)fgT );
-	return ret;
+    bool ret = te.taste == T_Enter;
+    Variablen *var = (Variablen *)p;
+    if( te.taste >= '0' && te.taste <= '9' && var->vFg->zText()->getLength() < 6 )
+        ret = 1;
+    if( te.taste >= 'A' && te.taste <= 'F' && var->vFg->zText()->getLength() < 6 )
+        ret = 1;
+    if( te.taste >= 'a' && te.taste <= 'f' && var->vFg->zText()->getLength() < 6 )
+        ret = 1;
+    if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
+        ret = 1;
+    if( !ret )
+        return 0;
+    Text fgT = "0xFF";
+    fgT += var->vFg->zText()->getText();
+    for( int i = fgT.getLength(); i < 10; i++ )
+        fgT += "0";
+    var->vorschau->setSchriftFarbe( 0xFF000000 | (int)fgT );
+    return ret;
 }
 
 bool VBgTE( void *p, void *obj, TastaturEreignis te )
 {
-	bool ret = te.taste == T_Enter;
-	Variablen *var = (Variablen*)p;
-	if( te.taste >= '0' && te.taste <= '9' && var->vBg->zText()->getLength() < 6 )
-		ret = 1;
-	if( te.taste >= 'A' && te.taste <= 'F' && var->vBg->zText()->getLength() < 6 )
-		ret = 1;
-	if( te.taste >= 'a' && te.taste <= 'f' && var->vBg->zText()->getLength() < 6 )
-		ret = 1;
-	if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
-		ret = 1;
-	if( !ret )
-		return 0;
-	Text bgT = "0xFF";
-	bgT += var->vBg->zText()->getText();
-	for( int i = bgT.getLength(); i < 10; i++ )
-		bgT += "0";
-	var->vorschau->setHintergrundFarbe( 0xFF000000 | (int)bgT );
-	return ret;
+    bool ret = te.taste == T_Enter;
+    Variablen *var = (Variablen *)p;
+    if( te.taste >= '0' && te.taste <= '9' && var->vBg->zText()->getLength() < 6 )
+        ret = 1;
+    if( te.taste >= 'A' && te.taste <= 'F' && var->vBg->zText()->getLength() < 6 )
+        ret = 1;
+    if( te.taste >= 'a' && te.taste <= 'f' && var->vBg->zText()->getLength() < 6 )
+        ret = 1;
+    if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
+        ret = 1;
+    if( !ret )
+        return 0;
+    Text bgT = "0xFF";
+    bgT += var->vBg->zText()->getText();
+    for( int i = bgT.getLength(); i < 10; i++ )
+        bgT += "0";
+    var->vorschau->setHintergrundFarbe( 0xFF000000 | (int)bgT );
+    return ret;
 }
 
 bool VBgBME( void *p, void *obj, MausEreignis me )
@@ -318,7 +318,7 @@ bool VBgBME( void *p, void *obj, MausEreignis me )
         else
         {
             ( (Variablen *)p )->vorschau->addStyle( TextFeld::Style::HBild );
-            new AsynchronCall( [ p ]()
+            new AsynchronCall( [p]()
             {
                 DateiDialog *dialog = new DateiDialog();
                 dialog->addDateiTyp( "Bild Datei", "*.ltdb" );
@@ -335,10 +335,10 @@ bool VBgBME( void *p, void *obj, MausEreignis me )
                         {
                             choice->addChoice( i->getText(), i._ );
                         }
-                        Text *zBild = (Text*)choice->anzeigen( ( (Variablen *)p )->nSchrift );
+                        Text *zBild = (Text *)choice->anzeigen( ( (Variablen *)p )->nSchrift );
                         if( zBild )
                         {
-                            Bild *b = dat.laden( 0, zBild->getThis() );
+                            Bild *b = dat.laden( 0, dynamic_cast<Text *>( zBild->getThis() ) );
                             ( (Variablen *)p )->vorschau->setHintergrundBildZ( b );
                         }
                         choice->release();
@@ -353,350 +353,359 @@ bool VBgBME( void *p, void *obj, MausEreignis me )
 
 bool VGrößeTE( void *p, void *obj, TastaturEreignis te )
 {
-	bool ret = te.taste == T_Enter;
-	Variablen *var = (Variablen*)p;
-	if( te.taste >= '0' && te.taste <= '9' && var->vGröße->zText()->getLength() < 3 )
-		ret = 1;
-	if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
-		ret = 1;
-	if( !ret )
-		return 0;
-	var->vorschau->setSchriftSize( (unsigned char)(int)*var->vGröße->zText() );
-	var->vorschau->updateVScroll();
-	return ret;
+    bool ret = te.taste == T_Enter;
+    Variablen *var = (Variablen *)p;
+    if( te.taste >= '0' && te.taste <= '9' && var->vGröße->zText()->getLength() < 3 )
+        ret = 1;
+    if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
+        ret = 1;
+    if( !ret )
+        return 0;
+    var->vorschau->setSchriftSize( (unsigned char)(int)*var->vGröße->zText() );
+    var->vorschau->updateVScroll();
+    return ret;
 }
 
 bool NeuZeichenME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( var->größe->getAuswahl() < 0 )
-			return 1;
-		var->neuZeichenF->addStyle( Fenster::Style::Sichtbar );
-		SetErlaubt( 0, var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( var->größe->getAuswahl() < 0 )
+            return 1;
+        var->neuZeichenF->addStyle( Fenster::Style::Sichtbar );
+        SetErlaubt( 0, var );
+    }
+    return 1;
 }
 
 bool NeuZeichenFME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		var->neuZeichenF->removeStyle( Fenster::Style::Sichtbar );
-		SetErlaubt( 1, var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        var->neuZeichenF->removeStyle( Fenster::Style::Sichtbar );
+        SetErlaubt( 1, var );
+    }
+    return 1;
 }
 
 bool NZZeichenTE( void *p, void *obj, TastaturEreignis te )
 {
-	bool ret = te.taste == T_Enter;
-	Variablen *var = (Variablen*)p;
-	if( te.taste >= '0' && te.taste <= '9' && var->nZZeichen->zText()->getLength() < 3 )
-		ret = 1;
-	if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
-		ret = 1;
-	if( !ret )
-		return 0;
-	Text v;
-	v.append( (char)(int)*var->nZZeichen->zText() );
-	var->nZVorschau->setText( v );
-	return 1;
+    bool ret = te.taste == T_Enter;
+    Variablen *var = (Variablen *)p;
+    if( te.taste >= '0' && te.taste <= '9' && var->nZZeichen->zText()->getLength() < 3 )
+        ret = 1;
+    if( te.taste == T_Links || te.taste == T_Rechts || te.taste == T_BackSpace || te.taste == T_Entf )
+        ret = 1;
+    if( !ret )
+        return 0;
+    Text v;
+    v.append( (char)(int)*var->nZZeichen->zText() );
+    var->nZVorschau->setText( v );
+    return 1;
 }
 
 bool NZOkME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( (int)*var->nZBreite->zText() <= 0 || (int)*var->nZHöhe->zText() <= 0 || (int)*var->nZZeichen->zText() <= 0 || (int)*var->nZZeichen->zText() > 255 )
-			return 1;
-		Buchstabe *b = new Buchstabe();
-		b->NeuBuchstabe( Punkt( (int)*var->nZBreite->zText(), (int)*var->nZHöhe->zText() ) );
-		var->sDatei->addBuchstabe( *var->größe->zEintrag( var->größe->getAuswahl() )->zText(), b, (unsigned char)(int)*var->nZZeichen->zText() );
-		var->neuZeichenF->removeStyle( Fenster::Style::Sichtbar );
-		int ausw = var->größe->getAuswahl();
-		SchriftLaden( var );
-		MausEreignis me;
-		me.id = ME_RLinks;
-		me.mx = 20;
-		me.my = 50 + ausw * 20 - var->größe->getVertikalScrollPos();
-		me.verarbeitet = 0;
-		var->größe->doMausEreignis( me );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( (int)*var->nZBreite->zText() <= 0 || (int)*var->nZHöhe->zText() <= 0 || (int)*var->nZZeichen->zText() <= 0 || (int)*var->nZZeichen->zText() > 255 )
+            return 1;
+        Buchstabe *b = new Buchstabe();
+        b->NeuBuchstabe( Punkt( (int)*var->nZBreite->zText(), (int)*var->nZHöhe->zText() ) );
+        var->sDatei->addBuchstabe( *var->größe->zEintrag( var->größe->getAuswahl() )->zText(), b, (unsigned char)(int)*var->nZZeichen->zText() );
+        var->neuZeichenF->removeStyle( Fenster::Style::Sichtbar );
+        int ausw = var->größe->getAuswahl();
+        SchriftLaden( var );
+        MausEreignis me;
+        me.id = ME_RLinks;
+        me.mx = 20;
+        me.my = 50 + ausw * 20 - var->größe->getVertikalScrollPos();
+        me.verarbeitet = 0;
+        var->größe->doPublicMausEreignis( me );
+    }
+    return 1;
 }
 
 bool ZLöschenME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( var->größe->getAuswahl() < 0 || var->zeichen->getAuswahl() < 0 )
-			return 1;
-		var->sDatei->löscheBuchstabe( *var->größe->zEintrag( var->größe->getAuswahl() )->zText(),
-									  (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ] );
-		int ausw = var->größe->getAuswahl();
-		SchriftLaden( var );
-		MausEreignis me;
-		me.id = ME_RLinks;
-		me.mx = 20;
-		me.my = 50 + ausw * 20 - var->größe->getVertikalScrollPos();
-		me.verarbeitet = 0;
-		var->größe->doMausEreignis( me );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( var->größe->getAuswahl() < 0 || var->zeichen->getAuswahl() < 0 )
+            return 1;
+        var->sDatei->löscheBuchstabe( *var->größe->zEintrag( var->größe->getAuswahl() )->zText(),
+                                      (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ] );
+        int ausw = var->größe->getAuswahl();
+        SchriftLaden( var );
+        MausEreignis me;
+        me.id = ME_RLinks;
+        me.mx = 20;
+        me.my = 50 + ausw * 20 - var->größe->getVertikalScrollPos();
+        me.verarbeitet = 0;
+        var->größe->doPublicMausEreignis( me );
+    }
+    return 1;
 }
 
 bool EditZeichenME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( var->größe->getAuswahl() < 0 || var->zeichen->getAuswahl() < 0 )
-			return 1;
-		unsigned char zeichen = (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ];
-		int größe = *var->größe->zEintrag( var->größe->getAuswahl() )->zText();
-		Alphabet *a = var->schrift->zAlphabet( größe );
-		if( !a || !a->hatBuchstabe( zeichen ) )
-			return 1;
-		Bild *editB = new Bild();
-		editB->neuBild( a->zBuchstabe( zeichen )->getSize().x * 10, a->zBuchstabe( zeichen )->getSize().y * 10, 0 );
-		var->editObj->setSize( 440 < editB->getBreite() + 2 ? 440 : editB->getBreite() + 2, 390 < editB->getHeight() + 2 ? 390 : editB->getHeight() + 2 );
-		var->editObj->setStyle( BildZ::Style::HScroll, 440 < editB->getBreite() + 2 );
-		var->editObj->setStyle( BildZ::Style::VScroll, 390 < editB->getHeight() + 2 );
-		var->editObj->setBildZ( editB );
-		var->editF->addStyle( Fenster::Style::Sichtbar );
-		SetErlaubt( 0, var );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( var->größe->getAuswahl() < 0 || var->zeichen->getAuswahl() < 0 )
+            return 1;
+        unsigned char zeichen = (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ];
+        int größe = *var->größe->zEintrag( var->größe->getAuswahl() )->zText();
+        Alphabet *a = var->schrift->zAlphabet( größe );
+        if( !a || !a->hatBuchstabe( zeichen ) )
+            return 1;
+        Bild *editB = new Bild();
+        editB->neuBild( a->zBuchstabe( zeichen )->getSize().x * 10, a->zBuchstabe( zeichen )->getSize().y * 10, 0 );
+        var->editObj->setSize( 440 < editB->getBreite() + 2 ? 440 : editB->getBreite() + 2, 390 < editB->getHeight() + 2 ? 390 : editB->getHeight() + 2 );
+        var->editObj->setStyle( BildZ::Style::HScroll, 440 < editB->getBreite() + 2 );
+        var->editObj->setStyle( BildZ::Style::VScroll, 390 < editB->getHeight() + 2 );
+        var->editObj->setBildZ( editB );
+        var->editF->addStyle( Fenster::Style::Sichtbar );
+        SetErlaubt( 0, var );
+    }
+    return 1;
 }
 
 bool EditFME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		var->editF->removeStyle( Fenster::Style::Sichtbar );
-		int gAusw = var->größe->getAuswahl();
-		int zAusw = var->zeichen->getAuswahl();
-		SchriftLaden( var );
-		MausEreignis me;
-		me.id = ME_RLinks;
-		me.mx = 20;
-		me.my = 50 + gAusw * 20 - var->größe->getVertikalScrollPos();
-		me.verarbeitet = 0;
-		var->größe->doMausEreignis( me );
-		me.id = ME_RLinks;
-		me.mx = 140;
-		me.my = 50 + zAusw * 20 - var->zeichen->getVertikalScrollPos();
-		me.verarbeitet = 0;
-		var->zeichen->doMausEreignis( me );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        var->editF->removeStyle( Fenster::Style::Sichtbar );
+        int gAusw = var->größe->getAuswahl();
+        int zAusw = var->zeichen->getAuswahl();
+        SchriftLaden( var );
+        MausEreignis me;
+        me.id = ME_RLinks;
+        me.mx = 20;
+        me.my = 50 + gAusw * 20 - var->größe->getVertikalScrollPos();
+        me.verarbeitet = 0;
+        var->größe->doPublicMausEreignis( me );
+        me.id = ME_RLinks;
+        me.mx = 140;
+        me.my = 50 + zAusw * 20 - var->zeichen->getVertikalScrollPos();
+        me.verarbeitet = 0;
+        var->zeichen->doPublicMausEreignis( me );
+    }
+    return 1;
 }
 
 bool EditObjME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_PLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		if( var->editObj->hatStyle( BildZ::Style::VScroll ) && me.mx >= 425 )
-			return 1;
-		if( var->editObj->hatStyle( BildZ::Style::HScroll ) && me.my >= 375 )
-			return 1;
-		Text aT = "0x";
-		aT += var->editAlpha->zText()->getText();
-		for( int i = aT.getLength(); i < 4; i++ )
-			aT += "0";
-		int a = aT;
-		if( a < 0 || a > 255 )
-			return 1;
-		int px = ( me.mx + var->editObj->getHorizontalScrollPos() ) / 10;
-		int py = ( me.my + var->editObj->getVertikalScrollPos() ) / 10;
-		Buchstabe *zeichen = var->schrift->zAlphabet( *var->größe->zEintrag( var->größe->getAuswahl() )->zText() )->zBuchstabe(
-			(unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ] );
-		zeichen->getBuff()[ px + py * zeichen->getSize().x ] = (unsigned char)a;
-		var->editObj->setRender();
-	}
-	return 1;
+    if( me.id == ME_PLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        if( var->editObj->hatStyle( BildZ::Style::VScroll ) && me.mx >= 425 )
+            return 1;
+        if( var->editObj->hatStyle( BildZ::Style::HScroll ) && me.my >= 375 )
+            return 1;
+        Text aT = "0x";
+        aT += var->editAlpha->zText()->getText();
+        for( int i = aT.getLength(); i < 4; i++ )
+            aT += "0";
+        int a = aT;
+        if( a < 0 || a > 255 )
+            return 1;
+        int px = ( me.mx + var->editObj->getHorizontalScrollPos() ) / 10;
+        int py = ( me.my + var->editObj->getVertikalScrollPos() ) / 10;
+        Buchstabe *zeichen = var->schrift->zAlphabet( *var->größe->zEintrag( var->größe->getAuswahl() )->zText() )->zBuchstabe(
+            (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ] );
+        zeichen->getBuff()[ px + py * zeichen->getSize().x ] = (unsigned char)a;
+        var->editObj->setRender();
+    }
+    return 1;
 }
 
 bool EditSpeichernME( void *p, void *obj, MausEreignis me )
 {
-	if( me.id == ME_RLinks )
-	{
-		Variablen *var = (Variablen*)p;
-		int gr = *var->größe->zEintrag( var->größe->getAuswahl() )->zText();
-		unsigned char z = (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ];
-		Buchstabe *zeichen = var->schrift->zAlphabet( gr )->getBuchstabe( z );
-		var->sDatei->löscheBuchstabe( gr, z );
-		var->sDatei->addBuchstabe( gr, zeichen, z );
-	}
-	return 1;
+    if( me.id == ME_RLinks )
+    {
+        Variablen *var = (Variablen *)p;
+        int gr = *var->größe->zEintrag( var->größe->getAuswahl() )->zText();
+        unsigned char z = (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ];
+        Buchstabe *zeichen = var->schrift->zAlphabet( gr )->getBuchstabe( z );
+        var->sDatei->löscheBuchstabe( gr, z );
+        var->sDatei->addBuchstabe( gr, zeichen, z );
+    }
+    return 1;
+}
+
+bool TestME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_PLinks )
+    {
+        return 1;
+    }
+    return 1;
 }
 
 void renderE( void *p, void *obj, Bild *zRObj )
 {
-	Variablen *var = (Variablen*)p;
-	if( var->editF->hatStyle( Fenster::Style::Sichtbar ) )
-	{
-		Buchstabe *zeichen = var->schrift->zAlphabet( *var->größe->zEintrag( var->größe->getAuswahl() )->zText() )->zBuchstabe(
-			(unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ] );
-		Text fgT = "0x00";
-		fgT += var->editFg->zText()->getText();
-		for( int i = fgT.getLength(); i < 10; i++ )
-			fgT += "0";
-		int fg = fgT;
-		Text bgT = "0xFF";
-		bgT += var->editBg->zText()->getText();
-		for( int i = bgT.getLength(); i < 10; i++ )
-			bgT += "0";
-		var->editObj->zBild()->fillRegion( 0, 0, var->editObj->zBild()->getBreite(), var->editObj->zBild()->getHeight(), bgT );
-		for( int i = 0; i < zeichen->getSize().x; i++ )
-		{
-			for( int j = 0; j < zeichen->getSize().y; j++ )
-				var->editObj->zBild()->alphaRegion( i * 10, j * 10, 10, 10, ( zeichen->getBuff()[ i + j * zeichen->getSize().x ] << 24 ) | fg );
-		}
-	}
+    Variablen *var = (Variablen *)p;
+    if( var->editF->hatStyle( Fenster::Style::Sichtbar ) )
+    {
+        Buchstabe *zeichen = var->schrift->zAlphabet( *var->größe->zEintrag( var->größe->getAuswahl() )->zText() )->zBuchstabe(
+            (unsigned char)var->zeichen->zEintrag( var->zeichen->getAuswahl() )->zText()->getText()[ 0 ] );
+        Text fgT = "0x00";
+        fgT += var->editFg->zText()->getText();
+        for( int i = fgT.getLength(); i < 10; i++ )
+            fgT += "0";
+        int fg = fgT;
+        Text bgT = "0xFF";
+        bgT += var->editBg->zText()->getText();
+        for( int i = bgT.getLength(); i < 10; i++ )
+            bgT += "0";
+        var->editObj->zBild()->fillRegion( 0, 0, var->editObj->zBild()->getBreite(), var->editObj->zBild()->getHeight(), bgT );
+        for( int i = 0; i < zeichen->getSize().x; i++ )
+        {
+            for( int j = 0; j < zeichen->getSize().y; j++ )
+                var->editObj->zBild()->alphaRegion( i * 10, j * 10, 10, 10, ( zeichen->getBuff()[ i + j * zeichen->getSize().x ] << 24 ) | fg );
+        }
+    }
 }
 
 int KSGStart Framework::Start( Startparam p )
 {
-	Variablen var;
-
-	WNDCLASS wc = F_Normal( p.hinst );
-	wc.lpszClassName = "Schrift Editor 2.0";
-	WFenster *f = new WFenster();
-	f->setVSchließAktion( beenden );
-	f->setMausAktion( _ret1ME );
-	f->setTastaturAktion( _ret1TE );
-	f->erstellen( WS_OVERLAPPEDWINDOW, wc );
-	f->setSize( 750, 730 );
-	f->setPosition( Bildschirmmitte( f->getThis() ) );
-	f->setVerschiebbar( 1 );
-	f->setAnzeigeModus( 1 );
-
-	Bildschirm *b = new Bildschirm3D( f->getThis() );
-	f->setBildschirm( b->getThis() );
-	b->update();
-
-	RenderTh *r = new RenderTh();
-	r->setBildschirm( b->getThis() );
-	r->beginn();
-
-	LTDSDatei *sND = new LTDSDatei();
-	sND->setPfad( new Text( "../data/normal.ltds" ) );
-	sND->leseDaten();
-	var.nSchrift = sND->ladeSchrift();
-	sND->release();
-
-	var.schrift = 0;
-	var.sDatei = new LTDSDatei();
-
-	var.sPfad = initTextFeld( 10, 10, 620, 20, var.nSchrift, TextFeld::Style::TextFeld | TextFeld::Style::VCenter, "LTDS Datei Pfad" );
-	b->addMember( var.sPfad );
-
-	var.sLaden = initKnopf( 640, 10, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "LTDS Laden" );
-	var.sLaden->setMausEreignis( SLadenME );
-	var.sLaden->setMausEreignisParameter( &var );
-	b->addMember( var.sLaden );
-
-	var.größe = new AuswahlListe();
-	var.größe->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
-	var.größe->setPosition( 10, 40 );
-	var.größe->setSize( 100, 590 );
-	var.größe->setAlphaFeldFarbe( 0x7500FF00 );
-	var.größe->setAlphaFeldStrength( 8 );
-	var.größe->setRahmenFarbe( 0xFFFFFFFF );
-	var.größe->setRahmenBreite( 2 );
-	var.größe->setALRZ( new LRahmen() );
-	var.größe->zARahmen()->setFarbe( 0xFF00FF00 );
-	var.größe->setVertikalKlickScroll( 10 );
-	var.größe->setMausEreignis( GrößeME );
-	var.größe->setMausEreignisParameter( &var );
-	var.größe->update();
-	b->addMember( var.größe );
-
-	var.zeichen = new AuswahlListe();
-	var.zeichen->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
-	var.zeichen->setPosition( 120, 40 );
-	var.zeichen->setSize( 105, 560 );
-	var.zeichen->setAlphaFeldFarbe( 0x7500FF00 );
-	var.zeichen->setAlphaFeldStrength( 8 );
-	var.zeichen->setRahmenFarbe( 0xFFFFFFFF );
-	var.zeichen->setRahmenBreite( 2 );
+    Variablen var;
+
+    WNDCLASS wc = F_Normal( p.hinst );
+    wc.lpszClassName = "Schrift Editor 2.0";
+    WFenster *f = new WFenster();
+    f->setVSchließAktion( beenden );
+    f->setMausAktion( TestME );
+    f->setTastaturAktion( _ret1TE );
+    f->erstellen( WS_OVERLAPPEDWINDOW, wc );
+    f->setSize( 750, 730 );
+    f->setPosition( Bildschirmmitte( dynamic_cast<WFenster *>( f->getThis() ) ) );
+    f->setVerschiebbar( 1 );
+    f->setAnzeigeModus( 1 );
+
+    Bildschirm *b = new Bildschirm3D( dynamic_cast<WFenster *>( f->getThis() ) );
+    f->setBildschirm( dynamic_cast<Bildschirm *>( b->getThis() ) );
+    b->update();
+
+    RenderTh *r = new RenderTh();
+    r->setBildschirm( dynamic_cast<Bildschirm *>( b->getThis() ) );
+    r->beginn();
+
+    LTDSDatei *sND = new LTDSDatei();
+    sND->setPfad( new Text( "../data/normal.ltds" ) );
+    sND->leseDaten();
+    var.nSchrift = sND->ladeSchrift();
+    sND->release();
+
+    var.schrift = 0;
+    var.sDatei = new LTDSDatei();
+
+    var.sPfad = initTextFeld( 10, 10, 620, 20, var.nSchrift, TextFeld::Style::TextFeld | TextFeld::Style::VCenter, "LTDS Datei Pfad" );
+    b->addMember( var.sPfad );
+
+    var.sLaden = initKnopf( 640, 10, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "LTDS Laden" );
+    var.sLaden->setMausEreignis( SLadenME );
+    var.sLaden->setMausEreignisParameter( &var );
+    b->addMember( var.sLaden );
+
+    var.größe = new AuswahlListe();
+    var.größe->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
+    var.größe->setPosition( 10, 40 );
+    var.größe->setSize( 100, 590 );
+    var.größe->setAlphaFeldFarbe( 0x7500FF00 );
+    var.größe->setAlphaFeldStrength( 8 );
+    var.größe->setRahmenFarbe( 0xFFFFFFFF );
+    var.größe->setRahmenBreite( 2 );
+    var.größe->setALRZ( new LRahmen() );
+    var.größe->zARahmen()->setFarbe( 0xFF00FF00 );
+    var.größe->setVertikalKlickScroll( 10 );
+    var.größe->setMausEreignis( GrößeME );
+    var.größe->setMausEreignisParameter( &var );
+    var.größe->update();
+    b->addMember( var.größe );
+
+    var.zeichen = new AuswahlListe();
+    var.zeichen->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
+    var.zeichen->setPosition( 120, 40 );
+    var.zeichen->setSize( 105, 560 );
+    var.zeichen->setAlphaFeldFarbe( 0x7500FF00 );
+    var.zeichen->setAlphaFeldStrength( 8 );
+    var.zeichen->setRahmenFarbe( 0xFFFFFFFF );
+    var.zeichen->setRahmenBreite( 2 );
     var.zeichen->setALRZ( new LRahmen() );
-	var.zeichen->zARahmen()->setFarbe( 0xFF00FF00 );
-	var.zeichen->setVertikalKlickScroll( 10 );
-	var.zeichen->setMausEreignis( ZeichenME );
-	var.zeichen->setMausEreignisParameter( &var );
-	var.zeichen->update();
-	b->addMember( var.zeichen );
-
-	var.gLöschen = initKnopf( 10, 640, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Größe Löschen" );
-	var.gLöschen->removeStyle( Knopf::Style::Erlaubt );
-	var.gLöschen->setMausEreignis( GLöschenME );
-	var.gLöschen->setMausEreignisParameter( &var );
-	b->addMember( var.gLöschen );
-
-	var.neuGröße = initKnopf( 10, 670, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Neue Größe" );
-	var.neuGröße->removeStyle( Knopf::Style::Erlaubt );
-	var.neuGröße->setMausEreignis( NeuGrößeME );
-	var.neuGröße->setMausEreignisParameter( &var );
-	b->addMember( var.neuGröße );
-
-	var.editZeichen = initKnopf( 120, 610, 105, 20, var.nSchrift, Knopf::Style::Sichtbar, "Zeichen ändern" );
-	var.editZeichen->removeStyle( Knopf::Style::Erlaubt );
-	var.editZeichen->setMausEreignis( EditZeichenME );
-	var.editZeichen->setMausEreignisParameter( &var );
-	b->addMember( var.editZeichen );
-
-	var.zLöschen = initKnopf( 120, 640, 105, 20, var.nSchrift, Knopf::Style::Sichtbar, "Zeichen Löschen" );
-	var.zLöschen->removeStyle( Knopf::Style::Erlaubt );
-	var.zLöschen->setMausEreignis( ZLöschenME );
-	var.zLöschen->setMausEreignisParameter( &var );
-	b->addMember( var.zLöschen );
-
-	var.neuZeichen = initKnopf( 120, 670, 105, 20, var.nSchrift, Knopf::Style::Sichtbar, "Neues Zeichen" );
-	var.neuZeichen->removeStyle( Knopf::Style::Erlaubt );
-	var.neuZeichen->setMausEreignis( NeuZeichenME );
-	var.neuZeichen->setMausEreignisParameter( &var );
-	b->addMember( var.neuZeichen );
-
-	var.vorschau = initTextFeld( 230, 40, 510, 150, 0, TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt, "Vorschau" );
-	b->addMember( var.vorschau );
-
-	var.vFgT = initTextFeld( 230, 200, 40, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Farbe:" );
-	b->addMember( var.vFgT );
-
-	var.vFg = initTextFeld( 270, 200, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "FFFFFF" );
-	var.vFg->setTastaturEreignis( VFgTE );
-	var.vFg->setTastaturEreignisParameter( &var );
-	b->addMember( var.vFg );
-
-	var.vBgT = initTextFeld( 340, 200, 80, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Hintergrund:" );
-	b->addMember( var.vBgT );
-
-	var.vBg = initTextFeld( 415, 200, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "000000" );
-	var.vBg->setTastaturEreignis( VBgTE );
-	var.vBg->setTastaturEreignisParameter( &var );
-	b->addMember( var.vBg );
+    var.zeichen->zARahmen()->setFarbe( 0xFF00FF00 );
+    var.zeichen->setVertikalKlickScroll( 10 );
+    var.zeichen->setMausEreignis( ZeichenME );
+    var.zeichen->setMausEreignisParameter( &var );
+    var.zeichen->update();
+    b->addMember( var.zeichen );
+
+    var.gLöschen = initKnopf( 10, 640, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Größe Löschen" );
+    var.gLöschen->removeStyle( Knopf::Style::Erlaubt );
+    var.gLöschen->setMausEreignis( GLöschenME );
+    var.gLöschen->setMausEreignisParameter( &var );
+    b->addMember( var.gLöschen );
+
+    var.neuGröße = initKnopf( 10, 670, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Neue Größe" );
+    var.neuGröße->removeStyle( Knopf::Style::Erlaubt );
+    var.neuGröße->setMausEreignis( NeuGrößeME );
+    var.neuGröße->setMausEreignisParameter( &var );
+    b->addMember( var.neuGröße );
+
+    var.editZeichen = initKnopf( 120, 610, 105, 20, var.nSchrift, Knopf::Style::Sichtbar, "Zeichen ändern" );
+    var.editZeichen->removeStyle( Knopf::Style::Erlaubt );
+    var.editZeichen->setMausEreignis( EditZeichenME );
+    var.editZeichen->setMausEreignisParameter( &var );
+    b->addMember( var.editZeichen );
+
+    var.zLöschen = initKnopf( 120, 640, 105, 20, var.nSchrift, Knopf::Style::Sichtbar, "Zeichen Löschen" );
+    var.zLöschen->removeStyle( Knopf::Style::Erlaubt );
+    var.zLöschen->setMausEreignis( ZLöschenME );
+    var.zLöschen->setMausEreignisParameter( &var );
+    b->addMember( var.zLöschen );
+
+    var.neuZeichen = initKnopf( 120, 670, 105, 20, var.nSchrift, Knopf::Style::Sichtbar, "Neues Zeichen" );
+    var.neuZeichen->removeStyle( Knopf::Style::Erlaubt );
+    var.neuZeichen->setMausEreignis( NeuZeichenME );
+    var.neuZeichen->setMausEreignisParameter( &var );
+    b->addMember( var.neuZeichen );
+
+    var.vorschau = initTextFeld( 230, 40, 510, 150, 0, TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt, "Vorschau" );
+    b->addMember( var.vorschau );
+
+    var.vFgT = initTextFeld( 230, 200, 40, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Farbe:" );
+    b->addMember( var.vFgT );
+
+    var.vFg = initTextFeld( 270, 200, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "FFFFFF" );
+    var.vFg->setTastaturEreignis( VFgTE );
+    var.vFg->setTastaturEreignisParameter( &var );
+    b->addMember( var.vFg );
+
+    var.vBgT = initTextFeld( 340, 200, 80, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Hintergrund:" );
+    b->addMember( var.vBgT );
+
+    var.vBg = initTextFeld( 415, 200, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "000000" );
+    var.vBg->setTastaturEreignis( VBgTE );
+    var.vBg->setTastaturEreignisParameter( &var );
+    b->addMember( var.vBg );
 
     var.vBgB = initKnopf( 485, 200, 50, 20, var.nSchrift, Knopf::Style::Normal, "Bild" );
     var.vBgB->setMausEreignis( VBgBME );
     var.vBgB->setMausEreignisParameter( &var );
     b->addMember( var.vBgB );
 
-	var.vGrößeT = initTextFeld( 550, 200, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Größe:" );
-	b->addMember( var.vGrößeT );
+    var.vGrößeT = initTextFeld( 550, 200, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Größe:" );
+    b->addMember( var.vGrößeT );
 
-	var.vGröße = initTextFeld( 600, 200, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "12" );
-	var.vGröße->setTastaturEreignis( VGrößeTE );
-	var.vGröße->setTastaturEreignisParameter( &var );
-	b->addMember( var.vGröße );
+    var.vGröße = initTextFeld( 600, 200, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "12" );
+    var.vGröße->setTastaturEreignis( VGrößeTE );
+    var.vGröße->setTastaturEreignisParameter( &var );
+    b->addMember( var.vGröße );
 
     var.vStyle = new AuswahlBox();
     var.vStyle->setPosition( 670, 200 );
@@ -714,11 +723,11 @@ int KSGStart Framework::Start( Startparam p )
     var.vStyle->setAuswAlphaFeldFarbe( 0x0000FF00 );
     var.vStyle->setAuswAlphaFeldStrength( -8 );
     var.vStyle->setStyle( AuswahlBox::Style::Normal );
-    var.vStyle->setSchriftZ( var.nSchrift->getThis() );
+    var.vStyle->setSchriftZ( dynamic_cast<Schrift *>( var.nSchrift->getThis() ) );
     var.vStyle->addEintrag( "Normal" );
     var.vStyle->addEintrag( "Gravur" );
     var.vStyle->setMausEreignis( _ret1ME );
-    var.vStyle->setEventAktion( [ var ]( void *p, AuswahlBox *o, int alt, int neu )
+    var.vStyle->setEventAktion( [var]( void *p, AuswahlBox *o, int alt, int neu )
     {
         switch( neu )
         {
@@ -732,153 +741,115 @@ int KSGStart Framework::Start( Startparam p )
     } );
     b->addMember( var.vStyle );
 
-	var.editF = initFenster( 230, 230, 460, 460, var.nSchrift, Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund | Fenster::Style::ClosingHintergrund, "Zeichen Editor" );
-	var.editF->setClosingMe( EditFME );
-	var.editF->setClosingMeParam( &var );
-	var.editF->removeStyle( Fenster::Style::Sichtbar );
-	b->addMember( var.editF );
+    var.editF = initFenster( 230, 230, 460, 460, var.nSchrift, Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund | Fenster::Style::ClosingHintergrund, "Zeichen Editor" );
+    var.editF->setClosingMe( EditFME );
+    var.editF->setClosingMeParam( &var );
+    var.editF->removeStyle( Fenster::Style::Sichtbar );
+    b->addMember( var.editF );
+
+    var.editObj = initBildZ( 10, 10, 440, 390, BildZ::Style::Sichtbar | BildZ::Style::HScroll | BildZ::Style::VScroll | BildZ::Style::Rahmen | BildZ::Style::Erlaubt, 0 );
+    var.editObj->setMausEreignis( EditObjME );
+    var.editObj->setMausEreignisParameter( &var );
+    var.editF->addMember( var.editObj );
+
+    var.editFgT = initTextFeld( 10, 410, 80, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Vordergrund:" );
+    var.editF->addMember( var.editFgT );
+
+    var.editFg = initTextFeld( 90, 410, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "FFFFFF" );
+    var.editFg->setTastaturEreignis( _nurHexTE );
+    var.editF->addMember( var.editFg );
+
+    var.editBgT = initTextFeld( 160, 410, 80, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Hintergrund:" );
+    var.editF->addMember( var.editBgT );
+
+    var.editBg = initTextFeld( 240, 410, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "000000" );
+    var.editBg->setTastaturEreignis( _nurHexTE );
+    var.editF->addMember( var.editBg );
+
+    var.editAlphaT = initTextFeld( 310, 410, 40, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Alpha:" );
+    var.editF->addMember( var.editAlphaT );
+
+    var.editAlpha = initTextFeld( 350, 410, 30, 20, var.nSchrift, TextFeld::Style::TextFeld, "FF" );
+    var.editAlpha->setTastaturEreignis( _nurHexTE );
+    var.editF->addMember( var.editAlpha );
+
+    var.editSpeichern = initKnopf( 390, 410, 60, 20, var.nSchrift, Knopf::Style::Sichtbar, "Save" );
+    var.editSpeichern->setMausEreignis( EditSpeichernME );
+    var.editSpeichern->setMausEreignisParameter( &var );
+    var.editF->addMember( var.editSpeichern );
+
+    var.neuGrößeF = initFenster( 290, 305, 120, 90, var.nSchrift, Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund | Fenster::Style::ClosingHintergrund, "Neue Größe" );
+    var.neuGrößeF->setClosingMe( NeuGrößeFME );
+    var.neuGrößeF->setClosingMeParam( &var );
+    var.neuGrößeF->removeStyle( Fenster::Style::Sichtbar );
+    b->addMember( var.neuGrößeF );
+
+    var.nGGrößeT = initTextFeld( 10, 10, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Größe:" );
+    var.neuGrößeF->addMember( var.nGGrößeT );
+
+    var.nGGröße = initTextFeld( 60, 10, 50, 20, var.nSchrift, TextFeld::Style::TextFeld, "12" );
+    var.nGGröße->setTastaturEreignis( _nurNummernTE );
+    var.neuGrößeF->addMember( var.nGGröße );
+
+    var.nGOk = initKnopf( 10, 40, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Ok" );
+    var.nGOk->setMausEreignis( NGOkME );
+    var.nGOk->setMausEreignisParameter( &var );
+    var.neuGrößeF->addMember( var.nGOk );
+
+    var.neuZeichenF = initFenster( 290, 275, 120, 150, var.nSchrift, Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund | Fenster::Style::ClosingHintergrund, "Neues Zeichen" );
+    var.neuZeichenF->setClosingMe( NeuZeichenFME );
+    var.neuZeichenF->setClosingMeParam( &var );
+    var.neuZeichenF->removeStyle( Fenster::Style::Sichtbar );
+    b->addMember( var.neuZeichenF );
+
+    var.nZZeichenT = initTextFeld( 10, 10, 60, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Zeichen:" );
+    var.neuZeichenF->addMember( var.nZZeichenT );
+
+    var.nZZeichen = initTextFeld( 70, 10, 30, 20, var.nSchrift, TextFeld::Style::TextFeld, "" );
+    var.nZZeichen->setTastaturEreignis( NZZeichenTE );
+    var.nZZeichen->setTastaturEreignisParameter( &var );
+    var.neuZeichenF->addMember( var.nZZeichen );
+
+    var.nZVorschau = initTextFeld( 105, 10, 10, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "" );
+    var.neuZeichenF->addMember( var.nZVorschau );
+
+    var.nZBreiteT = initTextFeld( 10, 40, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Breite" );
+    var.neuZeichenF->addMember( var.nZBreiteT );
+
+    var.nZBreite = initTextFeld( 60, 40, 50, 20, var.nSchrift, TextFeld::Style::TextFeld, "" );
+    var.nZBreite->setTastaturEreignis( _nurNummernTE );
+    var.neuZeichenF->addMember( var.nZBreite );
+
+    var.nZHöheT = initTextFeld( 10, 70, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Höhe" );
+    var.neuZeichenF->addMember( var.nZHöheT );
+
+    var.nZHöhe = initTextFeld( 60, 70, 50, 20, var.nSchrift, TextFeld::Style::TextFeld, "" );
+    var.nZHöhe->setTastaturEreignis( _nurNummernTE );
+    var.neuZeichenF->addMember( var.nZHöhe );
+
+    var.nZOk = initKnopf( 10, 100, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Ok" );
+    var.nZOk->setMausEreignis( NZOkME );
+    var.nZOk->setMausEreignisParameter( &var );
+    var.neuZeichenF->addMember( var.nZOk );
+
+    r->setRenderFunktionParameter( &var );
+    r->setRenderFunktion( renderE );
+
+    StartNachrichtenSchleife();
+
+    r->beenden();
+    r->release();
+
+    var.nSchrift->release();
+    if( var.schrift )
+        var.schrift->release();
+    var.sDatei->release();
+
+    b->release();
+    f->setBildschirm( 0 );
+    f->setAnzeigeModus( 0 );
+    f->zerstören();
+    f->release();
 
-	var.editObj = initBildZ( 10, 10, 440, 390, BildZ::Style::Sichtbar | BildZ::Style::HScroll | BildZ::Style::VScroll | BildZ::Style::Rahmen, 0 );
-	var.editObj->setMausEreignis( EditObjME );
-	var.editObj->setMausEreignisParameter( &var );
-	var.editF->addMember( var.editObj );
-
-	var.editFgT = initTextFeld( 10, 410, 80, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Vordergrund:" );
-	var.editF->addMember( var.editFgT );
-
-	var.editFg = initTextFeld( 90, 410, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "FFFFFF" );
-	var.editFg->setTastaturEreignis( _nurHexTE );
-	var.editF->addMember( var.editFg );
-
-	var.editBgT = initTextFeld( 160, 410, 80, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Hintergrund:" );
-	var.editF->addMember( var.editBgT );
-
-	var.editBg = initTextFeld( 240, 410, 60, 20, var.nSchrift, TextFeld::Style::TextFeld, "000000" );
-	var.editBg->setTastaturEreignis( _nurHexTE );
-	var.editF->addMember( var.editBg );
-
-	var.editAlphaT = initTextFeld( 310, 410, 40, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Alpha:" );
-	var.editF->addMember( var.editAlphaT );
-
-	var.editAlpha = initTextFeld( 350, 410, 30, 20, var.nSchrift, TextFeld::Style::TextFeld, "FF" );
-	var.editAlpha->setTastaturEreignis( _nurHexTE );
-	var.editF->addMember( var.editAlpha );
-
-	var.editSpeichern = initKnopf( 390, 410, 60, 20, var.nSchrift, Knopf::Style::Sichtbar, "Save" );
-	var.editSpeichern->setMausEreignis( EditSpeichernME );
-	var.editSpeichern->setMausEreignisParameter( &var );
-	var.editF->addMember( var.editSpeichern );
-
-	var.neuGrößeF = initFenster( 290, 305, 120, 90, var.nSchrift, Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund | Fenster::Style::ClosingHintergrund, "Neue Größe" );
-	var.neuGrößeF->setClosingMe( NeuGrößeFME );
-	var.neuGrößeF->setClosingMeParam( &var );
-	var.neuGrößeF->removeStyle( Fenster::Style::Sichtbar );
-	b->addMember( var.neuGrößeF );
-
-	var.nGGrößeT = initTextFeld( 10, 10, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Größe:" );
-	var.neuGrößeF->addMember( var.nGGrößeT );
-
-	var.nGGröße = initTextFeld( 60, 10, 50, 20, var.nSchrift, TextFeld::Style::TextFeld, "12" );
-	var.nGGröße->setTastaturEreignis( _nurNummernTE );
-	var.neuGrößeF->addMember( var.nGGröße );
-
-	var.nGOk = initKnopf( 10, 40, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Ok" );
-	var.nGOk->setMausEreignis( NGOkME );
-	var.nGOk->setMausEreignisParameter( &var );
-	var.neuGrößeF->addMember( var.nGOk );
-
-	var.neuZeichenF = initFenster( 290, 275, 120, 150, var.nSchrift, Fenster::Style::normal | Fenster::Style::TitelHintergrund | Fenster::Style::BodyHintergrund | Fenster::Style::ClosingHintergrund, "Neues Zeichen" );
-	var.neuZeichenF->setClosingMe( NeuZeichenFME );
-	var.neuZeichenF->setClosingMeParam( &var );
-	var.neuZeichenF->removeStyle( Fenster::Style::Sichtbar );
-	b->addMember( var.neuZeichenF );
-
-	var.nZZeichenT = initTextFeld( 10, 10, 60, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Zeichen:" );
-	var.neuZeichenF->addMember( var.nZZeichenT );
-
-	var.nZZeichen = initTextFeld( 70, 10, 30, 20, var.nSchrift, TextFeld::Style::TextFeld, "" );
-	var.nZZeichen->setTastaturEreignis( NZZeichenTE );
-	var.nZZeichen->setTastaturEreignisParameter( &var );
-	var.neuZeichenF->addMember( var.nZZeichen );
-
-	var.nZVorschau = initTextFeld( 105, 10, 10, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "" );
-	var.neuZeichenF->addMember( var.nZVorschau );
-
-	var.nZBreiteT = initTextFeld( 10, 40, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Breite" );
-	var.neuZeichenF->addMember( var.nZBreiteT );
-
-	var.nZBreite = initTextFeld( 60, 40, 50, 20, var.nSchrift, TextFeld::Style::TextFeld, "" );
-	var.nZBreite->setTastaturEreignis( _nurNummernTE );
-	var.neuZeichenF->addMember( var.nZBreite );
-
-	var.nZHöheT = initTextFeld( 10, 70, 50, 20, var.nSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Höhe" );
-	var.neuZeichenF->addMember( var.nZHöheT );
-
-	var.nZHöhe = initTextFeld( 60, 70, 50, 20, var.nSchrift, TextFeld::Style::TextFeld, "" );
-	var.nZHöhe->setTastaturEreignis( _nurNummernTE );
-	var.neuZeichenF->addMember( var.nZHöhe );
-
-	var.nZOk = initKnopf( 10, 100, 100, 20, var.nSchrift, Knopf::Style::Sichtbar, "Ok" );
-	var.nZOk->setMausEreignis( NZOkME );
-	var.nZOk->setMausEreignisParameter( &var );
-	var.neuZeichenF->addMember( var.nZOk );
-
-	r->setRenderFunktionParameter( &var );
-	r->setRenderFunktion( renderE );
-
-	StartNachrichtenSchleife();
-
-	r->beenden();
-	r->release();
-
-	var.nSchrift->release();
-	var.sPfad->release();
-	var.sLaden->release();
-	if( var.schrift )
-		var.schrift->release();
-	var.sDatei->release();
-	var.größe->release();
-	var.zeichen->release();
-	var.gLöschen->release();
-	var.neuGröße->release();
-	var.editZeichen->release();
-	var.zLöschen->release();
-	var.neuZeichen->release();
-	var.vorschau->release();
-	var.vFgT->release();
-	var.vFg->release();
-	var.vBgT->release();
-	var.vBg->release();
-	var.vGrößeT->release();
-	var.vGröße->release();
-	var.editF->release();
-	var.editObj->release();
-	var.editFg->release();
-	var.editFgT->release();
-	var.editBg->release();
-	var.editBgT->release();
-	var.editAlpha->release();
-	var.editAlphaT->release();
-	var.editSpeichern->release();
-	var.neuGrößeF->release();
-	var.nGGrößeT->release();
-	var.nGGröße->release();
-	var.nGOk->release();
-	var.neuZeichenF->release();
-	var.nZZeichenT->release();
-	var.nZZeichen->release();
-	var.nZVorschau->release();
-	var.nZBreiteT->release();
-	var.nZBreite->release();
-	var.nZHöheT->release();
-	var.nZHöhe->release();
-	var.nZOk->release();
-
-	b->release();
-	f->setBildschirm( 0 );
-	f->setAnzeigeModus( 0 );
-	f->zerstören();
-	f->release();
-
-	return 0;
+    return 0;
 }

+ 0 - 0
Schrift Editor 2/normal