AGB  ·  Datenschutz  ·  Impressum  







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

Delphi-Version ermitteln

Ein Thema von lxo · begonnen am 6. Apr 2023 · letzter Beitrag vom 7. Apr 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

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

AW: Delphi-Version ermitteln

  Alt 6. Apr 2023, 17:30
Alten Code mit alter DefinesUnit/INC/Sonstwas in zu neuem Delphi/Compiler und schon knallt es gern mal. (siehe das Beispiel mit der JEDI-INC)

OK, wenn diese Defines zum Code passt, dann isses schon OK.
Man darf beim Rumschreiben für ein neues Delphi nur nicht vergessen diese Unit zu aktialisieren.



Aber gerade sowas war ja das Problem, z.B. mit der Versions-INC von den JEDI.
Ein neues Delphi und schon war sowas wie {$IFDEF DelphiXEorGreater} plötzlich undefiniert, weil das Gerödel mit {$IFDEF VER132} plötzlich endete und es das neue VER789 nicht kannte.

Ähnlich wie beim RTLVersion113, wo die RTLVersion112, RTLVersion112 und RTLVersion111 weiter existieren, hätte der Compiler sowas wie die VERxxx-Defines auch aufheben können (also Delphi 11 hat die Define vom 10 und allen Vorhängern drin) ... aber egal, dank CompilerVersion und z.B. >= geht es auch ohne.
Es wäre nur einfacher, wenn es eben "eine" Konstante gäbe, anstatt den vielen RTLVersionXXX.

Willst du einen Bugfix für genau 11.3 schreiben, dann
Zitat:
{$IF Declared(RTLVersion113) and not Declared(RTLVersion114)}

und hoffen der nächste Bugfix heißt wirklich Declared(RTLVersion114) oder es wird ein Delphi 12,
aber wehe es wird eine RTLVersion113b oder RTLVersion1132 oder ... (Delphi 11.3.2)




Mit {$IF CompilerVersion > 123} wurde es dann besser, seit den ConditionalDefines, gegenüber dem alten {$IFDEF VER132} ,
aber jetzt mit RTLVersion112 wurde es wieder schlimmer. (und da das RTLVersion112 ja eigentlich vom Compiler kommen könnte, hätte man es auch als DEFINE deklarieren können, aber als CONST wird es wenigstens über UnitGrenzen durchgereicht)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Apr 2023 um 17:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.706 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi-Version ermitteln

  Alt 6. Apr 2023, 21:43
Man darf beim Rumschreiben für ein neues Delphi nur nicht vergessen diese Unit zu aktialisieren.
Man kann ja die obige Unit auch um so etwas ergänzen:

Delphi-Quellcode:
{$IF CompilerVersion > 35}
Du musst diese Unit anpassen!
{$IFEND}
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Delphi-Version ermitteln

  Alt 7. Apr 2023, 00:25
Drum meinte ich ja, dass es mit CompilerVersion schon besser wurde, da man damit auch auf zukünftige Delphis prüfen kann (nicht direkt auf eine bestimmte noch unbekannte Version, aber auf Alles >= dem letzten Aktuellen),
ohne ALLE bereits bekannten Versionen prüfen zu müssen (sonst weiß man ja nicht, ob älter oder neue, bzw. vergessen zu prüfen).

Aber mit solchem Mist wie RTLVersion113 wurde das alles wieder zur Minna gemacht und rutsch logisch zurück ins Grauen der alten VERxxx-Defines.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Apr 2023 um 00:27 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:47 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