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