Dieser Artikel ist keine Lösung, die immer funktioniert!!!
Im Moment plage ich mich damit rum, dass ich Komponenten als
Delphi 7 im neuen
Delphi 2005 benötige, die vom Autor/von den Autoren noch nicht auf die neue Version vorbereitet wurden. Ich habe inzwischen einige Komponenten portieren können und das lief meistens nach diesem Schema ab. Ich betone nochmal, dass diese Lösung nicht immer funktionieren wird, sondern nur ein trivialen bis mittleren Fällen (einfache Komponenten bis hin zu Komponenten, die noch mit den Design-Editoren rumspielen [müssen]). Außerdem gehe ich davon aus, dass die Komponente unter Delphi 7 einwandfrei kompiliert und funktioniert hat. Es also kein Problem mit den Designeditoren (sprich den entsprechenden Units) gibt. Wer damit ein Problem hat sollte sich erstmal an
Suche wenden.
Häufig liegt bei Komponenten eine Datei bei, in der alle Compilerversionen definiert sind. Diese heißt häufig
Compilers.inc oder so ähnlich. Darin muss sollte für alle Fälle erstmal eine Definition für die neue Delphi-Version angelegt werden. Ich habe es mir immer einfach gemacht und die D7-Definition einfach kopiert und korrigiert.
Beispiel:
Delphi-Quellcode:
{VORHER:}
{$ifdef VER150}
{$define COMPILER_7}
{$define DELPHI}
{$define DELPHI_7}
{$endif}
{NACHHER:}
{$ifdef VER170}
{$define COMPILER_9}
{$define DELPHI}
{$define DELPHI_9}
{$endif}
{$ifdef VER150}
{$define COMPILER_7}
{$define DELPHI}
{$define DELPHI_7}
{$endif}
Das muss allerdings in der gesamten Datei gemacht werden, denn häufig werden auch noch Defines wie
COMPILER_7_UP erstellt, diese sollten dann auch für D2005 definiert werden.
Jetzt geht es relativ einfach weiter. Dupliziert die Packages für D7 einfach im Explorer (markieren, STRG+C, STRG+V) und benennt die Dateien um. Am sinnvollsten ist, in der bisherigen Form der Bennung weiterzumachen. Also aus
VirtualTreesD7D.dpk sollte
VirtualTreesD9D.dpk gemacht werden. Achtet darauf, dass ihr das sowohl bei Design- als auch bei den Runtime-Packages macht.
Nun werden die DPK-Dateien in Delphi geöffnet. Es sollte sich der Import-Assistent öffnen und fragen, ob das Paket für Delphi für .NET oder
Win32 aufbereitet werden soll. Wählt dabei den Eintrag
Delphi für Win32 aus und klickt auf OK. Im Projektmanager (standardmäßig auf der rechten Seite der
IDE) nun ein Rechtsklick auf die
BPL-Datei (z.B.
VirtualTreesD9D.bpl) und "Quelltext anzeigen" anklicken. In der Datei sollte jetzt erstmal oben der Dateiname angepasst werden (aus der Sieben wieder eine Neun machen). In Designpackages muss u.U. noch bei den
requires-Angaben eine Zahl ausgetauscht werden. Das gleiche wieder u.U. bei Runtimepackages machen.
Dann sollte alles fertig sein. Alles speichern und ganz normal Kompilieren und Installieren, wie bei D7 und anderen D9-Paketen auch.
Delphi legt noch ziemlich viel Müll ab, deswegen könnt ihr (hat bei mir bisher zu keinen Fehlern geführt) diese Dateien löschen: *.bdsproj.local, *.cfg und das Verzeichnis
ModelSupport, sofern ihr keine Modellansichten braucht.
Ich hoffe, dass ich jetzt nicht schon wieder irgendwelche Fehler gemacht habe und das bei euch funktioniert. Bisher habe ich das bei folgenden Komponenten geschafft:
VirtualTrees (aka VST),
Aducom SQLite, ...
Hoffe dass es bei euch auch soweit funktioniert,
Chris