Warum wird der Code von "The Tomes of Delphi" nicht kompiliert?

8

Ich versuche, die TDRecLst und TDSplyCm -Einheiten aus dem Code zu verwenden, der in Die Tomes von Delphi , aber ich erhalte einen Compilerfehler in TDBasics.pas :

Ich erhalte einen ähnlichen Fehler in TDStrRes.inc :

Was ist falsch und wie repariere ich es?

Der Code ist beim Autor erhältlich.

    
tbutton 05.06.2013, 20:41
quelle

1 Antwort

13

Sie verwenden offensichtlich eine Delphi-Version, die neuer ist als Delphi 6. Obwohl der Code aus diesem Buch im Jahr 2005 aktualisiert wurde, wird er nur bis zu dieser Version von Delphi erkannt. TDDefine.inc definiert eine Reihe von Compilersymbolen basierend auf der Version, die es erkennt, aber wenn die von Ihnen verwendete Version nichts erkennt, definiert es no Symbole. Dies führt später zu Problemen, wenn der Compiler in TDBasics.pas ;

auf solchen Code stößt %Vor%

Da keines von Delphi1 , Delphi2Plus oder Kylix1Plus definiert ist, ist die uses -Klausel leer. Wenn wir alle Compiler-Direktiven und inaktiven Codebausteine ​​ignorieren, sieht der Compiler schließlich Code wie diesen:

%Vor%

Aus diesem Grund beschwert sich der Compiler darüber, dass statt " const " ein Bezeichner erwartet wird.

Um es zu beheben, müssen Sie TDDefine.inc lehren, Ihre Version von Delphi zu erkennen. Einfacher ist es jedoch, alle Versionserkennungscodes zu ignorieren und alle Symbole, die für die von Ihnen verwendete Version gelten, zu codieren. Solange Sie keine ältere Version als Delphi 6, all verwenden, gelten die Symbole für alle Ihre Versionen.

Suchen Sie den folgenden Codeblock in TDDefine.pas :

%Vor%

Entfernen Sie die erste und die letzte Zeile, so dass die restlichen $DEFINE -Anweisungen unbedingt verarbeitet werden.

    
Rob Kennedy 05.06.2013, 22:17
quelle

Tags und Links