2009-04-18 2 views
3

Angesichts des Wunsches, die nützliche Region-Compiler-Direktive in Unit-Dateien zu verwenden, was ist der beste Ansatz, um zu ermöglichen, dass dieselben Einheiten in früheren Versionen von Delphi verwendet werden? Es scheint keinen "anständigen" Ansatz zu geben. (Gewünschte IDE-Version ist Delphi 7)Delphi Region Compiler Direktive - rückwärts kompatible Unit-Dateien?

Ich mag Regionen über den Methodendefinitionen haben, um die Methodendefinitionshilfe- und Versionshistoriekommentare zu verstecken/anzuzeigen, aber ich würde die Regiondirektiven mit anderen Compilerdirektiven umgeben müssen, die irgendwie tötet die 'cleaness' von Region-Compiler-Direktiven.

Ich nehme an, ein Präprozessor könnte geschrieben werden, um alle Region/EndRegion-Direktiven zu kommentieren, wenn eine Version von Delphi verwendet wird, die keine Regionen unterstützt..und dann wieder für spätere Versionen hinzufügen?

Ich bin nicht zu 100% zu Delphi 2009 gewechselt und muss mehrere IDE-Versionen unterstützen.

Antwort

9

Ich nehme an, D7 möchte nicht {$ REGION} oder {$ ENDREGION} kopieren? Ich habe nur D2007/9 installiert und kann das nicht überprüfen.

Versuchen Sie folgendes:

{$IFDEF undef}{$REGION 'bla'}{$ENDIF} 
//some code 
{$IFDEF undef}{$ENDREGION}{$ENDIF} 

D2009 Editor erzeugt eine Region wie erwartet. D7 sollte die $ REGION/$ ENDREGION ignorieren, wenn 'undef' nicht definiert ist.

+1

+1. Ziehe eine Zeile an und erstelle mit einem Code oder einer Live-Vorlage, dass dies weder die Sauberkeit tötet, noch ist es mehr Mühe zu schreiben. – mghie

+0

Dies funktioniert ... und wird als die Antwort markieren, wie in der ursprünglichen Frage erwähnt. Meine wirkliche Antwort ist, Regionen für jetzt zu entfernen und alles auf 2009 umzustellen, wenn die Zeit es erlaubt. –

0

Es gibt ein paar Delphi (7) Editor-Enhancement-Komponenten, die so etwas bieten. Ich denke GExperts tut.

Wenn Sie einen Einfluss auf Ihren Code haben, könnten Sie {$ I} zum Teilen großer Dateien in Betracht ziehen.

+0

... oder teilen Sie das Gerät in mehrere Einheiten auf! Über $ INCLUDE Direktive verwenden, von meinem Experiment, $ I funktioniert nicht gut in der Delphi IDE. Zum Beispiel hat der Code-Navigator Probleme beim Durchsuchen des Codes in enthaltenen Dateien. Es gibt kein Problem mit dem Compiler, aber mit der Delphi IDE. Im Gegensatz dazu hat Lazarus kein Problem, wenn mehrere $ INCLUDEd-Dateien verwendet werden, und behandelt sie genauso wie normale .pas-Dateien. –

Verwandte Themen