Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi-Version anzeigen (https://www.delphipraxis.net/213885-delphi-version-anzeigen.html)

Maekkelrajter 14. Okt 2023 14:35

Delphi-Version anzeigen
 
Ich möchte gerne in meinem Programm die Delphi-Version anzeigen, mit der das Projekt zuletzt compiliert wurde. Meine aktuelle Version ist 11.3 (CE). 'Compilerversion' und 'RTLVersion' ist 35, woraus man schließen kann, dass es sich um die Version 11 handelt (die wohl ursprünglich 10.5 heißen sollte).
Wie aber kann man zur Laufzeit auch das aktuelle Update ermitteln, sodass als Version '11.3' erscheint?

Gruß LP

Andreas13 14. Okt 2023 14:57

AW: Delphi-Version anzeigen
 
Hallo,
in der Bibliothek util_2018-11-27.zip von ehemaligem Gammatester (Wolfgang Ehrhardt) gibt es die Datei
compvers.pas
genau für diesen Zweck.

Du müßtest nur die fehlenden neuesten Compiler-Versionen ergänzend hinzufügen. :)

Alle seine exzellenten Bibliotheken sind zu finden
https://github.com/maelh/www.wolfgang-ehrhardt.de
und/oder
http://web.archive.org/web/*/wolfgang-ehrhardt.de

Sherlock 14. Okt 2023 15:13

AW: Delphi-Version anzeigen
 
Also es gibt da verschiedene total clevere Methoden sowas nachträglich extern zu machen. Aber wenn Du von vorneherein weißt, daß Du sowas brauchst, dann geht ein Weg über die System.CompilerVersion. Beispielcode ist in dem Link.

Uwe Raabe 14. Okt 2023 22:13

AW: Delphi-Version anzeigen
 
Zitat:

Zitat von Maekkelrajter (Beitrag 1528071)
Meine aktuelle Version ist 11.3 (CE). 'Compilerversion' und 'RTLVersion' ist 35, woraus man schließen kann, dass es sich um die Version 11 handelt (die wohl ursprünglich 10.5 heißen sollte).
Wie aber kann man zur Laufzeit auch das aktuelle Update ermitteln, sodass als Version '11.3' erscheint?


Zusätzlich zu RTLVersion = 35.0 sind in 11.3 noch die Konstanten RTLVersion111, RTLVersion112 und RTLVersion113 deklariert. Damit lassen sich die Unterversionen prüfen. Da aber in 11.2 das RTLVersion113 noch nicht bekannt war, in 11.1 auch das RTLVersion112 und in 11.0 keines der drei, kann man diese Konstanten nicht im compilierten Code prüfen. Stattdessen prüft man das über ein declared.
Delphi-Quellcode:
  if RTLVersion = 35.0 then begin
    DelphiVersion := '11';
{$IF Declared(RTLVersion111)}
    DelphiVersion := '11.1';
{$ENDIF} 
{$IF Declared(RTLVersion112)}
    DelphiVersion := '11.2';
{$ENDIF} 
{$IF Declared(RTLVersion113)}
    DelphiVersion := '11.3';
{$ENDIF} 
  end;

Maekkelrajter 15. Okt 2023 11:26

AW: Delphi-Version anzeigen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1528086)
Zusätzlich zu RTLVersion = 35.0 sind in 11.3 noch die Konstanten RTLVersion111, RTLVersion112 und RTLVersion113 deklariert. Damit lassen sich die Unterversionen prüfen. Da aber in 11.2 das RTLVersion113 noch nicht bekannt war, in 11.1 auch das RTLVersion112 und in 11.0 keines der drei, kann man diese Konstanten nicht im compilierten Code prüfen. Stattdessen prüft man das über ein declared.
Delphi-Quellcode:
  if RTLVersion = 35.0 then begin
    DelphiVersion := '11';
{$IF Declared(RTLVersion111)}
    DelphiVersion := '11.1';
{$ENDIF} 
{$IF Declared(RTLVersion112)}
    DelphiVersion := '11.2';
{$ENDIF} 
{$IF Declared(RTLVersion113)}
    DelphiVersion := '11.3';
{$ENDIF} 
  end;

Ja, genauso funktioniert's wunschgemäß. Danke!

Gruß LP

lxo 16. Okt 2023 07:51

AW: Delphi-Version anzeigen
 
Hier alle Delphi-Versionen ab Delphi XE
ältere Versionen, siehe https://delphidabbler.com/notes/version-numbers
Delphi-Quellcode:
{$IF False}
{$ELSEIF (CompilerVersion = 35) and Declared(RTLVersion113)} cDelphiVersion = '11.3 Alexandria';
{$ELSEIF (CompilerVersion = 35) and Declared(RTLVersion112)} cDelphiVersion = '11.2 Alexandria';
{$ELSEIF (CompilerVersion = 35) and Declared(RTLVersion111)} cDelphiVersion = '11.1 Alexandria';
{$ELSEIF CompilerVersion = 35} cDelphiVersion = '11 Alexandria';
{$ELSEIF CompilerVersion = 34} cDelphiVersion = '10.4 Sydney';
{$ELSEIF CompilerVersion = 33} cDelphiVersion = '10.3 Rio';
{$ELSEIF CompilerVersion = 32} cDelphiVersion = '10.2 Tokyo';
{$ELSEIF CompilerVersion = 31} cDelphiVersion = '10.1 Berlin';
{$ELSEIF CompilerVersion = 30} cDelphiVersion = '10 Seattle';
{$ELSEIF CompilerVersion = 29} cDelphiVersion = 'XE8';
{$ELSEIF CompilerVersion = 28} cDelphiVersion = 'XE7';
{$ELSEIF CompilerVersion = 27} cDelphiVersion = 'XE6';
{$ELSEIF CompilerVersion = 26} cDelphiVersion = 'XE5';
{$ELSEIF CompilerVersion = 25} cDelphiVersion = 'XE4';
{$ELSEIF CompilerVersion = 24} cDelphiVersion = 'XE3';
{$ELSEIF CompilerVersion = 23} cDelphiVersion = 'XE2';
{$ELSEIF CompilerVersion = 22} cDelphiVersion = 'XE';
{$ELSE} cDelphiVersion = 'Unbekannt';
{$ENDIF}


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 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