Delphi-PRAXiS
Seite 1 von 2  1 2      

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.
Seite 1 von 2  1 2      

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