![]() |
Portierung Delphi 5 zu 10.4
Guten Tag Zusammen,
hat schonmal jemand einen Leitfaden für die Portierung geschrieben? Ich bin gerade neu an Delphi gekommen und soll ein altes, recht umfangreiches Projekt, aufpeppen. Die Online Recherche hat sich bisher als ehr zäh erwiesen. Hier schon einmal die eingebundenen Dateien, falls jmd damit direkt etwas anfangen kann. uses Forms, Classes, Controls, Menus, ComCtrls, Windows, Dialogs, SysUtils, UDefinitions, UDeviceConfigurations, UIselController, UBergerLahrController, UMotorEvent, UMotorControllerDefinitions, UConfiguration, UTools, UMultimeterController, UProceed, UProbeOperations, UProbeAnalysis, ComPort, UDatatypeContainer, extctrls, UFormInitializeRequest, UCalVerFnlTst, FileCtrl, UDBModule, DConsole, UDebugHelper, StdCtrls, AdvGrid; Grüße Torrix |
AW: Portierung Delphi 5 zu 10.4
Moin...:P
Grundsätzlich 5-10.4: * Strings sind jetzt Unicode Strings * ShortString auflösen * erstmal alle Strings zu AnsiStrings machen ...hier zu ergänzen! :wink: Projekt: Zitat:
AdvGrid: neueste Version benutzen Zitat:
|
AW: Portierung Delphi 5 zu 10.4
AdvGrid ->
![]() |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Hatte erste einen Fall bei dem man das gemacht hatte. Statt EINE Stelle wegen Char = 2 Byte anzupassen, musste ich 200 stellen wieder von Ansistring zurück nach String ändern ... |
AW: Portierung Delphi 5 zu 10.4
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
ja moin,
cool, dass es schon Antworten gibt. Ja Neuling geeignet ist das Projekt nicht besonders. Zumal Delpi5 unter win10 ja nur noch eingeschränkt läuft. Die Software steuert einen komplexen Prüfstand und eine Datenbank. Nach den ersten Beiträgen habe ich nicht mehr so viel Respekt vor der Portierung, viel mehr mit den Anpassungen, die am Code vorgenommen werden sollen. :pale: Das Projekt hat über 10k Zeilen und einer der Controller am Prüfstand wird erneuert, dadurch soll die Kommunikation statt über das alte Protokoll auch/mit über den COMPort laufen, über den der Prüfling Kommunizieren kann. Was ich übertragen muss, das weiß ich schon, nur das Wie&Wo bleibt bislang ein Geheimnis. |
AW: Portierung Delphi 5 zu 10.4
Tipp: versuche dir auch mal Unit Testen als Fähigkeit anzueignen.
Beim Delphi ist z. B. DUnit mit dabei. Für alle nicht GUI Units die du portiert hast soweit möglich zumindest mal ein paar Tests aufsetzen, dann merkst du schneller wo was kaputt geht falls du nochmal was an den Units drehen musst. Evtl. auch mal versuchen das Programm in einzlne "Module" zu zerlegen und dann diese der Reihe nach portieren. Also das was nichts mit dem entsprechenden Teil zu tun hat auskommentieren und den Rest dann portieren. Möglichst mit dem einfachsten Programmteil anfangen um ein Gefühl dafür zu bekommen. Danach schrittweise weitere Teile dazu nehmen. Und möglichst mit Versionskontrolle arbeiten, damit du auch mal wieder zurück kannst, wenn du dich wo verrant haben solltest. Und wenn's nur ein lokal aufgesetztes VisualSVN + TortoiseSVN ist... Noch ein Tipp: falls die Datenkommunikation mit Binärdaten arbeitet die aber in Strings packt das möglichst gleich umstellen auf TBytes oder TMemoryStream oder so, weil bei Nutzung von Strings mit binären Daten kann man sich viel Ärger einhandeln! |
AW: Portierung Delphi 5 zu 10.4
bezüglich Versionskontrolle:
GIT/SVN/HG unterstützt Delphi auch direkt, in der Projektverwaltung und unterm Quellcode die Historie (wenn erkannt, dann wird das genutzt, anstatt dem __history-Ordner) Und unbedingt als Erstes im FormDesigner mal ins Kontextmenü gucken. Rechtsklick auf alle deine Forms und ganz unten einen Haken bei Text-DFM. Delphi hatte früher die DFMs binär gespeichert und seit mindestens Delphi 7 kann es auch als Text, was für die Änderunganzeige in der Versionskontrolle besser ist. |
AW: Portierung Delphi 5 zu 10.4
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
![]() Empfehlen würde ich noch ein "Ticketsystem" wo du alles protokolieren kannst. Fehler, ToDo´s, Features. Und vor allem, auch wenn sie es nicht verstehen, die Documentation für die Chef´s..was du gemacht hast. :thumb: ![]() Zitat:
Zitat:
Wie du sehen kannst, gehört noch viel mehr drumherum. :wink: Ich würde folgende Reihenfolge vorschlagen: 1. Grundlagen Delphi 2. Versionskontrolle 3. Ticketsysten oder ähnliches 4. Dem Chef Geld aus dem Rücken leiern für evt. Kaufkomponenten 5. Plan machen (Zeitleiste) 6. Eine Unit nach der anderen umstellen 7. Tests, Tests, Tests Wichtig: Die DP als Link in Lesezeichen/Favorit anlegen! :P |
AW: Portierung Delphi 5 zu 10.4
Zitat:
10k sind nicht sonderlich viel. Mein eigenes Projekt hat so 700k, in der Firma haben wie 1-2 Millionen. Ich würde sagen erst mal umstellen und dann erst an neue Funktion erst nur denken. |
AW: Portierung Delphi 5 zu 10.4
Ja, damals D7 zu XE ... nach 'nem halben Jahr wurden noch Fehler gefunden
Und selbst diesmal nach über 5 Jahren fand ich noch einen Doppelfehler von damals. (zwei Convertierungsfehler, die sich gegenseitig aufhoben) 350 Stunden gingen grade nun alleine für XE zu 10.4 drauf (die Anfänge in 10.2 und 10.3 und der Upgrade aller Fremdkomponenten nicht eingerechnet) Dabei waren es am Quellcode selber diesmal fast keine Umstellungen (außer dass viel Altcode und eine alte Fremdkomponente diesmal mit rausflogen) Aber es wird auch gleich die Chance genutzt paar Dinge gleich mal mit zu überarbeiten, wenn man schonmal dran ist. |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Einen Leitfaden oder Tipps vom Hersteller des Compilers konnte ich dazu auch noch nicht finden. So macht es jedenfalls nicht sehr viel Sinn hier rum zu probieren. |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
ob es so toll ist, das projekt erst zu portieren und dann zu programmieren hmm aufräumen wäre vorher gut, denn dann fällt mindestens ein Packet bei "uses" weg. Über das Teil werden aber auch Daten gesendet.
Ich könnte versuchen es im alten Compiler heraus zu komentieren und dann das Package bei "uses" raus löschen und dann portieren. Das müsste doch arbeit sparen? :gruebel: Gerade läuft das Update von 10.4 auf 10.4.1 Die Fehler kommen von fehlenden "uses" Daten. |
AW: Portierung Delphi 5 zu 10.4
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
Nein sind sie nicht. Bricht der Compiler nach dem ersten Fehler ab oder zeit er mir alle an?
Das PBEditPack fehlt (mindestens). ...is a collection of 7 FREEWARE Edit-components for Delphi: PBBinHexEdit, PBDBEdit, PBEdit, PBMaskEdit, PBNumEdit, PBSuperSpin and PBSpinEdit. Ich probiere jetzt mal, die version 4.0 auf eigene Faust zu installieren. Das (c) ist allerdings von 2001 und die Url in der Readme geht auch nicht. |
AW: Portierung Delphi 5 zu 10.4
Liste mal die auf, die in den .PAS so:
Zitat:
Die mußt du nur mit den Delphi eigenen austauschen. |
AW: Portierung Delphi 5 zu 10.4
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
die PB Sachen gibt es
![]() allerdings nur bis D7 - sollten also kein UniCode können. Grüße Klaus |
AW: Portierung Delphi 5 zu 10.4
Zitat:
TPBEdit = TEdit TPDEdit hat damals Features zum normalen TEdit hinzubekommen. Inzwischen kann das TEdit das auch. :wink: Nimm es nicht persönlich...das ist eine Nummer zu hoch für dich. :? Dir fehlen echt die Grundlagen. :? |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Das Problem so alter Projekte aus der Delphi5 Zeit ist nicht mal nur das ganze compilierbar zu machen, das bekommt man ggf über eine vertretbare Zeit hin, aber wenn es kompiliert ist, dann beginnen die nächsten meistens viel schlimmeren Probleme, nämlich die exe startet nur mit unerklärlichen Access Violations, oder nach dem Start kommen die irgendwann oder die Bedienung wie das mal gedacht war, funktioniert nicht mehr so wie man es gewöhnt war usw. Ich glaub die meisten Delphi Profis unter uns hier würden so ein Projekt nur nach Aufwand gegen Stundenlohn ohne limit der Stundenzahl anbieten, wenn man das seriös vereinbaren will und viele von uns kennen da schon reichlich fallstricke aus den Portierungen der letzten 26 Jahre Delphi n zu delphi n+1 oder ähnlich. Wenn du aber selber schreibst, das du neu in Delphi bist, dann würde ich dir empfehlen erst mal ein neues Projekt aufzusetzen und die teile von dem existierenden Quellcode, der irgendwas geistreiches macht, in das neue Projekt auf ganz andere Komponenten aufzubauen, das wird garantiert wesentlich schneller zu ziel führen als versuchen den ganzen GUI kram aus dem letzten Jahrtausend wieder zum leben zu erwecken Versuch erst mal die teile zu extrahieren, die irgendwas an kommunikation machen, bau dir dafür einen eigene Unit ohne den ganzen gui kram und danach fang mit einer simple Konsolenapp oder ganz banal memo auf dem screen und ein paar button, um den kram zu testen ob der das macht was der machen soll. Wenn der teil klar ist und du das am laufen hast, dann beginne mit der gui, eine andere Reihenfolge wird dich ggf noch jahre beschäftigen können ohne das ein ziel sichtbar ist. Ein projekt mit "über 10k Zeilen" ist dabei ja noch fast übersichtlich ... |
AW: Portierung Delphi 5 zu 10.4
und bzgl Delphi5 läuft nicht in Windows 10? gibt es da konkrete Gründe, die ich wissen sollte, warum die von mir benutzte 32bit Windows 10 VM mit Delphi5, auf der ich mit IBExpert Sourcen arbeite, nicht laufen sollte?
Meine vm weiss davon nämlich nichts und funktioniert damit sehr gut, jedenfalls bei all dem was ich das so mache... (die installation per installer habe ich da nie versucht, sondern von existierender win7 vm alle pfade kopiert und registry kram exportiert/importiert und schon geht auch das, bei ein paar fehlermeldungen aus dlls hab ich die noch explizit per regsvr32 registrieren müssen, aber dann geht auch das bei mir) |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Zitat:
Ich probiere mir jetzt Unterstützung zu organisieren. Sonst sitze ich hier noch bis zur Rente dran. Angebote kann man mir ggf. zukommen lassen. |
AW: Portierung Delphi 5 zu 10.4
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
das mit der Hilfe ist mir noch gar nicht bewusst gewesen, ich hab die glaub ich in den letzten
10 Jahren eh nicht mehr benutzt wenn ich mir der Source der Komponente nicht weiterkomme, war google bisher eh schon meine erste wahl (und das winhlp32 aus dem tip hatte ich gerade auch mal kurz installiert und jetzt bekomm ich jedenfalls eine sinnvolle fehlermeldung, das die verbundene delphi5.hlp bei mir eh nicht vorhanden ist, hatte ich wohl schon lange nicht mehr mitkopiert, fehlt mir aber auch nicht ...) und sei dir ganz sicher, um irgendwas persönlich nehmen, geht es bei uns hier ganz sicher nicht Wenn mal vor 15 Jahren jemand gefragt hätte, ob es sinnvoll ist, Raketen zu entwickeln, die auch wieder landen können und danach wieder benutzt werden können, hätte sicherlich jeder, der sich damit ein wenig auskennt gesagt, ne, lass mal. Es ist nicht nur da um so beeindruckender, das es demjenigen egal war und der einfach weiter gemacht hat. Die Frage bei TEdit und TPBEdit "was die Funktionen genau machen" ist in der üblichen Nameswelt von Delphi Programmierern dann ein Hinweis gewesen, der auf sehr begrenzte Basiskenntnisse hindeutet und daher unser Kommentar. Ich hab auch in großen Konzernen Leute kennengelernt, die dort als Programmierer beschäftigt waren, das aber dummerweise überhaupt nichts mit deren Talent zu tun hatte, programmieren gehörte auf jeden Fall nicht zu den Talenten, auch nicht wenn man diverse Woche Fortbildungen besucht hatte. Deine Hartnäckigkeit ist aber schon positiv zu sehen, wer weiss, vielleicht hast du den kram in einer paar wochen komplett fertig konvertiert und deutlich verbessert. Abe rder Tip, das Projekt erst mal aufzuteilen und nicht nur zu laufen zu bringen, um dann da was dranzufrickeln würde ich noch mal wiederholen, kannst ja auch gerne deinen vorgesetzten dazu mal befragen, oft wurde so was nur nicht gemacht, weil sich kein schwein an den uralten code rangetraut hat und nur weil du nun nicht rechtzeitig nein gesagt hast, heisst das ja nicht, das die konvertierung nicht gleich eine verbesserte version ergeben kann. Alter tip übrigens noch von einem alten sack: wenn du irgendeine Zeile in seiner Funktion nicht zuordnen kannst, einfach mal auskommentieren und kleiner kommentar dazu schreiben was dein momentanes verständnis von dieser zeile quellcode ist und was es wohl machen sollte. du wirst in fast allen projekten feststellen, die über so viele jahre entstanden sidn, das mindestens 20-40 % dieser zeilen gar keine wichtige Funktion hatten und auskommentiert bleiben können oder irgendwann kommt dir die Erkenntnis, das es zB irgendein event oder property einer uralten Komponente war, die in der neuen vielleicht anders heisst oder gar nicht existiert. Auf dem Weg wirst du aber deutlich schnelle rirgendwas kompilierbares haben und dann den kram nach und nach wieder lauffähig zu haben, geht meistens einfacher und wenn du zB TPBEdit global im ganzen Projekt durch TEdit ersetzen willst, es gab früher ein sehr hilfreiches Tool namens greplace mit dem das in dfm und pas recht einfach ging. falls das dann auch nach deiner änderung weiter in delphi5 comilierbar ist, spart das auch schon mal zeit |
AW: Portierung Delphi 5 zu 10.4
Noch ein Tipp: Ctrl-Shift-T ermöglicht zumindest in neueren Versionen einen ToDo Kommentar hinzuzufügen. Die kann man dann in einer ToDo Liste einsehen und somit von normalen Kommentaren unterscheiden.
|
AW: Portierung Delphi 5 zu 10.4
Moin...:P
Zitat:
![]() Zitat:
Beispiel: ![]() Zitat:
|
AW: Portierung Delphi 5 zu 10.4
Zitat:
zu 2) es gibt 18 selbstgeschriebene units mit gui und selbstgeschriebene 20 ohne. zu 3) nur mit dem nacken Namen findet man das tool nicht so leicht. erinnerst du eine version oder den hersteller davon? die suchengine geht immer von "replace" aus |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Dafür gibt es hier auch Jobbörse. Aber warum werde ich das Gefühl nicht los, dass hier irgendein 30-20 Jahre altes Tool weiter-/wiederbelebt werden soll, wofür es gewiss schon andere und bessere Lösungen gibt. Kannst du uns etwas erzählen, wofür und was das Programm macht/machen soll. |
AW: Portierung Delphi 5 zu 10.4
Um Komponenten u.ä. zu ersetzen, wird seit knapp 10 Jahren
![]() Z.b.
Code:
refind *.pas *.dfm /I /W "/P:T[A-Za-z]+Edit" /R:TEdit
|
AW: Portierung Delphi 5 zu 10.4
Zitat:
![]() bzw ![]() |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Außerdem, waren im Delphi 5 die DFMs noch binär. Darin mit "Texten" zu rumzufummeln, wird auch nicht gut gehn. Man könnte vorher die BinärDFMs in TextDFMs konvertieren, auch ohne die Forms in Delphi öffnen zu müssen. |
AW: Portierung Delphi 5 zu 10.4
dank euch allen ersteinmal.
das programm wurde 2004 geschreiben und 05 sowie 07 wurden fehler beseitig und die person(en) hat die firma verlassen. wenn dieses programm auf keinem rechner mehr funktioniren würde, wäre über die hälfte des umsatzes weg :wall: eben in einer kleineren runde waren wir auch bei dem stand angekommen, dass wir besser erst die software anpassen und dann von einem profi alle unsere delhpi5 programme updaten lassen. oder vereinfach die neue version massiv das arbeiten an der modifikation? mal sehen, was beim meeting der hohen tiere heraus kommt. |
AW: Portierung Delphi 5 zu 10.4
Zitat:
Ich persönlich würde mir erst einmal anhand der Units und der Funktionen einen Überblick über das Programm verschaffen und dies dann sinnvoll aufteilen, indem ich Funktion für Funktion portiere und neu aufsetze. Am Ende kommt dann die GUI dran, dort ist es meistens nur simples Copy and Paste, wenn fehlende Komponenten durch Delphi-eigene ersetzt werden sollen. |
AW: Portierung Delphi 5 zu 10.4
Wenn man Delphi kauft, dann kann/sollte man sich auch gleich die Lizenzen der Vorgängerversionen mit abholen.
![]() Delphi 7, 2007, 2009 und alles Neuere ist da verfügtbar. 7/2007 sind noch ANSI und somit könnte man damit auch erstmal anfangen und es stückchenweise hochziehen. (jeweils mit einer Delphiversion wo es größere Änderungen gab, anstatt ALLES auf Einmal) 5 > 7 > 2007 (ab hier die neue IDE) > 2009 (Unicode ab hier) > XE > 10.x Bzw. die ganz dringenden Änderungen erstmal in D7 oder 2007 machen, da D7 noch mit D5 halbwegs kompatibel ist/war. |
AW: Portierung Delphi 5 zu 10.4
Vor einigen Jahren habe ich ein großes Projekt von D5, mit dem Zwischenschritt D7, auf D2007 portiert. Die Portierung von D5 auf D7 war mit ein wenig (sehr überschaubar) Arbeit verbunden. Der Schritt von D7 auf D2007 ging fast von alleine.
Das Programm ist heute noch auf dem Stand D2007 und wird regelmäßig mit Updates versorgt. D2007 mit "December 2007 Update" und dem "May08 Help Update", dazu die freien IDE Erweiterungen "GExperts Experimental Version 1.3.8.50", "IDE Fix Pack 2007 4.4 Windows 10 Edition" und "DDevExtensions 2.4.1" läuft sehr stabil und schnell. Von Seite der IDE lässt es sich damit schneller entwickeln, als mit aktuellen Versionen. Wenn ich nach Wartungsarbeiten wieder mit aktuellen Versionen arbeiten muss, fäll mir die langsame Reaktion der neuen IDEs besonders negativ auf. Hoffentlich wird Delphi 10.5 diesbezüglich deutlich besser. Mein Tipp, erst einmal auf D2007 hochziehen und schauen, ob es ausreicht. Bis bald... Thomas |
AW: Portierung Delphi 5 zu 10.4
Zitat:
|
AW: Portierung Delphi 5 zu 10.4
Hallo,
noch was: ich hoffe, du hast bei Embarcadero auf der Webseite schon das kostenlose Object Pascal Handbook vom Produktmanager Marco Cantu gesehen? Man kann es hier kostenlos als PDF anfordern: ![]() Evtl. hilft dir das etwas bei der Syntax etc. und beim Finden/Benutzen allgemeiner Bibliotheken der mitgelieferten Laufzeitumgebung. Noch eine Idee: versuche mal aufzuzeichnen, welche Unit deines Projektes welche anderen benutzt umd rauszufinden, ob es Units gibt die man "solo" in ein leeres Projekt extrahieren kann und die man dort dann auf einen compilier und nutzbaren Stand bringen kann. Und am besten alles was dir auffällt, dass getan werden sollte, in eine Liste schreiben, damit man's nicht vergisst. Kann auch eine Excel Liste sein die dann noch eine Status Spalte bekommt. Wenn du das Projekt von D5 auf D10.4 umstellst musst du v.a. dran denken, dass alle Strings jetzt nicht mehr Ansi (= 1 Byte pro Zeichen) sondern Unicode (= mind. 2 Byte pro Zeichen) sind. Je nach dem was mit Strings im Programm gemacht wurde ist das problematisch oder eher problemnfrei. Grüße TurboMagic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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