Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler beim Erzeugen von Formular: Fehler beim Lesen der Dat (https://www.delphipraxis.net/98977-fehler-beim-erzeugen-von-formular-fehler-beim-lesen-der-dat.html)

blackdrake 4. Sep 2007 21:38


Fehler beim Erzeugen von Formular: Fehler beim Lesen der Dat
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.

Ich entwickle derzeit in Turbo Delphi (2006) und habe derzeit ein richtig seltsames Problem bei meinem Projekt bezüglich der Abwärtskompatiblität. Seit kurzem zeigen meine Delphis 5, 6 und 7 folgende Fehlermeldung beim Öffnen des Projektes:

"Fehler beim Erzeugen von Formular: Fehler beim Lesen der Datei."

Die DFM's sind alle einlesbar und vorhanden, ich verwende keine Drittanbieter-VCLs und Delphi 6 und 7 kennt alle VCL-Eigenschaften. Ich konnte auch nirgends Informationen zu diesem Problem finden.

Kompilieren und Arbeiten mit den Forms geht zwar, aber die Meldung stört einfach und sie hat sicherlich einen Grund, wenn scheinbar alle Delphi-Versionen kleiner gleich 7 diese melden.

Der Kracher: Ich habe mal alle Formulare gelöscht und das Projekt gespeichert. Beim Öffnen kam die Meldung wieder, obwohl keine Formulare mehr eingebunden :shock:

Jetzt habe ich den Code reduziert und herausgefunden, dass diese Meldung nur kommt, wenn die RES-Datei des Projektes beigepackt ist (obwohl nicht zum Linken per {$R} eingebunden!). Ansonsten kommt keine Meldung. Ich habe mal beide Dateien angefügt.

Die RES-Datei wurde mit dem Delphi Resource Builder erstellt.

Hat irgendjemand eine Lösung für das Problem?

Gruß
blackdrake

EDIT: Hier die RC-Datei, die die RES zusammenbaut:

Delphi-Quellcode:
MAINICON ICON "Ressourcen\Coder\Icon_1.ico"

100 ICON "Ressourcen\Coder\Icon_2.ico"

101 ICON "Ressourcen\Coder\Icon_3.ico"

102 ICON "Ressourcen\Coder\Icon_4.ico"

INFORMATION BITMAP "Ressourcen\Coder\Information.bmp"

WARNING BITMAP "Ressourcen\Coder\Warning.bmp"

ERROR BITMAP "Ressourcen\Coder\Error.bmp"

SCHLOSS BITMAP "Ressourcen\Coder\Schloss.bmp"

NOOPEN BITMAP "Ressourcen\Coder\Noopen.bmp"

NEXT BITMAP "Ressourcen\Coder\Next.bmp"

1 VERSIONINFO
FILEVERSION 4,1,0,0
PRODUCTVERSION 4,1,0,0
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
   BLOCK "00000000"
   {
      VALUE "CompanyName", "ViaThinkSoft\0"
      VALUE "FileDescription", "(De)Coder 4.1\0"
      VALUE "FileVersion", "4.1.0.0\0"
      VALUE "InternalName", "DeCoder4\0"
      VALUE "LegalCopyright", "© Copyright 2001 - 2007 ViaThinkSoft\0"
      VALUE "OriginalFilename", "Coder.exe\0"
      VALUE "ProductName", "(De)Coder\0"
      VALUE "ProductVersion", "4.1.0.0\0"
      VALUE "Projektleiter", "Daniel Marschall - www.daniel-marschall.de\0"
      VALUE "Webseite", "www.viathinksoft.de\0"
   }
}

BLOCK "VarFileInfo"
{
   VALUE "Translation", 0x0000 0x0000
}
}

1 24 "Ressourcen\Coder\WindowsXP.xml"
WindowsXP.xml ist:

Delphi-Quellcode:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
     type="win32"
    name="(De)Coder"
    version="4.1.0.0"
     processorArchitecture="X86"/>

  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>

</assembly>

RavenIV 5. Sep 2007 08:16

Re: Fehler beim Erzeugen von Formular: Fehler beim Lesen der
 
Da behaupte ich einfach mal, dass es Borland/Codegear nicht so hat mit Abwärtskompatibilität.
Man liesst ja überall nur, dass jede Delphi-Version die Dateien einer kleineren Version lesen kann.
Dass es aber auch anderst herum gehen soll hab ich noch nirgends offiziell gelesen.

Warum willst Du überhaupt zurück zu D7 oder D5?
D2006 kann doch mehr und ist komfortabler.

blackdrake 5. Sep 2007 14:50

Re: Fehler beim Erzeugen von Formular: Fehler beim Lesen der
 
Hallo.

Zitat:

Zitat von RavenIV
D2006 kann doch mehr und ist komfortabler.

Ja, Turbo Delphi ist kostenlos und viel komfortabler. Aber unter Win9x funktioniert Delphi nicht mehr, weil .NET nur für NT-Systeme ausgerichtet ist. Ich will die Kompatibilität wegen OpenSource erreichen.

Es handelt sich hierbei um kein Kompatibilitätsproblem von Borland, da die RES nicht mal eingebunden ist, sondern um einen Bug, der in allen Delphi Versionen kleiner gleich 7 vorhanden ist (war).

Nachdem ich etwas an der RES-Datei herumgespielt hatte, habe ich den Bug gefunden.

Folgendes führt zu der Fehlermeldung (XML-Manifest, Resource ID 24/1):

Delphi-Quellcode:
 <assemblyIdentity
     type="win32"
    name="(De)Coder"
    version="4.1.0.0"
     processorArchitecture="X86"/>
Und folgendes ist OK (XML-Manifest, Resource ID 24/1):

Delphi-Quellcode:
 <assemblyIdentity type="win32" name="(De)Coder" version="4.1.0.0" processorArchitecture="X86"/>
Die RES Datei muss nur den selben Namen haben, wie die DPR, schon gibt Delphi <= 7 diese irreführende Fehlermeldung aus.

Gruß
blackdrake


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz