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 Seltsame Auffälle bei der Versionsinfo-Funktion (https://www.delphipraxis.net/203628-seltsame-auffaelle-bei-der-versionsinfo-funktion.html)

ISMIRSCHLECHT 6. Mär 2020 09:42

Seltsame Auffälle bei der Versionsinfo-Funktion
 
Moin,

ich benutze Delphi 10.1 (Berlin) unter Win 7 32bit.
Natürlich sollte jedes ernsthafte Programm heutzutage eine Programmversion anzeigen.
In den Foren schwirrt es je von Funktionen, das ist nicht das Problem.
Nun kommt es aber zu zufälligen "Aussetzern" dieser Funktion.
Szenario : Ich setze die Versionsnummer auf 1.2.3.4 in den Optionen, lasse einkompilieren, klappt.
Auch im Eigenschaftsdialog des Explorers (Alt-Enter) wird die richtige Version angezeigt.

Ein paar Tage später erhöhe ich auf z. Bsp. 1.2.3.6, kompiliere etc. JETZT zeigt die nutzerdefinierte Funktion (s.u.) immer noch 1.2.3.4 an,
und dabei bleibt es auch. Der Eigenschaftsdialog zeigt die erhöhte Version 1.2.3.6 an.

Nach etlichen Tagen und vor ellam Compilerläufen wird die Versionsnummer plötzlich wieder aktualisiert, für eine Weile ...
GOTO Anfang...

Das ist sehr ärgerlich, weil ich das nicht zum Spaß sondern beruflich mache.
Könnte es an Delphi liegen ?
Und hier die Funktion, auch aus der DP:

Delphi-Quellcode:
function GCVer: String;
var
  VerInfoSize: DWORD;
  VerInfo: Pointer;
  VerValueSize: DWORD;
  VerValue: PVSFixedFileInfo;
  Dummy: DWORD;
begin
  VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
  GetMem(VerInfo, VerInfoSize);
  GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
  VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
  with VerValue^ do begin
    Result := 'Version '+IntToStr(dwFileVersionMS shr 16);
    Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF);
    Result := Result + '.' + IntToStr(dwFileVersionLS shr 16);
    Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF);

  end;
  FreeMem(VerInfo, VerInfoSize);
  end;
Gruß ism

DasWolf 6. Mär 2020 10:25

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Versuch mal aus

Delphi-Quellcode:
GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);

folgendes zu machen
Delphi-Quellcode:
GetFileVersionInfo(PChar(ParamStr(0)), Dummy, VerInfoSize, VerInfo);

Luckie 6. Mär 2020 10:34

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Eventuell hat der Explorer noch die alte Version im Cache.

Bernhard Geyer 6. Mär 2020 10:43

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Für Version setzen nutzen wir DDevExtensions um nicht mit den "sehr umfangreichen" getrennten Versioneinstellungen für Release/Debug/32/64-Bit erschlagen zu werden.
Haben hier bei 10.2 seit der Nutzung 0% damit.

Klaus01 6. Mär 2020 10:43

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Zitat:

Zitat von Luckie (Beitrag 1459031)
Eventuell hat der Explorer noch die alte Version im Cache.

Laut TE zeigt der Explorer die richtigen Daten an.

Grüße
Klaus

ISMIRSCHLECHT 6. Mär 2020 11:09

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
So isses.
ism

Luckie 6. Mär 2020 11:14

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Zitat:

Zitat von Klaus01 (Beitrag 1459034)
Zitat:

Zitat von Luckie (Beitrag 1459031)
Eventuell hat der Explorer noch die alte Version im Cache.

Laut TE zeigt der Explorer die richtigen Daten an.

Grüße
Klaus

Oh. Ich hatte es umgekehrt gelesen. Mein Fehler.

ISMIRSCHLECHT 6. Mär 2020 11:16

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Die Variante mit paramstr(0) habe ich auch proboert,
sie erspart einem ja das
Delphi-Quellcode:
Application.Exename
Identisches Verhalten.
ism

CCRDude 6. Mär 2020 11:55

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Da gibt es zwei typische Verwechslungsmöglichkeiten:

* Es gibt (in der Versionresource) eine FileVersion und eine ProductVersion.
* Es gibt sowohl numerische als auch Textfelder für die Version.

Vielleicht hilft ja ein Blick mit ResHacker o.ä. in die Versionsresource in der Datei, um zu identifieren, welches Feld genau hinterherhinken könnte.

Uwe Raabe 6. Mär 2020 11:57

AW: Seltsame Auffälle bei der Versionsinfo-Funktion
 
Schau dir mal die Funktion GetFileVersion aus System.SysUtils an. Die liefert zwar nur den höherwertigen Part, sollte aber problemlos anpassbar sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf