Ich verwende Delphi 2007 mit allen Patches und Updates.
Ich habe eine Datei, die von zwei verschiedenen Projekten verwendet wird. In dieser Datei ist eine Prozedur, die ich wie folgt vereinfachen werde:
%Vor%Der Inc () - Befehl sollte fehlschlagen, weil Sie keine Konstante zuweisen können. In einem Projekt bekomme ich einen Fehler in diesem Sinne (ich nenne das Projekt "Accurate"). In dem anderen Projekt bekomme ich keine Fehler (ich nenne es "Bogus"). Ich bekomme auch keine Warnungen. Ich kann nicht herausfinden, warum der Compiler diesen falschen Code durchlässt.
Folgendes habe ich im Projekt Bogus ausprobiert:
1 - Führen Sie einen offensichtlichen Fehler ein, indem Sie beispielsweise "slkdjflskdjf" in die Mitte einer Zeile schreiben
Ergebnis: Ich bekomme einen Fehler, was beweist, dass es wirklich versucht, diese Datei zu kompilieren.
2 - Löschen Sie die .DCU und erstellen Sie das Projekt neu
Ergebnis: Die .DCU wird erneut generiert, was wiederum beweist, dass das Projekt diesen fehlerhaften Code wirklich kompiliert.
Hat jemand Gedanken darüber, warum dieses Verhalten auftreten würde? Und genauer, warum würde es in einem Projekt vorkommen, aber nicht in einem anderen? Gibt es eine obskure Compiler-Option, um die Zuweisung zu Konstanten zuzulassen?
Eine letzte Anmerkung: Beide Projekte werden aus Delphi 5 konvertiert. Unter Delphi 5 mit ähnlichem Code kompilieren beide gut.
Bearbeiten: Vielen Dank für Ihre Hilfe. Nachdem ich die zuweisbare Konstanten-Direktive geändert habe, kann ich konsistentes Verhalten in beiden Projekten bekommen. Ich habe heute etwas Neues gelernt ...
In Compiler-Optionen gibt es dafür eine Option namens "Zuweisbare typisierte Konstanten". Es kann auch mit "{$ J +}" in Ihrem Code aktiviert werden.
Tags und Links delphi delphi-2007