Explorar el Código

Projektdateien hinzufügen.

Kolja Strohm hace 6 años
padre
commit
ccd1b94096

BIN
Fertig/Schriften/gravur.ltds


BIN
Fertig/Schriften/ksgs.ltds


BIN
Fertig/Schriften/normal.ltds


BIN
Fertig/Schriften/normal_alt.ltds


BIN
Fertig/data/normal.ltds


BIN
Fertig/x32/Framework.dll


BIN
Fertig/x32/Schrift Editor 2.exe


+ 28 - 0
Schrift Editor 2.sln

@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.22823.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Schrift Editor 2", "Schrift Editor 2\Schrift Editor 2.vcxproj", "{0F196E94-65AD-458C-900C-F5C5B14B893D}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug|x64 = Debug|x64
+		Release|Win32 = Release|Win32
+		Release|x64 = Release|x64
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Debug|Win32.Build.0 = Debug|Win32
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Debug|x64.ActiveCfg = Debug|x64
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Debug|x64.Build.0 = Debug|x64
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Release|Win32.ActiveCfg = Release|Win32
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Release|Win32.Build.0 = Release|Win32
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Release|x64.ActiveCfg = Release|x64
+		{0F196E94-65AD-458C-900C-F5C5B14B893D}.Release|x64.Build.0 = Release|x64
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

BIN
Schrift Editor 2/Framework.dll


+ 88 - 0
Schrift Editor 2/Initialisierung.cpp

@@ -0,0 +1,88 @@
+#include "Initialisierung.h"
+#include <Schrift.h>
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}

+ 16 - 0
Schrift Editor 2/Initialisierung.h

@@ -0,0 +1,16 @@
+#ifndef Initialisierung_H
+#define Initialisierung_H
+
+#include <Knopf.h>
+#include <TextFeld.h>
+#include <Fenster.h>
+#include <Bild.h>
+
+using namespace Framework;
+
+Knopf *initKnopf( int x, int y, int br, int hö, Schrift *zSchrift, __int64 style, char *titel );
+TextFeld *initTextFeld( int x, int y, int br, int hö, Schrift *zSchrift, __int64 style, char *txt );
+Fenster *initFenster( int x, int y, int br, int hö, Schrift *zSchrift, __int64 style, char *titel );
+BildZ *initBildZ( int x, int y, int br, int hö, __int64 style, Bild *b );
+
+#endif

+ 0 - 0
Schrift Editor 2/LTDS Datei Pfad


+ 0 - 0
Schrift Editor 2/LTDS Datei Pfadnormal


+ 170 - 0
Schrift Editor 2/Schrift Editor 2.vcxproj

@@ -0,0 +1,170 @@
+<?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|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{0F196E94-65AD-458C-900C-F5C5B14B893D}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>SchriftEditor2</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>..\..\Framework;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>..\..\Framework;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\Framework\x64\Debug;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>..\..\Framework;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\Framework\Release;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>..\..\Framework;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\Framework\x64\Release;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>Framework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>Framework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <CustomBuildStep>
+      <Command>copy "..\..\Framework\x64\Debug\Framework.dll" "Framework.dll"</Command>
+    </CustomBuildStep>
+    <CustomBuildStep>
+      <Outputs>kopieren...;%(Outputs)</Outputs>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Framework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Framework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="Initialisierung.cpp" />
+    <ClCompile Include="Start.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Initialisierung.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 30 - 0
Schrift Editor 2/Schrift Editor 2.vcxproj.filters

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.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;hh;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>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="Start.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="Initialisierung.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Initialisierung.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>

+ 884 - 0
Schrift Editor 2/Start.cpp

@@ -0,0 +1,884 @@
+#include <main.h>
+#include <Fenster.h>
+#include <Punkt.h>
+#include <Bildschirm.h>
+#include <RenderThread.h>
+#include <Knopf.h>
+#include <DateiSystem.h>
+#include <AuswahlBox.h>
+#include <Liste.h>
+#include <Schrift.h>
+#include <Bild.h>
+#include <Text.h>
+#include "Initialisierung.h"
+#include <MausEreignis.h>
+#include <TastaturEreignis.h>
+#include <Scroll.h>
+#include <AlphaFeld.h>
+#include <Rahmen.h>
+#include <Datei.h>
+#include <DateiDialog.h>
+#include <AsynchronCall.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;
+    Knopf *vBgB;
+	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;
+};
+
+void beenden( void *p, void *obj )
+{
+	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 );
+}
+
+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 );
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 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 VBgBME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        if( ( (Variablen *)p )->vorschau->hatStyle( TextFeld::Style::HBild ) )
+            ( (Variablen *)p )->vorschau->removeStyle( TextFeld::Style::HBild );
+        else
+        {
+            ( (Variablen *)p )->vorschau->addStyle( TextFeld::Style::HBild );
+            new AsynchronCall( [ p ]()
+            {
+                DateiDialog *dialog = new DateiDialog();
+                dialog->addDateiTyp( "Bild Datei", "*.ltdb" );
+                Text *path = dialog->anzeigen( 1 );
+                if( path )
+                {
+                    LTDBDatei dat;
+                    dat.setDatei( path );
+                    dat.leseDaten( 0 );
+                    if( dat.getBildAnzahl() )
+                    {
+                        MultiplChoiceDialog *choice = new MultiplChoiceDialog();
+                        for( auto i = dat.zBildListe()->getIterator(); i; i++ )
+                        {
+                            choice->addChoice( i->getText(), i._ );
+                        }
+                        Text *zBild = (Text*)choice->anzeigen( ( (Variablen *)p )->nSchrift );
+                        if( zBild )
+                        {
+                            Bild *b = dat.laden( 0, zBild->getThis() );
+                            ( (Variablen *)p )->vorschau->setHintergrundBildZ( b );
+                        }
+                        choice->release();
+                    }
+                }
+                dialog->release();
+            } );
+        }
+    }
+    return 1;
+}
+
+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 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;
+}
+
+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;
+}
+
+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 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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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;
+}
+
+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 );
+		}
+	}
+}
+
+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 );
+    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.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öß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 );
+    var.vStyle->setSize( 70, 20 );
+    var.vStyle->setHintergrundFarbe( 0xFF000000 );
+    var.vStyle->setRahmenBreite( 1 );
+    var.vStyle->setRahmenFarbe( 0xFFFFFFFF );
+    var.vStyle->setMaxAuskappHeight( 120 );
+    var.vStyle->setMausRahmenBreite( 1 );
+    var.vStyle->setMausRahmenFarbe( 0xFF005500 );
+    var.vStyle->setMausAlphaFeldFarbe( 0x00008700 );
+    var.vStyle->setMausAlphaFeldStrength( -8 );
+    var.vStyle->setAuswRahmenBreite( 1 );
+    var.vStyle->setAuswRahmenFarbe( 0xFF00FF00 );
+    var.vStyle->setAuswAlphaFeldFarbe( 0x0000FF00 );
+    var.vStyle->setAuswAlphaFeldStrength( -8 );
+    var.vStyle->setStyle( AuswahlBox::Style::Normal );
+    var.vStyle->setSchriftZ( 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 )
+    {
+        switch( neu )
+        {
+        case 0:
+            var.vorschau->setTextRendererZ( new TextRenderer( var.schrift ) );
+            break;
+        case 1:
+            var.vorschau->setTextRendererZ( new GravurTextRenderer( var.schrift ) );
+            break;
+        }
+    } );
+    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.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;
+}

BIN
Schrift Editor 2/gravur.ltds


BIN
Schrift Editor 2/normal.ltds


BIN
data/normal.ltds