Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programmversion wird nicht richtig übernommen?! (https://www.delphipraxis.net/116449-programmversion-wird-nicht-richtig-uebernommen.html)

Svenkan 29. Jun 2008 16:30


Programmversion wird nicht richtig übernommen?!
 
Hallo!
Für ein neues Online-Update benötige ich die in den Projektoptionen definierbaren Programmversionen. Ich kann diese auch ganz normal einstellen und sie werden auch gespeichert.
Wenn ich diese aber nun im Programm mit


Delphi-Quellcode:
AktVersion.Caption:=FileVersionInfo(Application.Exename).FileVersionOriginal;
ausgeben lasse, erscheint hier immer nur '1.0.0.0'.
Allerdings sind....

Major: 1
Minor: 2
Release: 8
Build: 5

Hat jemand vlt einen Rat dazu?

PS: Ich habe es gerade mal probiert, nachdem ich die *.res und *.dof gelöscht habe, was allerdings keinerlei andere Ergebnisse erbracht hat.

Der.Kaktus 29. Jun 2008 16:53

Re: Programmversion wird nicht richtig übernommen?!
 
Hallo,

schau doch mal hier --> Fileversion

Svenkan 29. Jun 2008 17:06

Re: Programmversion wird nicht richtig übernommen?!
 
Ich habe es nun mal mit der Funktion

Delphi-Quellcode:
function GetCurrentVersion: 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);
  end;
  FreeMem(VerInfo, VerInfoSize);
end;
versucht. Aber auch hier bekomme ich das Ergebnis '1.0.0'.

Der.Kaktus 29. Jun 2008 17:13

Re: Programmversion wird nicht richtig übernommen?!
 
Zitat:

Zitat von Svenkan
Ich habe es nun mal mit der Funktion

Delphi-Quellcode:
function GetCurrentVersion: 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);
  end;
  FreeMem(VerInfo, VerInfoSize);
end;
versucht. Aber auch hier bekomme ich das Ergebnis '1.0.0'.

Hast Du den Anhang in dem Thread mal von Shark genommen?

Svenkan 29. Jun 2008 17:20

Re: Programmversion wird nicht richtig übernommen?!
 
Ne, das noch nicht, aber ich habe die Funktion gerade in der Demo der Update-Komponente TWebUpdate überprüft und dort funktioniert sie wunderbar.

rotfc 29. Jun 2008 18:42

Re: Programmversion wird nicht richtig übernommen?!
 
Was willst Du in Deinem Programm eigentlich *wirklich* drin haben?

Die automatische Built-Version des Compilers oder eine selbstbestimmte Versionsnummer, die über einen Server (ggfs. im Internet) abfragbar ist?

Luckie 30. Jun 2008 08:14

Re: Programmversion wird nicht richtig übernommen?!
 
Zitat:

Zitat von Svenkan
Ich habe es nun mal mit der Funktion

Delphi-Quellcode:
function GetCurrentVersion: 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);
  end;
  FreeMem(VerInfo, VerInfoSize);
end;
versucht. Aber auch hier bekomme ich das Ergebnis '1.0.0'.

Achtung Geistesblitz von Luckie um den Fehler zu finden: Debug die Funktion und geh in Einzelschritten durch.

Svenkan 30. Jun 2008 16:35

Re: Programmversion wird nicht richtig übernommen?!
 
Zitat:

Zitat von rotfc
Was willst Du in Deinem Programm eigentlich *wirklich* drin haben?

Die automatische Built-Version des Compilers oder eine selbstbestimmte Versionsnummer, die über einen Server (ggfs. im Internet) abfragbar ist?

Ich möchte selbst in den Optionen die Nummer 'durchschalten'. Auf dem Server liegt eine INI-Datei mit den Angaben über die jeweils neuste Version und diese beiden sollen dann verglichen werden.

Svenkan 1. Jul 2008 11:45

Re: Programmversion wird nicht richtig übernommen?!
 
Ich habe mir gerade nochmal alles genauer angeschaut und mir fällt auf, dass in den Dateieigenschaften unter 'Dateiversion' ebenfalls '1.0.0.0' eingetragen wird!


/edit: Ich habe alles in ein neues Projekt gepackt und nun funktionierts!


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