Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mirgration D2006 auf 10.4 (https://www.delphipraxis.net/210750-mirgration-d2006-auf-10-4-a.html)

wurzelzwerg 4. Jun 2022 10:46

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

TurboMagic 4. Jun 2022 10:57

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 ;-)

peterbelow 4. Jun 2022 11:11

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von wurzelzwerg (Beitrag 1506745)
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

Klar ist das machbar, aber es könnte eine Menge Arbeit werden, und eventuell auch teuer, wenn Du viele 3rd-party Komponenten verwendest. Die brauchst Du nämlich in der aktuellen Version für 10.4 und kannst nur hoffen, dass es die überhaupt noch gibt.

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 https://docwiki.embarcadero.com/RADS...ngen_(FireDAC)

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:

wurzelzwerg 4. Jun 2022 11:23

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von TurboMagic (Beitrag 1506746)

=> ohne weitere Details von dir können wir nur ein paar allgemeine Tips geben und im nebel stochern ;-)

Schon klar. Ich brauch nur mal einen Überblick, die Details muss ich selbst erst rausfinden.

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

TurboMagic 4. Jun 2022 12:04

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

peterbelow 4. Jun 2022 12:27

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von wurzelzwerg (Beitrag 1506749)
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

Sieh Dir mal in den Project options unter "Delphi compiler" den Punkt "Unit scope names" an. Da sollte sowas drin stehen wie.

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.

himitsu 4. Jun 2022 12:31

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.

wurzelzwerg 5. Jun 2022 08:09

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von peterbelow (Beitrag 1506758)

Für regex gibt es die Unit System.RegularExpressions, da findet sich auch TRegEx.

Danke, aber ich suche TRegExpr. TRegEx ist da(ein record).

Uwe Raabe 5. Jun 2022 08:45

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von wurzelzwerg (Beitrag 1506784)
ich suche TRegExpr. TRegEx ist da(ein record).

Wenn du es richtig machen willst, solltest du deinen Code auf TRegEx (den record) umstellen. Andernfalls wirst du vielleicht hier fündig: https://github.com/andgineer/TRegExpr

dummzeuch 5. Jun 2022 15:05

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1506785)
Zitat:

Zitat von wurzelzwerg (Beitrag 1506784)
ich suche TRegExpr. TRegEx ist da(ein record).

Wenn du es richtig machen willst, solltest du deinen Code auf TRegEx (den record) umstellen. Andernfalls wirst du vielleicht hier fündig: https://github.com/andgineer/TRegExpr

Hm, definiere "richtig"?

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.

Uwe Raabe 5. Jun 2022 16:03

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von dummzeuch (Beitrag 1506794)
Hm, definiere "richtig"?

Klar, das ist immer situationsabhängig und oft auch sehr subjektiv.

Aus meinem Kundenkreis kommt aber z.B. schon sehr oft der Wunsch zur Vermeidung jeglicher Fremdkomponenten zugunsten von Delphi-Bordmitteln.

Zitat:

Zitat von dummzeuch (Beitrag 1506794)
Die aktuellen Sourcen dort sind mindestens kompatibel mit Delphi 6 bis 11

Da die Portierung des Projekts nach 10.4 gehen soll ist Kompatibilität mit älteren Delphi-Versionen vermutlich eher kein K.O.-Kriterium.

dummzeuch 5. Jun 2022 17:01

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1506795)
Zitat:

Zitat von dummzeuch (Beitrag 1506794)
Die aktuellen Sourcen dort sind mindestens kompatibel mit Delphi 6 bis 11

Da die Portierung des Projekts nach 10.4 gehen soll ist Kompatibilität mit älteren Delphi-Versionen vermutlich eher kein K.O.-Kriterium.

Darauf wollte ich auch gar nicht hinaus. Der aktuelle Maintainer von TRegExpr hat laut eigener Aussage keinen Zugriff mehr auf Delphi, egal welche Version, deshalb ist es nicht selbstverständlich, dass der aktuelle Code überhaupt kompatibel zu irgendeiner Delphi-Version ist.

TurboMagic 5. Jun 2022 18:12

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von dummzeuch (Beitrag 1506799)
Darauf wollte ich auch gar nicht hinaus. Der aktuelle Maintainer von TRegExpr hat laut eigener Aussage keinen Zugriff mehr auf Delphi, egal welche Version, deshalb ist es nicht selbstverständlich, dass der aktuelle Code überhaupt kompatibel zu irgendeiner Delphi-Version ist.

Naja, eine COmmunity Edition sollte für den doch auch drin sein, wenn's nur um die Pflege so einer OpenSource Komponente geht...

Rollo62 7. Jun 2022 11:20

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von wurzelzwerg (Beitrag 1506745)
Gibts evtl. brauchbare Tools die dabei helfen?

Es gibt ja ein MigrationTool bei der IDE,
ob Dir das weiterhilft sei mal dahingestellt.

dummzeuch 7. Jun 2022 12:20

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von TurboMagic (Beitrag 1506800)
Zitat:

Zitat von dummzeuch (Beitrag 1506799)
Darauf wollte ich auch gar nicht hinaus. Der aktuelle Maintainer von TRegExpr hat laut eigener Aussage keinen Zugriff mehr auf Delphi, egal welche Version, deshalb ist es nicht selbstverständlich, dass der aktuelle Code überhaupt kompatibel zu irgendeiner Delphi-Version ist.

Naja, eine COmmunity Edition sollte für den doch auch drin sein, wenn's nur um die Pflege so einer OpenSource Komponente geht...

Mag sein, aber er muss sie sich dafür erstmal besorgen. Ich kann verstehen, wenn er sich das nicht antun will, wenn er Delphi sonst nicht verwendet. Es kann aber auch andere Gründe geben: Es ist z.B. durchaus möglich, dass er gar kein Windows mehr einsetzt oder kein neueres Windows hat. Ich war jedenfalls froh, dass er auf meine Bugreports so schnell reagiert hat. Das kenne ich von anderen Projekten so nicht (incl. meiner eigenen).

himitsu 7. Jun 2022 14:06

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von Rollo62 (Beitrag 1506915)
Es gibt ja ein MigrationTool bei der IDE,
ob Dir das weiterhilft sei mal dahingestellt.

Dieses migriert natürlich nur die IDE-Einstellungen von Delphi,
aber keine mit Delphi geschriebenen Programme (Quellcodes/Projekteeinstellungen).

Uwe Raabe 7. Jun 2022 15:17

AW: Mirgration D2006 auf 10.4
 
Zitat:

Zitat von himitsu (Beitrag 1506941)
Dieses migriert natürlich nur die IDE-Einstellungen von Delphi,
aber keine mit Delphi geschriebenen Programme (Quellcodes/Projekteeinstellungen).

Dafür gibt es das ReFind, aber das muss man auch mit Vorsicht verwenden.

TigerLilly 8. Jun 2022 09:47

AW: Mirgration D2006 auf 10.4
 
Und ein Buch zu dem Thema gibt es auch ganz neu:
https://www.amazon.com/Delphi-Legacy.../dp/B0B2TY6ZZ4


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz