Browse Source

Projektdateien hinzufügen.

Kolja Strohm 6 years ago
parent
commit
eb1c32ef1c

BIN
Data/normal.ltds


BIN
Fertig/Data/normal.ltds


BIN
Fertig/x32/Framework.dll


BIN
Fertig/x32/LTDB Konverter.exe


BIN
Fertig/x32/NameAnimation.exe


+ 28 - 0
LTDB Konverter.sln

@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.24720.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LTDB Konverter", "LTDB Konverter\LTDB Konverter.vcxproj", "{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Debug|x64.ActiveCfg = Debug|x64
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Debug|x64.Build.0 = Debug|x64
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Debug|x86.ActiveCfg = Debug|Win32
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Debug|x86.Build.0 = Debug|Win32
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Release|x64.ActiveCfg = Release|x64
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Release|x64.Build.0 = Release|x64
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Release|x86.ActiveCfg = Release|Win32
+		{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

BIN
LTDB Konverter/Framework.dll


+ 137 - 0
LTDB Konverter/Import.h

@@ -0,0 +1,137 @@
+#pragma once
+
+#include <Bild.h>
+#include <Text.h>
+#include <Fenster.h>
+#include <DateiSystem.h>
+#include <Schrift.h>
+#include <Fortschritt.h>
+
+#pragma comment( lib, "gdiplus.lib" )
+
+using namespace Framework;
+
+Bild *ladeBild( Text *zPfad )
+{
+    Text *txt = zPfad->getTeilText( zPfad->positionVon( '.', zPfad->anzahlVon( '.' ) - 1 ) );
+    if( !( txt->istGleich( ".bmp" ) || txt->istGleich( ".jpg" ) || txt->istGleich( ".gif" ) || txt->istGleich( ".png" ) ) )
+    {
+        WMessageBox( 0, new Text( "Error" ), new Text( "Die Angegebene Datei ist keine gueltige Bilddatei!" ), MB_ICONERROR );
+        txt->release();
+        return 0;
+    }
+    txt->release();
+    wchar_t *name = new wchar_t[ zPfad->getLength() + 1 ];
+    for( int i = 0; i < zPfad->getLength(); i++ )
+        name[ i ] = (wchar_t)zPfad->getText()[ i ];
+    name[ zPfad->getLength() ] = '\0';
+
+    Gdiplus::Bitmap bitmap( name );
+    Gdiplus::Color pix;
+    delete[]name;
+
+    Bild *ret = new Bild();
+    ret->neuBild( bitmap.GetWidth(), bitmap.GetHeight(), 0 );
+    int *buff = ret->getBuffer();
+    for( unsigned int i = 0; i < bitmap.GetWidth() * bitmap.GetHeight(); i++ )
+    {
+        bitmap.GetPixel( i % bitmap.GetWidth(), i / bitmap.GetWidth(), &pix );
+        buff[ i ] = pix.GetValue();
+    }
+    return ret;
+}
+
+int countVerzeichnis( Text *pfad )
+{
+    int ret = 0;
+    WIN32_FIND_DATA FData;
+
+    pfad->ersetzen( '/', '\\' );
+    if( pfad->positionVon( '\\', pfad->anzahlVon( '\\' ) - 1 ) != pfad->getLength() - 1 )
+        pfad->append( "\\" );
+    pfad->append( "*" );
+
+    HANDLE hSearch = FindFirstFile( pfad->getText(), &FData );
+
+    pfad->remove( pfad->getLength() - 1 );
+
+    BOOL MoreFiles = FALSE;
+    int cnt_dir = 0, cnt_file = 0;
+
+    if( hSearch == INVALID_HANDLE_VALUE )
+        return 0;
+    do
+    {
+        Text *txt = new Text( FData.cFileName );
+        if( FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
+        {
+            if( !( txt->istGleich( ".." ) || txt->istGleich( "." ) ) )
+            {
+                txt->insert( 0, pfad->getText() );
+                ret += countVerzeichnis( txt->getThis() );
+            }
+        }
+        else
+        {
+            txt->insert( 0, pfad->getText() );
+            Text *end = txt->getTeilText( txt->positionVon( '.', txt->anzahlVon( '.' ) - 1 ) );
+            if( end->istGleich( ".bmp" ) || end->istGleich( ".jpg" ) || end->istGleich( ".gif" ) || end->istGleich( ".png" ) )
+                ret++;
+            end->release();
+        }
+        txt->release();
+        MoreFiles = FindNextFile( hSearch, &FData );
+    } while( MoreFiles );
+
+    FindClose( hSearch );
+    pfad->release();
+    return ret;
+}
+
+void ladeVerzeichnis( Text *pfad, Schrift *zSchrift, LTDBDatei *zDatei, FBalken *fb1, FBalken *fb2 )
+{
+    WIN32_FIND_DATA FData;
+
+    pfad->ersetzen( '/', '\\' );
+    if( pfad->positionVon( '\\', pfad->anzahlVon( '\\' ) - 1 ) != pfad->getLength() - 1 )
+        pfad->append( "\\" );
+    pfad->append( "*" );
+
+    HANDLE hSearch = FindFirstFile( pfad->getText(), &FData );
+
+    pfad->remove( pfad->getLength() - 1 );
+
+    BOOL MoreFiles = FALSE;
+    int cnt_dir = 0, cnt_file = 0;
+
+    if( hSearch == INVALID_HANDLE_VALUE )
+        return;
+    do
+    {
+        Text *txt = new Text( FData.cFileName );
+        if( FData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY )
+        {
+            if( !( txt->istGleich( ".." ) || txt->istGleich( "." ) ) )
+            {
+                txt->insert( 0, pfad->getText() );
+                ladeVerzeichnis( txt->getThis(), zSchrift, zDatei, fb1, fb2 );
+            }
+        }
+        else
+        {
+            txt->insert( 0, pfad->getText() );
+            Text *end = txt->getTeilText( txt->positionVon( '.', txt->anzahlVon( '.' ) - 1 ) );
+            if( end->istGleich( ".bmp" ) || end->istGleich( ".jpg" ) || end->istGleich( ".gif" ) || end->istGleich( ".png" ) )
+            {
+                zDatei->speichern( fb1, ladeBild( txt ), txt->getTeilText( txt->positionVon( '\\', txt->anzahlVon( '\\' ) - 1 ) + 1 ) );
+                fb2->aktionPlus();
+            }
+            end->release();
+        }
+        txt->release();
+        MoreFiles = FindNextFile( hSearch, &FData );
+    } while( MoreFiles );
+
+    FindClose( hSearch );
+    pfad->release();
+}

+ 185 - 0
LTDB Konverter/LTDB Konverter.vcxproj

@@ -0,0 +1,185 @@
+<?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="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1D88E0A2-A8DE-4423-A3A0-6A41D13897DF}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>LTDBKonverter</RootNamespace>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+  </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)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <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|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="Shared">
+  </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 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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <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|x64'">
+    <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>
+  </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>_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>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>Framework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <CustomBuildStep>
+      <Command>copy "..\..\Framework\Release\Framework.dll" "..\Fertig\x32\Framework.dll"
+copy "..\Release\LTDB Konverter.exe" "..\Fertig\x32\LTDB Konverter.exe"</Command>
+    </CustomBuildStep>
+    <CustomBuildStep>
+      <Outputs>kopieren...;%(Outputs)</Outputs>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>Framework.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <CustomBuildStep>
+      <Command>copy "..\..\Framework\x64\Release\Framework.dll" "..\Fertig\x64\Framework.dll"
+copy "..\x64\Release\LTDB Konverter.exe" "..\Fertig\x64\LTDB Konverter.exe"</Command>
+    </CustomBuildStep>
+    <CustomBuildStep>
+      <Outputs>kopieren...;%(Outputs)</Outputs>
+    </CustomBuildStep>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="main.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Import.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 27 - 0
LTDB Konverter/LTDB Konverter.vcxproj.filters

@@ -0,0 +1,27 @@
+<?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="main.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Import.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>

BIN
LTDB Konverter/bild.ltdb


BIN
LTDB Konverter/bilder.ltdb


+ 940 - 0
LTDB Konverter/main.cpp

@@ -0,0 +1,940 @@
+
+#include <Windows.h>
+#include <GdiPlus.h>
+#include <main.h>
+#include <Prozess.h>
+#include <Bildschirm.h>
+#include <MausEreignis.h>
+#include <TastaturEreignis.h>
+#include <sstream>
+#include <Punkt.h>
+#include <Knopf.h>
+#include <TextFeld.h>
+#include <Liste.h>
+#include <AlphaFeld.h>
+#include <Rahmen.h>
+#include <Scroll.h>
+#include <Fortschritt.h>
+#include <Datei.h>
+#include <Zeit.h>
+#include <Globals.h>
+
+#include "Import.h"
+
+using namespace Framework;
+
+bool Exit = 0;
+
+WFenster *fenster;
+
+Knopf *_beenden;
+TextFeld *_pfad;
+Knopf *_laden;
+LTDBDatei *_datei;
+AuswahlListe *_bilder;
+TextFeld *_import_Pfad;
+Knopf *_import;
+Knopf *_remove;
+Knopf *_von_Unten;
+FBalken *_fZwischenSchritt;
+FBalken *_fGesamtSchritt;
+TextFeld *_fZText;
+TextFeld *_fGText;
+BildZ *_vorschau;
+
+TextFeld *_pfad2;
+Knopf *_laden2;
+LTDBDatei *_datei2;
+AuswahlListe *_bilder2;
+TextFeld *_import_Pfad2;
+Knopf *_import2;
+Knopf *_remove2;
+Knopf *_von_Oben;
+FBalken *_fZwischenSchritt2;
+FBalken *_fGesamtSchritt2;
+TextFeld *_fZText2;
+TextFeld *_fGText2;
+BildZ *_vorschau2;
+
+Schrift *schriftNormal;
+
+void HFNSchließen( void *, void *fenster )
+{
+    PostQuitMessage( 0 );
+}
+
+bool HFMausEvent( void *p, void *fenster, MausEreignis me )
+{
+    return 1;
+}
+
+bool HFTastaturEvent( void *p, void *fenster, TastaturEreignis te )
+{
+    return 1;
+}
+
+bool _beendenME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+        PostQuitMessage( 0 );
+    return 1;
+}
+
+bool _pfadTE( void *p, void *obj, TastaturEreignis te )
+{
+    if( te.id == TE_Release && te.taste == T_Enter )
+    {
+        MausEreignis me;
+        me.id = ME_RLinks;
+        me.mx = _laden->getX();
+        me.my = _laden->getY();
+        me.verarbeitet = 0;
+        _laden->doMausEreignis( me );
+    }
+    return 1;
+}
+
+bool _ladenME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        if( !_pfad->zText()->hat( ".ltdb" ) )
+            _pfad->zText()->append( ".ltdb" );
+        _datei->setDatei( _pfad->getText() );
+        if( !DateiExistiert( _pfad->getText() ) )
+            _datei->erstellen();
+        _datei->leseDaten( _fGesamtSchritt );
+        int im = _bilder->getEintragAnzahl();
+        _bilder->lockZeichnung();
+        for( int i = 0; i < im; i++ )
+            _bilder->removeEintrag( im - 1 - i );
+        RCArray< Text > *bl = _datei->zBildListe();
+        im = _datei->getBildAnzahl();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder->addEintrag( bl->z( i )->getText() );
+            _bilder->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder->unlockZeichnung();
+        _fGesamtSchritt->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _bilderME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        int ausw = _bilder->getAuswahl();
+        int ausw2 = _bilder->getKlickEintrag( me.my );
+        if( ausw == ausw2 && ausw >= 0 )
+        {
+            Bild *bild = _datei->laden( _fGesamtSchritt, _bilder->zEintrag( ausw )->getText() );
+            _vorschau->lockZeichnung();
+            _vorschau->setBildZ( bild );
+            _vorschau->unlockZeichnung();
+        }
+        _fGesamtSchritt->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _import_PfadTE( void *p, void *obj, TastaturEreignis te )
+{
+    if( te.id == TE_Release && te.taste == T_Enter )
+    {
+        MausEreignis me;
+        me.id = ME_RLinks;
+        me.mx = _import->getX();
+        me.my = _import->getY();
+        me.verarbeitet = 0;
+        _import->doMausEreignis( me );
+    }
+    return 1;
+}
+
+bool _importME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        if( !_datei->zBildListe() )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es ist keine Datei geoeffnet!" ), MB_ICONERROR );
+            return 1;
+        }
+        Text * pf = _import_Pfad->zText();
+        if( !DateiExistiert( pf->getThis() ) )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Unter dem angegebenen Pfad wurde nichts gefunden!" ), MB_ICONERROR );
+            return 1;
+        }
+        _bilder->lockZeichnung();
+        int im = _bilder->getEintragAnzahl();
+        for( int i = 0; i < im; i++ )
+            _bilder->removeEintrag( im - 1 - i );
+        _bilder->unlockZeichnung();
+        if( !DateiIstVerzeichnis( pf->getThis() ) )
+        {
+            pf->ersetzen( '/', '\\' );
+            Text *name = pf->getTeilText( pf->positionVon( '\\', pf->anzahlVon( '\\' ) - 1 ) + 1 );
+            _datei->speichern( _fGesamtSchritt, ladeBild( pf ), name );
+        }
+        else
+        {
+            _fGesamtSchritt->reset();
+            _fGesamtSchritt->setAktionAnzahl( countVerzeichnis( pf->getThis() ) );
+            ladeVerzeichnis( pf->getThis(), schriftNormal, _datei, _fZwischenSchritt, _fGesamtSchritt );
+        }
+        RCArray< Text > *bl = _datei->zBildListe();
+        im = _datei->getBildAnzahl();
+        _bilder->lockZeichnung();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder->addEintrag( bl->z( i )->getText() );
+            _bilder->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder->unlockZeichnung();
+        _fZwischenSchritt->reset();
+        _fGesamtSchritt->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _removeME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        int ausw = _bilder->getAuswahl();
+        if( ausw < 0 || ausw > _bilder->getEintragAnzahl() )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es is kein Bild ausgewaehlt!" ), MB_ICONERROR );
+            return 1;
+        }
+        _datei->remove( _fGesamtSchritt, _bilder->zEintrag( ausw )->getText() );
+        _bilder->lockZeichnung();
+        int im = _bilder->getEintragAnzahl();
+        for( int i = 0; i < im; i++ )
+            _bilder->removeEintrag( im - i - 1 );
+        RCArray< Text > *bl = _datei->zBildListe();
+        im = _datei->getBildAnzahl();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder->addEintrag( bl->z( i )->getText() );
+            _bilder->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder->unlockZeichnung();
+        _fGesamtSchritt->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _von_UntenME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        if( !DateiExistiert( _datei->getPfad() ) || !DateiExistiert( _datei2->getPfad() ) )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es ist keine Datei geoeffnet!" ), MB_ICONERROR );
+            return 1;
+        }
+        int ausw = _bilder2->getAuswahl();
+        if( ausw < 0 || ausw > _bilder2->getEintragAnzahl() )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es is kein Bild ausgewaehlt!" ), MB_ICONERROR );
+            return 1;
+        }
+        Bild *bild = _datei2->laden( _fZwischenSchritt, _bilder2->zEintrag( ausw )->getText() );
+        _datei->speichern( _fGesamtSchritt, bild, _bilder2->zEintrag( ausw )->getText() );
+        _bilder->lockZeichnung();
+        int im = _bilder->getEintragAnzahl();
+        for( int i = 0; i < im; i++ )
+            _bilder->removeEintrag( im - i - 1 );
+        RCArray< Text > *bl = _datei->zBildListe();
+        im = _datei->getBildAnzahl();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder->addEintrag( bl->z( i )->getText() );
+            _bilder->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder->unlockZeichnung();
+        _fZwischenSchritt->reset();
+        _fGesamtSchritt->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _pfad2TE( void *p, void *obj, TastaturEreignis te )
+{
+    if( te.id == TE_Release && te.taste == T_Enter )
+    {
+        MausEreignis me;
+        me.id = ME_RLinks;
+        me.mx = _laden2->getX();
+        me.my = _laden2->getY();
+        me.verarbeitet = 0;
+        _laden2->doMausEreignis( me );
+    }
+    return 1;
+}
+
+bool _laden2ME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        if( !_pfad2->zText()->hat( ".ltdb" ) )
+            _pfad2->zText()->append( ".ltdb" );
+        _datei2->setDatei( _pfad2->getText() );
+        if( !DateiExistiert( _pfad2->getText() ) )
+            _datei2->erstellen();
+        _datei2->leseDaten( _fGesamtSchritt2 );
+        int im = _bilder2->getEintragAnzahl();
+        _bilder2->lockZeichnung();
+        for( int i = 0; i < im; i++ )
+            _bilder2->removeEintrag( im - 1 - i );
+        RCArray< Text > *bl = _datei2->zBildListe();
+        im = _datei2->getBildAnzahl();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder2->addEintrag( bl->z( i )->getText() );
+            _bilder2->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder2->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder2->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder2->unlockZeichnung();
+        _fGesamtSchritt2->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _bilder2ME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        int ausw = _bilder2->getAuswahl();
+        int ausw2 = _bilder2->getKlickEintrag( me.my );
+        if( ausw == ausw2 && ausw >= 0 )
+        {
+            Bild *bild = _datei2->laden( _fGesamtSchritt2, _bilder2->zEintrag( ausw )->getText() );
+            _vorschau2->lockZeichnung();
+            _vorschau2->setBildZ( bild );
+            _vorschau2->unlockZeichnung();
+        }
+        _fGesamtSchritt2->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _import_Pfad2TE( void *p, void *obj, TastaturEreignis te )
+{
+    if( te.id == TE_Release && te.taste == T_Enter )
+    {
+        MausEreignis me;
+        me.id = ME_RLinks;
+        me.mx = _import2->getX();
+        me.my = _import2->getY();
+        me.verarbeitet = 0;
+        _import2->doMausEreignis( me );
+    }
+    return 1;
+}
+
+bool _import2ME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        if( !_datei2->zBildListe() )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es ist keine Datei geoeffnet!" ), MB_ICONERROR );
+            return 1;
+        }
+        Text * pf = _import_Pfad2->zText();
+        if( !DateiExistiert( pf->getThis() ) )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Unter dem angegebenen Pfad wurde nichts gefunden!" ), MB_ICONERROR );
+            return 1;
+        }
+        _bilder2->lockZeichnung();
+        int im = _bilder2->getEintragAnzahl();
+        for( int i = 0; i < im; i++ )
+            _bilder2->removeEintrag( im - 1 - i );
+        _bilder2->unlockZeichnung();
+        if( !DateiIstVerzeichnis( pf->getThis() ) )
+        {
+            pf->ersetzen( '/', '\\' );
+            Text *name = pf->getTeilText( pf->positionVon( '\\', pf->anzahlVon( '\\' ) - 1 ) + 1 );
+            _datei2->speichern( _fGesamtSchritt2, ladeBild( pf ), name );
+        }
+        else
+        {
+            _fGesamtSchritt2->reset();
+            _fGesamtSchritt2->setAktionAnzahl( countVerzeichnis( pf->getThis() ) );
+            ladeVerzeichnis( pf->getThis(), schriftNormal, _datei2, _fZwischenSchritt2, _fGesamtSchritt2 );
+        }
+        RCArray< Text > *bl = _datei2->zBildListe();
+        im = _datei2->getBildAnzahl();
+        _bilder2->lockZeichnung();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder2->addEintrag( bl->z( i )->getText() );
+            _bilder2->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder2->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder2->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder2->unlockZeichnung();
+        _fZwischenSchritt2->reset();
+        _fGesamtSchritt2->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _remove2ME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        int ausw = _bilder2->getAuswahl();
+        if( ausw < 0 || ausw > _bilder2->getEintragAnzahl() )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es is kein Bild ausgewaehlt!" ), MB_ICONERROR );
+            return 1;
+        }
+        _datei2->remove( _fGesamtSchritt2, _bilder2->zEintrag( ausw )->getText() );
+        _bilder2->lockZeichnung();
+        int im = _bilder2->getEintragAnzahl();
+        for( int i = 0; i < im; i++ )
+            _bilder2->removeEintrag( im - i - 1 );
+        RCArray< Text > *bl = _datei2->zBildListe();
+        im = _datei2->getBildAnzahl();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder2->addEintrag( bl->z( i )->getText() );
+            _bilder2->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder2->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder2->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder2->unlockZeichnung();
+        _fGesamtSchritt2->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+bool _von_ObenME( void *p, void *obj, MausEreignis me )
+{
+    if( me.id == ME_RLinks )
+    {
+        fenster->zBildschirm()->unlock();
+        if( !DateiExistiert( _datei->getPfad() ) || !DateiExistiert( _datei2->getPfad() ) )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es ist keine Datei geoeffnet!" ), MB_ICONERROR );
+            return 1;
+        }
+        int ausw = _bilder->getAuswahl();
+        if( ausw < 0 || ausw > _bilder->getEintragAnzahl() )
+        {
+            WMessageBox( 0, new Text( "Error" ), new Text( "Es is kein Bild ausgewaehlt!" ), MB_ICONERROR );
+            return 1;
+        }
+        Bild *bild = _datei->laden( _fZwischenSchritt2, _bilder->zEintrag( ausw )->getText() );
+        _datei2->speichern( _fGesamtSchritt2, bild, _bilder->zEintrag( ausw )->getText() );
+        _bilder2->lockZeichnung();
+        int im = _bilder2->getEintragAnzahl();
+        for( int i = 0; i < im; i++ )
+            _bilder2->removeEintrag( im - i - 1 );
+        RCArray< Text > *bl = _datei2->zBildListe();
+        im = _datei2->getBildAnzahl();
+        for( int i = 0; i < im; i++ )
+        {
+            _bilder2->addEintrag( bl->z( i )->getText() );
+            _bilder2->zEintrag( i )->setSchriftZ( schriftNormal->getThis() );
+            _bilder2->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
+            _bilder2->zEintrag( i )->setSize( 0, 20 );
+        }
+        _bilder2->unlockZeichnung();
+        _fZwischenSchritt2->reset();
+        _fGesamtSchritt2->reset();
+        fenster->zBildschirm()->lock();
+    }
+    return 1;
+}
+
+DWORD WINAPI runThread( LPVOID args )
+{
+    Bildschirm *screen = (Bildschirm *)args;
+    ZeitMesser time;
+    while( !Exit )
+    {
+        double tv = time.getSekunden();
+        time.messungStart();
+        screen->tick( tv );
+        screen->render();
+        if( tv < 1.0 / 30.0 )
+            Sleep( (int)( ( 1.0 / 30.0 - tv ) * 1000 ) );
+        time.messungEnde();
+    }
+    return 0;
+}
+
+int KSGStart Framework::Start( Startparam p )
+{
+    Gdiplus::GdiplusStartupInput gdiplusStartupInput;
+    ULONG_PTR gdiplusToken;
+    Gdiplus::GdiplusStartup( &gdiplusToken, &gdiplusStartupInput, 0 );
+
+    WNDCLASS wc = F_Normal( p.hinst );
+    wc.lpszClassName = "LTDB Konverter - LENCK TECH";
+    WFenster *HauptFenster = new WFenster();
+    fenster = HauptFenster;
+    HauptFenster->setVerschiebbar( 1 );
+    HauptFenster->erstellen( WS_POPUP, wc );
+    HauptFenster->setAnzeigeModus( p.show );
+    HauptFenster->setMausAktion( HFMausEvent );
+    HauptFenster->setNSchließAktion( HFNSchließen );
+    HauptFenster->setTastaturAktion( HFTastaturEvent );
+    HauptFenster->setSize( 700, 700 );
+    HauptFenster->setPosition( Bildschirmmitte( HauptFenster->getThis() ) );
+
+    Bildschirm *HFscreen = new Bildschirm3D( HauptFenster->getThis() );
+    HauptFenster->setBildschirm( HFscreen->getThis() );
+    HFscreen->update();
+    HFscreen->render();
+
+    LTDSDatei *schriftDatei = new LTDSDatei();
+    schriftDatei->setPfad( new Text( "../Data/normal.ltds" ) );
+    schriftDatei->leseDaten();
+    schriftNormal = schriftDatei->ladeSchrift();
+    schriftDatei->release();
+
+    _datei = new LTDBDatei();
+
+    _beenden = new Knopf();
+    _beenden->setSchriftZ( schriftNormal->getThis() );
+    _beenden->setText( "Programm beenden" );
+    _beenden->setSchriftFarbe( 0xFFFFFFFF );
+    _beenden->setSchriftSize( 12 );
+    _beenden->setLinienRahmenBreite( 2 );
+    _beenden->setLinienRahmenFarbe( 0xFF00FF00 );
+    _beenden->setAlphaFeldFarbe( 0x5500FF00 );
+    _beenden->setAlphaFeldStrength( -5 );
+    _beenden->setKBFarbe( 0xFF000000 );
+    _beenden->setKBStrength( 20 );
+    _beenden->setMausEreignis( _beendenME );
+    _beenden->setTastaturEreignis( 0 );
+    _beenden->setSize( 130, 30 );
+    _beenden->setPosition( 10, 10 );
+    _beenden->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _beenden );
+
+    _pfad = new TextFeld();
+    _pfad->setSchriftZ( schriftNormal->getThis() );
+    _pfad->setText( "Dateipfad" );
+    _pfad->setSchriftFarbe( 0xFFFFFFFF );
+    _pfad->setSchriftSize( 12 );
+    _pfad->setAlphaFeldFarbe( 0x5500FF00 );
+    _pfad->setAlphaFeldStrength( -5 );
+    _pfad->setLinienRahmenBreite( 1 );
+    _pfad->setLinienRahmenFarbe( 0xFF00FF00 );
+    _pfad->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::Center | TextFeld::Style::Erlaubt );
+    _pfad->setSize( 400, 20 );
+    _pfad->setPosition( 150, 15 );
+    _pfad->setTastaturEreignis( _pfadTE );
+    HFscreen->addMember( _pfad );
+
+    _laden = new Knopf();
+    _laden->setSchriftZ( schriftNormal->getThis() );
+    _laden->setText( "Datei laden" );
+    _laden->setSchriftFarbe( 0xFFFFFFFF );
+    _laden->setSchriftSize( 12 );
+    _laden->setLinienRahmenBreite( 2 );
+    _laden->setLinienRahmenFarbe( 0xFF00FF00 );
+    _laden->setAlphaFeldFarbe( 0x5500FF00 );
+    _laden->setAlphaFeldStrength( -5 );
+    _laden->setKBFarbe( 0xFF000000 );
+    _laden->setKBStrength( 20 );
+    _laden->setMausEreignis( _ladenME );
+    _laden->setTastaturEreignis( 0 );
+    _laden->setSize( 130, 30 );
+    _laden->setPosition( 560, 10 );
+    _laden->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _laden );
+
+    _bilder = new AuswahlListe();
+    _bilder->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::Erlaubt | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
+    _bilder->setAAFZ( new AlphaFeld() );
+    _bilder->zABuffer()->setFarbe( 0x7500FF00 );
+    _bilder->zABuffer()->setStrength( 8 );
+    _bilder->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _bilder->setLinienRahmenBreite( 2 );
+    _bilder->setALRZ( new LRahmen() );
+    _bilder->zARahmen()->setFarbe( 0xFF00FF00 );
+    _bilder->setPosition( 10, 50 );
+    _bilder->setSize( 120, 290 );
+    _bilder->setVertikalKlickScroll( 5 );
+    _bilder->setMausEreignis( _bilderME );
+    _bilder->update();
+    HFscreen->addMember( _bilder );
+
+    _import_Pfad = new TextFeld();
+    _import_Pfad->setSchriftZ( schriftNormal->getThis() );
+    _import_Pfad->setText( "Import Pfad" );
+    _import_Pfad->setSchriftFarbe( 0xFFFFFFFF );
+    _import_Pfad->setSchriftSize( 12 );
+    _import_Pfad->setAlphaFeldFarbe( 0x5500FF00 );
+    _import_Pfad->setAlphaFeldStrength( -5 );
+    _import_Pfad->setLinienRahmenBreite( 1 );
+    _import_Pfad->setLinienRahmenFarbe( 0xFF00FF00 );
+    _import_Pfad->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::Center | TextFeld::Style::Erlaubt );
+    _import_Pfad->setSize( 200, 20 );
+    _import_Pfad->setPosition( 140, 60 );
+    _import_Pfad->setTastaturEreignis( _import_PfadTE );
+    HFscreen->addMember( _import_Pfad );
+
+    _import = new Knopf();
+    _import->setSchriftZ( schriftNormal->getThis() );
+    _import->setText( "Importieren" );
+    _import->setSchriftFarbe( 0xFFFFFFFF );
+    _import->setSchriftSize( 12 );
+    _import->setLinienRahmenBreite( 2 );
+    _import->setLinienRahmenFarbe( 0xFF00FF00 );
+    _import->setAlphaFeldFarbe( 0x5500FF00 );
+    _import->setAlphaFeldStrength( -5 );
+    _import->setKBFarbe( 0xFF000000 );
+    _import->setKBStrength( 20 );
+    _import->setMausEreignis( _importME );
+    _import->setTastaturEreignis( 0 );
+    _import->setSize( 130, 30 );
+    _import->setPosition( 175, 90 );
+    _import->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _import );
+
+    _remove = new Knopf();
+    _remove->setSchriftZ( schriftNormal->getThis() );
+    _remove->setText( "Löschen" );
+    _remove->setSchriftFarbe( 0xFFFFFFFF );
+    _remove->setSchriftSize( 12 );
+    _remove->setLinienRahmenBreite( 2 );
+    _remove->setLinienRahmenFarbe( 0xFF00FF00 );
+    _remove->setAlphaFeldFarbe( 0x5500FF00 );
+    _remove->setAlphaFeldStrength( -5 );
+    _remove->setKBFarbe( 0xFF000000 );
+    _remove->setKBStrength( 20 );
+    _remove->setMausEreignis( _removeME );
+    _remove->setTastaturEreignis( 0 );
+    _remove->setSize( 130, 30 );
+    _remove->setPosition( 175, 130 );
+    _remove->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _remove );
+
+    _von_Unten = new Knopf();
+    _von_Unten->setSchriftZ( schriftNormal->getThis() );
+    _von_Unten->setText( "von Unten" );
+    _von_Unten->setSchriftFarbe( 0xFFFFFFFF );
+    _von_Unten->setSchriftSize( 12 );
+    _von_Unten->setLinienRahmenBreite( 2 );
+    _von_Unten->setLinienRahmenFarbe( 0xFF00FF00 );
+    _von_Unten->setAlphaFeldFarbe( 0x5500FF00 );
+    _von_Unten->setAlphaFeldStrength( -5 );
+    _von_Unten->setKBFarbe( 0xFF000000 );
+    _von_Unten->setKBStrength( 20 );
+    _von_Unten->setMausEreignis( _von_UntenME );
+    _von_Unten->setTastaturEreignis( 0 );
+    _von_Unten->setSize( 130, 30 );
+    _von_Unten->setPosition( 175, 170 );
+    _von_Unten->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _von_Unten );
+
+    _fZText = new TextFeld();
+    _fZText->setStyle( TextFeld::Style::Sichtbar );
+    _fZText->setText( "Zwischenfortschritt:" );
+    _fZText->setSchriftZ( schriftNormal->getThis() );
+    _fZText->setSchriftFarbe( 0xFFFFFFFF );
+    _fZText->setSize( 200, 15 );
+    _fZText->setPosition( 140, 245 );
+    HFscreen->addMember( _fZText );
+
+    _fZwischenSchritt = new FBalken();
+    _fZwischenSchritt->setStyle( FBalken::Style::Sichtbar | FBalken::Style::Prozent | FBalken::Style::Rahmen | FBalken::Style::Hintergrund | FBalken::Style::FFarbe | FBalken::Style::L_R );
+    _fZwischenSchritt->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _fZwischenSchritt->setHintergrundFarbe( 0xFF005000 );
+    _fZwischenSchritt->setFBgFarbe( 0xFF00FF00 );
+    _fZwischenSchritt->setAktionAnzahl( 100 );
+    _fZwischenSchritt->setSchriftZ( schriftNormal->getThis() );
+    _fZwischenSchritt->setSFarbe( 0xFFFFFFFF );
+    _fZwischenSchritt->setSSize( 12 );
+    _fZwischenSchritt->setSize( 200, 20 );
+    _fZwischenSchritt->setPosition( 140, 260 );
+    HFscreen->addMember( _fZwischenSchritt );
+
+    _fGText = new TextFeld();
+    _fGText->setStyle( TextFeld::Style::Sichtbar );
+    _fGText->setText( "Gesamtfortschritt:" );
+    _fGText->setSchriftZ( schriftNormal->getThis() );
+    _fGText->setSchriftFarbe( 0xFFFFFFFF );
+    _fGText->setSize( 200, 15 );
+    _fGText->setPosition( 140, 295 );
+    HFscreen->addMember( _fGText );
+
+    _fGesamtSchritt = new FBalken();
+    _fGesamtSchritt->setStyle( FBalken::Style::Sichtbar | FBalken::Style::Prozent | FBalken::Style::Rahmen | FBalken::Style::Hintergrund | FBalken::Style::FFarbe | FBalken::Style::L_R );
+    _fGesamtSchritt->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _fGesamtSchritt->setHintergrundFarbe( 0xFF005000 );
+    _fGesamtSchritt->setFBgFarbe( 0xFF00FF00 );
+    _fGesamtSchritt->setAktionAnzahl( 100 );
+    _fGesamtSchritt->setSchriftZ( schriftNormal->getThis() );
+    _fGesamtSchritt->setSFarbe( 0xFFFFFFFF );
+    _fGesamtSchritt->setSSize( 12 );
+    _fGesamtSchritt->setSize( 200, 20 );
+    _fGesamtSchritt->setPosition( 140, 310 );
+    HFscreen->addMember( _fGesamtSchritt );
+
+    _vorschau = new BildZ();
+    _vorschau->setStyle( BildZ::Style::normal | BildZ::Style::Alpha );
+    _vorschau->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _vorschau->setLinienRahmenBreite( 2 );
+    _vorschau->setSize( 340, 290 );
+    _vorschau->setPosition( 350, 50 );
+    _vorschau->setMausEreignis( _ret1ME );
+    HFscreen->addMember( _vorschau );
+
+    _datei2 = new LTDBDatei();
+
+    _pfad2 = new TextFeld();
+    _pfad2->setSchriftZ( schriftNormal->getThis() );
+    _pfad2->setText( "Dateipfad" );
+    _pfad2->setSchriftFarbe( 0xFFFFFFFF );
+    _pfad2->setSchriftSize( 12 );
+    _pfad2->setAlphaFeldFarbe( 0x5500FF00 );
+    _pfad2->setAlphaFeldStrength( -5 );
+    _pfad2->setLinienRahmenBreite( 1 );
+    _pfad2->setLinienRahmenFarbe( 0xFF00FF00 );
+    _pfad2->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::Center | TextFeld::Style::Erlaubt );
+    _pfad2->setSize( 540, 20 );
+    _pfad2->setPosition( 10, 355 );
+    _pfad2->setTastaturEreignis( _pfad2TE );
+    HFscreen->addMember( _pfad2 );
+
+    _laden2 = new Knopf();
+    _laden2->setSchriftZ( schriftNormal->getThis() );
+    _laden2->setText( "Datei laden" );
+    _laden2->setSchriftFarbe( 0xFFFFFFFF );
+    _laden2->setSchriftSize( 12 );
+    _laden2->setLinienRahmenBreite( 2 );
+    _laden2->setLinienRahmenFarbe( 0xFF00FF00 );
+    _laden2->setAlphaFeldFarbe( 0x5500FF00 );
+    _laden2->setAlphaFeldStrength( -5 );
+    _laden2->setKBFarbe( 0xFF000000 );
+    _laden2->setKBStrength( 20 );
+    _laden2->setMausEreignis( _laden2ME );
+    _laden2->setTastaturEreignis( 0 );
+    _laden2->setSize( 130, 30 );
+    _laden2->setPosition( 560, 350 );
+    _laden2->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _laden2 );
+
+    _bilder2 = new AuswahlListe();
+    _bilder2->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::Erlaubt | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
+    _bilder2->setAAFZ( new AlphaFeld() );
+    _bilder2->zABuffer()->setFarbe( 0x7500FF00 );
+    _bilder2->zABuffer()->setStrength( 8 );
+    _bilder2->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _bilder2->setLinienRahmenBreite( 2 );
+    _bilder2->setALRZ( new LRahmen() );
+    _bilder2->zARahmen()->setFarbe( 0xFF00FF00 );
+    _bilder2->setSize( 120, 300 );
+    _bilder2->setPosition( 10, 390 );
+    _bilder2->setVertikalKlickScroll( 5 );
+    _bilder2->setMausEreignis( _bilder2ME );
+    _bilder2->update();
+    HFscreen->addMember( _bilder2 );
+
+    _import_Pfad2 = new TextFeld();
+    _import_Pfad2->setSchriftZ( schriftNormal->getThis() );
+    _import_Pfad2->setText( "Import Pfad" );
+    _import_Pfad2->setSchriftFarbe( 0xFFFFFFFF );
+    _import_Pfad2->setSchriftSize( 12 );
+    _import_Pfad2->setAlphaFeldFarbe( 0x5500FF00 );
+    _import_Pfad2->setAlphaFeldStrength( -5 );
+    _import_Pfad2->setLinienRahmenBreite( 1 );
+    _import_Pfad2->setLinienRahmenFarbe( 0xFF00FF00 );
+    _import_Pfad2->setStyle( TextFeld::Style::Sichtbar | TextFeld::Style::Rahmen | TextFeld::Style::Buffered | TextFeld::Style::Center | TextFeld::Style::Erlaubt );
+    _import_Pfad2->setSize( 200, 20 );
+    _import_Pfad2->setPosition( 140, 400 );
+    _import_Pfad2->setTastaturEreignis( _import_Pfad2TE );
+    HFscreen->addMember( _import_Pfad2 );
+
+    _import2 = new Knopf();
+    _import2->setSchriftZ( schriftNormal->getThis() );
+    _import2->setText( "Importieren" );
+    _import2->setSchriftFarbe( 0xFFFFFFFF );
+    _import2->setSchriftSize( 12 );
+    _import2->setLinienRahmenBreite( 2 );
+    _import2->setLinienRahmenFarbe( 0xFF00FF00 );
+    _import2->setAlphaFeldFarbe( 0x5500FF00 );
+    _import2->setAlphaFeldStrength( -5 );
+    _import2->setKBFarbe( 0xFF000000 );
+    _import2->setKBStrength( 20 );
+    _import2->setMausEreignis( _import2ME );
+    _import2->setTastaturEreignis( 0 );
+    _import2->setSize( 130, 30 );
+    _import2->setPosition( 175, 430 );
+    _import2->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _import2 );
+
+    _remove2 = new Knopf();
+    _remove2->setSchriftZ( schriftNormal->getThis() );
+    _remove2->setText( "Löschen" );
+    _remove2->setSchriftFarbe( 0xFFFFFFFF );
+    _remove2->setSchriftSize( 12 );
+    _remove2->setLinienRahmenBreite( 2 );
+    _remove2->setLinienRahmenFarbe( 0xFF00FF00 );
+    _remove2->setAlphaFeldFarbe( 0x5500FF00 );
+    _remove2->setAlphaFeldStrength( -5 );
+    _remove2->setKBFarbe( 0xFF000000 );
+    _remove2->setKBStrength( 20 );
+    _remove2->setMausEreignis( _remove2ME );
+    _remove2->setTastaturEreignis( 0 );
+    _remove2->setSize( 130, 30 );
+    _remove2->setPosition( 175, 470 );
+    _remove2->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _remove2 );
+
+    _von_Oben = new Knopf();
+    _von_Oben->setSchriftZ( schriftNormal->getThis() );
+    _von_Oben->setText( "von Oben" );
+    _von_Oben->setSchriftFarbe( 0xFFFFFFFF );
+    _von_Oben->setSchriftSize( 12 );
+    _von_Oben->setLinienRahmenBreite( 2 );
+    _von_Oben->setLinienRahmenFarbe( 0xFF00FF00 );
+    _von_Oben->setAlphaFeldFarbe( 0x5500FF00 );
+    _von_Oben->setAlphaFeldStrength( -5 );
+    _von_Oben->setKBFarbe( 0xFF000000 );
+    _von_Oben->setKBStrength( 20 );
+    _von_Oben->setMausEreignis( _von_ObenME );
+    _von_Oben->setTastaturEreignis( 0 );
+    _von_Oben->setSize( 130, 30 );
+    _von_Oben->setPosition( 175, 510 );
+    _von_Oben->setStyle( Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Buffered | Knopf::Style::KlickBuffer | Knopf::Style::Rahmen );
+    HFscreen->addMember( _von_Oben );
+
+    _fZText2 = new TextFeld();
+    _fZText2->setStyle( TextFeld::Style::Sichtbar );
+    _fZText2->setText( "Zwischenfortschritt:" );
+    _fZText2->setSchriftZ( schriftNormal->getThis() );
+    _fZText2->setSchriftFarbe( 0xFFFFFFFF );
+    _fZText2->setSize( 200, 15 );
+    _fZText2->setPosition( 140, 585 );
+    HFscreen->addMember( _fZText2 );
+
+    _fZwischenSchritt2 = new FBalken();
+    _fZwischenSchritt2->setStyle( FBalken::Style::Sichtbar | FBalken::Style::Prozent | FBalken::Style::Rahmen | FBalken::Style::Hintergrund | FBalken::Style::FFarbe | FBalken::Style::L_R );
+    _fZwischenSchritt2->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _fZwischenSchritt2->setHintergrundFarbe( 0xFF005000 );
+    _fZwischenSchritt2->setFBgFarbe( 0xFF00FF00 );
+    _fZwischenSchritt2->setAktionAnzahl( 100 );
+    _fZwischenSchritt2->setSchriftZ( schriftNormal->getThis() );
+    _fZwischenSchritt2->setSFarbe( 0xFFFFFFFF );
+    _fZwischenSchritt2->setSSize( 12 );
+    _fZwischenSchritt2->setSize( 200, 20 );
+    _fZwischenSchritt2->setPosition( 140, 600 );
+    HFscreen->addMember( _fZwischenSchritt2 );
+
+    _fGText2 = new TextFeld();
+    _fGText2->setStyle( TextFeld::Style::Sichtbar );
+    _fGText2->setText( "Gesamtfortschritt:" );
+    _fGText2->setSchriftZ( schriftNormal->getThis() );
+    _fGText2->setSchriftFarbe( 0xFFFFFFFF );
+    _fGText2->setSize( 200, 15 );
+    _fGText2->setPosition( 140, 645 );
+    HFscreen->addMember( _fGText2 );
+
+    _fGesamtSchritt2 = new FBalken();
+    _fGesamtSchritt2->setStyle( FBalken::Style::Sichtbar | FBalken::Style::Prozent | FBalken::Style::Rahmen | FBalken::Style::Hintergrund | FBalken::Style::FFarbe | FBalken::Style::L_R );
+    _fGesamtSchritt2->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _fGesamtSchritt2->setHintergrundFarbe( 0xFF005000 );
+    _fGesamtSchritt2->setFBgFarbe( 0xFF00FF00 );
+    _fGesamtSchritt2->setAktionAnzahl( 100 );
+    _fGesamtSchritt2->setSchriftZ( schriftNormal->getThis() );
+    _fGesamtSchritt2->setSFarbe( 0xFFFFFFFF );
+    _fGesamtSchritt2->setSSize( 12 );
+    _fGesamtSchritt2->setSize( 200, 20 );
+    _fGesamtSchritt2->setPosition( 140, 660 );
+    HFscreen->addMember( _fGesamtSchritt2 );
+
+    _vorschau2 = new BildZ();
+    _vorschau2->setStyle( BildZ::Style::normal | BildZ::Style::Alpha );
+    _vorschau2->setLinienRahmenFarbe( 0xFFFFFFFF );
+    _vorschau2->setLinienRahmenBreite( 2 );
+    _vorschau2->setSize( 340, 300 );
+    _vorschau2->setPosition( 350, 390 );
+    _vorschau2->setMausEreignis( _ret1ME );
+    HFscreen->addMember( _vorschau2 );
+
+    DWORD threadId;
+    HANDLE tHandle = CreateThread( 0, 0, runThread, HFscreen, 0, &threadId );
+
+    Framework::StartNachrichtenSchleife();
+
+    Exit = 1;
+    WaitForSingleObject( tHandle, INFINITE );
+
+    _beenden->release();
+    _pfad->release();
+    _laden->release();
+    _bilder->release();
+    _import_Pfad->release();
+    _import->release();
+    _von_Unten->release();
+    _remove->release();
+    _fZwischenSchritt->release();
+    _fGesamtSchritt->release();
+    _fZText->release();
+    _fGText->release();
+    _vorschau->release();
+    _datei->release();
+
+    _pfad2->release();
+    _laden2->release();
+    _bilder2->release();
+    _import_Pfad2->release();
+    _import2->release();
+    _von_Oben->release();
+    _remove2->release();
+    _fZwischenSchritt2->release();
+    _fGesamtSchritt2->release();
+    _fZText2->release();
+    _fGText2->release();
+    _vorschau2->release();
+    _datei2->release();
+
+    schriftNormal->release();
+
+    HFscreen->release();
+    HauptFenster->setBildschirm( 0 );
+    HauptFenster->release();
+
+    return 0;
+}