AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Altes Programm kompilieren

Ein Thema von Runningdog · begonnen am 9. Jan 2024 · letzter Beitrag vom 11. Jan 2024
Antwort Antwort
Seite 1 von 3  1 23      
Runningdog

Registriert seit: 9. Jan 2024
11 Beiträge
 
#1

Altes Programm kompilieren

  Alt 9. Jan 2024, 20:10
Hallo liebe Forenmitglieder,

ich bin ein alter Sack und habe vor vielen Jahren mit Turbo-Delphi programmiert. Ich glaube es war Version 10 von 2005 oder 2006. Damals habe ich ein Programm geschrieben, wo ich das Kalenderdatum der Datensätze mit einer Function in eine Realzahl umgewandelt habe, weil das einfach leichter zu sortieren war (Damals waren die entsprechenden Funktionen noch nicht Bestandteil von Turbo-Delphi und mußten selbst geschrieben werden). Zu allem Übel stammt die Sortierfunction aus einem noch sehr viel älteren Turbo-Pascal von 19xx...

Nun funktioniert das Programm seit 2024 nicht mehr, weil wahrscheinlich die Realzahlen sich nun außerhalb der vorgesehenen Grenzen (der Funktion) bewegen. Damals hätte ich ja nie geglaubt, daß ich das Programm so lange benutze. Ich müßte da also am Programm was ändern.

Leider programmiere ich schon laaange nicht mehr und habe auch das Turbo-Delphi nicht mehr. Ich habs zwar im Internet-Archive noch gefunden, es läßt sich aber wegen der

The following prerequisites are included and must be installed beforehand:

– Microsoft Visual J#.NET Redistributable Package 1.1 (1.1.4322.586)
– Microsoft .NET Framework 1.1 Package (1.1.4322.573)
– Microsoft .NET Framework Service Pack 1 (KB867460) (1.0.871.2738)
– Microsoft .NET Framework SDK 1.1 Package (1.1.4322.591)
– Internet Explorer and Internet Tools Service Pack 1 (6.0.2800.1106)
MSXML 4.0 SP2 Parser and SDK

nicht auf Windows 11 installieren. Dann hab ich Lazarus installiert, aber das kann mein Programm nicht kompilieren. Was meint ihr, könnte wohl ein aktuelles Turbo-Delphi mein Programm öffnen und kompilieren? Ich meine gelesen zu haben, daß es eine aktuelle Version gibt, die für den „Hausgebrauch“ kostenlos ist.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 07:00
Die für nicht-kommerzielle Zwecke kostenlos nutzbare Version heißt jetzt "Community Edition". Programme, die mit Turbo Delphi erstellt wurden, sollten auch mit der aktuellen CE kompilierbar sein.

Größte Stolperstelle dürfte die Umstellung bei den Strings sein. Vor Delphi 2009 war der Standard-String ein "AnsiString" (d.h. 1 Byte pro Zeichen), seitdem ist es ein "UnicodeString" (d.h. 2 Byte pro Zeichen).
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#3

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 07:03
Willkommen...
Zitat:
daß es eine aktuelle Version gibt, die für den „Hausgebrauch“ kostenlos ist.
...ja gibt es. Nennt sich Community Edition. 😎 https://www.embarcadero.com/de/produ.../free-download
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 14:06
Und bezüglich Delphi-Code im Lazarus.

Erstmal arbeitet Lazarus, bzw. FreePascal, standardmäßig mit einer etwas anderen Syntax, aber das läßt sich umstellen.
https://wiki.freepascal.org/Mode_Delphi

Und natürlich sind auch nicht alle Funktionen und Komponenten 100% identisch, sowie Manches liegt auch in anderen Units,
so dass es schon passieren kann, dass man hier und da bissl was anpassen muß (mindestens).


Ich weiß garnichts, ob man Delphi-Forms auch noch konvertieren muß, denn die .DFM heißen in Lazarus ja standardmäßig .LFM
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Runningdog

Registriert seit: 9. Jan 2024
11 Beiträge
 
#5

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 15:27
Und bezüglich Delphi-Code im Lazarus.

Und natürlich sind auch nicht alle Funktionen und Komponenten 100% identisch, sowie Manches liegt auch in anderen Units,
so dass es schon passieren kann, dass man hier und da bissl was anpassen muß (mindestens).
Ja, das merke ich gerade
Habe gerade nochmal versucht, mein Programm in ein Lazarus-Projekt zu konvertieren. Der Kompiler meckert schon im interface-Teil , daß er CmAdmCtl, Mask, HTTPApp, HTTPProd nicht finden kann. Hab ich einfach mal zum Testen ausgeklammert, aber die nächste Fehlermeldung folgt schon gleich wenige Zeilen danach, wo er mit TDateTimePicker nichts anfangen kann.

Neee, das wird wohl nichts...

Habe auch schon viel zu viele Jahre nicht mehr programmiert, daß ich da jetzt auch noch eine Konvertierung hinbekommen soll. Meine nächste Idee wäre, auf einem Rechner nochmal Windows 7 zu installeieren, damit ich das alte Turbo-Delphi irgendwie zum laufen bringe. Aber der Aufwand?

Geändert von Runningdog (10. Jan 2024 um 15:31 Uhr)
  Mit Zitat antworten Zitat
Runningdog

Registriert seit: 9. Jan 2024
11 Beiträge
 
#6

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 15:34
Nachbemerkung: Bei einem ganz einfachen Programm von damals hat die Konvertierung von Turb-Delphi nach Lazarus ohne Probleme funktioniert, aber dieses kleine Programm hat auch nur ein paar dutzend Zeilen Code im Gegensatz zu dem Programm, um das es hier geht. Bin für jeden Tipp dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 16:34
Prinzipiell ist die aktuelle "Community Edition" das, was früher mal die "Starter" war und davor das kostenlose "Turbo Delphi Explorer".

Turbo Delphi war Delphi 2006 (vielleicht auch die zweite Version noch 2007)
Für 2006 gibt es bei Embarcadero nicht mehr das Setup und die ISO zum Download (nur alles ab 2007 und zusätzlich noch D7).

Unterschied ist aber, dass diese Lizenz jetzt nur noch ein Jahr läuft. Danach muß sie verlängert werden, sonst startet Delphi nicht mehr. Und gibt es eine neue CE-Version, muß sie installiert werden, da man immer nur für's Aktuelle eine Lizenz bekommt.
Ansonsten fehlt, wie schon bei den Turbos, der Commandline-Compiler und die meisten Quellcodes (PAS von RTL/VCL/FMX/usw.).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (10. Jan 2024 um 16:39 Uhr)
  Mit Zitat antworten Zitat
milo

Registriert seit: 22. Mär 2006
Ort: Schwalmtal
68 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 16:40
Ob sich der Aufwand mit Windows 7 für Dich lohnt, können wir schlecht von hier aus beurteilen. Wenn Du den Aufwand einer Lazarus und/oder einer Community Edition nicht scheust, dann würde ich es an Deiner Stelle mit einer Virtuellen Windows 7 Installation in einer VirtualBox probieren. Das hätte den Vorteil, dass Du jederzeit wieder damit arbeiten könntest um es neu zu kompilieren.

Just my 2 Cents ...
Michael Lorenz
Delphi seit FieldTest 1 ... im letzten Jahrhundert ...
  Mit Zitat antworten Zitat
Runningdog

Registriert seit: 9. Jan 2024
11 Beiträge
 
#9

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 18:26
So, ich habe jetzt das kostenlose Delphi installiert. Das alte Programm zu öffnen war kein Problem, aber laufen tut es nicht. Die Datensätze haben folgende Struktur:

Delphi-Quellcode:
type
      Daten = packed Record
      Datum : String[10];
       Text : String[50];
     Betrag : Double;
      Wert1 : String[1];
        Typ : String[1];
              End;
Und genau so werden sie auch auf dem Datenträger abgespeichert, d.h. ich kann das nicht einfach ändern, weil sonst die Daten nicht mehr gelesen werden können. Wie schon gesagt wurde, meckert der Copmpiler jetzt wegen der inkompatibilität von Char und AnsiChar:

Form1.BArt.Caption:= Decode(AktZeiger^.Satz.Typ[1]);

Fehlermeldung:
[dcc32 Fehler] Unit1.pas(563): E2010 Inkompatible Typen: 'Char' und 'AnsiChar'

Würde ich das Programm nur für mich einsetzen, könnte ich ein kleines Tool machen, um die Datensätze zu konvertieren, aber leider geht das nicht. Wie könnte ich das Problem lösen? Bitte um Entschuldigung, ist wahrscheinlich banal, aber ich habe beinahe 20 Jahre nicht mehr programmiert. Also schon mal vielen Dank.

Geändert von TBx (11. Jan 2024 um 04:00 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#10

AW: Altes Programm kompilieren

  Alt 10. Jan 2024, 18:43
Der LongString-Typ "String" war bis D2006/D2007 ein AnsiString (in D1 noch ein ShortString)
und jetzt ist es seit D2009 ein UnicodeString.

Ausnahme sind ShortStrings, welche als String-mit-Länge deklariert sind ... diese waren und bleiben ShortString.

Wie ist Decode deklariert?
Ich vermute mal mit Char als Parameter, was früher ein AnsiChar war und nun ein WideChar ist.

Bei Zuweisungen zwischen Ansi und Unicode wird Delphi standardmäßig eine (deaktivierbare) "Warnung". (dass eventuell Informationen verloren gehen)
Ist aber z.B. der Parameter "explizit" Char/WideChar (z.B. VAR-Parameter), dann gibt es keine automatische Konvertierung.
-> Wntweder den Parameter als AnsiChar deklarieren oder vor Übergabe manuell nach Char oder WideChar casten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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 09:08 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