AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi D7-Komponenten nach D2005 portieren
Tutorial durchsuchen
Ansicht
Themen-Optionen

D7-Komponenten nach D2005 portieren

Ein Tutorial von CalganX · begonnen am 30. Dez 2004 · letzter Beitrag vom 22. Jan 2006
 
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

D7-Komponenten nach D2005 portieren

  Alt 30. Dez 2004, 14:09
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
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 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