![]() |
Mirgration D2006 auf 10.4
Moin,
ich habe ein Projekt was noch mit Dephi 2006 gebaut wurde. Das soll jetzt auf die neuste Delphi-Version gebracht werden(bleibt VCL). Hab mir dazu erst mal Delphi 10.4(Community) besorgt. Was kommt da alles auf mich zu? Ist das überhaupt machbar? Gibts evtl. brauchbare Tools die dabei helfen? Danke schon mal Udo |
AW: Mirgration D2006 auf 10.4
Natprlich ist das machbar, sehr viele hier im Forum haben solche Sachen ja auch schon gemacht.
Die Frage wäre, was das für ein Projekt ist und was es alles benutzt. Zwischen D2006 und D10.4.x liegt ja die Unicode Umstellung von D2009. Je nach dem wie du mit Strings im projekt umgehst ist das einfach oder aufwändiger (z. B. falls du die als bequeme Puffer für binäre Daten missbraucht haben solltest, dafür wäre heute der TBytes Datentyp zu verwenden und die RTL bietet inzzwischen auch so nette sachen wie Delete um Elemente mitten aus dem Array zu löschen oder Arrays mittels + Operator zu verketten...). Für die Unicode Umstellung gibt es bei Embarcadero irgendwo auch englische Whitepaper die beschreiben auf was man achten muss. Falls du Datenbanken benutzt und das damals noch die BDE gewesen sein sollte: die gibt's in den kommerziellen versionen zwar noch als extra download, eine Migration auf beispielsweise FireDAC (spätestens ab Pro für lokale Datenbanken und ab Enterprise für Client/Server Nutzung enthalten) wäre aber schon wünschenswert, zumal FireDAQ sicher das eine oder andere neue Feature bietet... => ohne weitere Details von dir können wir nur ein paar allgemeine Tips geben und im nebel stochern ;-) |
AW: Mirgration D2006 auf 10.4
Zitat:
Der wesentliche Schritt auf der Kode-Ebene ist der Übergang von Ansi zu Unicode (string type). Da sind alle Stellen kritisch, die implizit Sizeof(char) = 1 annehmen, z. B. wenn der Kode string als Speicher für binäre Daten mißbraucht. Auch Lesen/Speichern von strings aus/in Dateien oder Datenbankfeldern muß angepaßt werden. Google mal nach "migration ansi unicode delphi", es gibt da ein PDF zu dem Thema von Embarcadero. Zu Datenbanken: Falls die alte Anwendung DBs via BDE verwendet steht da ein größerer Umbau an, eventuell sogar eine Datenmigration auf eine neue DB-Engine (Paradox und dbase sind mega-out). Sieh mal ![]() Ansonsten: Neues Verzeichnis anlegen, alle Sourcefiles etc. ausser *.bdsproj, *.cfg, *.dsk dorthin kopieren und einfach mal die DPR-Datei des Projektes in 10.4 öffnen. Projektoptionen neu setzen (für Win32 als Targetplatform), alle Hints und Warnings aktivieren und mal versuchen, zu kompilieren. Und nicht verzweifeln :wink: |
AW: Mirgration D2006 auf 10.4
Zitat:
Viel kann ich zum Projekt momentan nicht sagen, es ist nicht von mir. Recht umfangreich(1300 *pas). Datenbank ist MS-SQL Server. Die Unicode Geschichte ist prinzipiell bekannt. Bei den ersten Versuchen bin ich schon mal über die uses Abschnitte gestolpert wo jetz immer Vcl. Winapi. System. etc davor steht(die alle per Hand editieren..puhh) TRegExpr gab es, jetz nicht mehr oder anders.... Udo |
AW: Mirgration D2006 auf 10.4
Hallo,
naja, den Präfix vor das Winapi kannst du dir auch sparen, der ist Optional! Ich glaube da gibt's auch wo eine Einstellung für ob das immer "fully qualified" erfordert wird oder wie bisher gehandhabt wird... Grüße TurboMagic |
AW: Mirgration D2006 auf 10.4
Zitat:
System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win; Xml.Win;System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl. Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell Das ist der Eintrag für ein neues Projekt (in D11.1 allerdings). Wenn man in den Uses-Klauseln keinen Namespace angibt sucht der Compiler in allen in dieser Option angegebenen nach der Unit. Für regex gibt es die Unit System.RegularExpressions, da findet sich auch TRegEx. |
AW: Mirgration D2006 auf 10.4
Der Präfix Namespace / Unit-Scope ist nicht direkt "optional" ... es gibt eine Liste, welche beim Suchen verwendet wird.
Siehe Projektoptionen > Erzeugen > Delphi-Compiler > Unit-Gültigkeitsnamen. Beim Einbinden von Units wird alles, in dieser Liste, davor ausprobiert. (außer bei Dateien, welche direkt im Projekt sind ... siehe Projekte-Ansicht, bzw. wenn mit IN in der DPR) Gerade beim Upgrade von Projekte aktualisiert/füllt die IDE diesen Eintrag nicht. Aber du kannst dir den Inhalt aus einem leeren Standardprojekt rauskopieren. |
AW: Mirgration D2006 auf 10.4
Zitat:
|
AW: Mirgration D2006 auf 10.4
Zitat:
![]() |
AW: Mirgration D2006 auf 10.4
Zitat:
Richtig bedeutet für mich, dass es funktionieren sollte, möglichst ohne Änderungen in der Funktionalität. Das hieße bei TRegExpr zu bleiben. Ist auch wesentlich einfacher und weniger fehleranfällig. Die aktuellen Sourcen dort sind mindestens kompatibel mit Delphi 6 bis 11 (incl. des Versionswirrwars dazwischen, also 2005 bis 2010, XE bis XE8 und 10 bis 10.4). Ich weißt das, weil ich sie vor kurzem in GExperts integriert habe, um dessen veralteten Code aus SynEdit zu ersetzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 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