Version immer anzeigen [solved]

Rund um die LCL und andere Komponenten
Antworten
wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Version immer anzeigen [solved]

Beitrag von wbeppler »

hallo

ich hatte frueher als ich noch foxpro gemacht habe immer in der titelzeile die versionsnummer anzeigen lassen und versuche das nun in lazarus auch hin zu bekommen

aber es will nicht

Code: Alles auswählen

var
  FileVerInfo: TFileVersionInfo;
begin
  if Paramcount=0 then
  begin
    showmessage('Missing executable filename parameters. Aborting.');
    halt(1);
  end;
  FileVerInfo:=TFileVersionInfo.Create(nil);
  try
    FileVerInfo.FileName:=paramstr(1);
    showmessage(FileVerInfo.getVersionSetting('FileVersion'));
...
ODER

Code: Alles auswählen

...
   form.caption := FileVerInfo.getVersionSetting('FileVersion')
  finally
    FileVerInfo.Free;
  end;
...
 
aber es wird einfach nichts angezeigt, ich hab in anderen foren irgendwas mit READfileversion gelesen, muss ich noch was anstossen dass es eingelesen wird ? hat jemand ne idee ?

gruss und dank vorab

w :-)
Zuletzt geändert von wbeppler am Fr 17. Apr 2015, 09:29, insgesamt 2-mal geändert.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Version immer anzeigen

Beitrag von Socke »

wbeppler hat geschrieben: if Paramcount=0 then
Unter Windows liefert ParamStr(0) immer den Exe-Namen - unabhängig von der Anzahl der Parameter.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Version immer anzeigen

Beitrag von shokwave »

Das Beispiel in der Doku sieht genauso aus. http://wiki.lazarus.freepascal.org/Show ... nd_Company

@wbeppler du hast nur

Code: Alles auswählen

 FileVerInfo.ReadFileInfo;
vergessen.
mfg Ingo

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Version immer anzeigen

Beitrag von wbeppler »

ja und genau da kommt dann folgender error

unit1.pas(544,17) Error: identifier idents no member "ReadFileInfo"

wenn ich
FileVerInfo.
schreibe, so kommt nach eingabe des PUNKT auch das Read.... nicht zur auswahl

ich hab den code aus der anleitung kopiert, sollte also gehen aber wie kommen die in der anleitung auf eine procedure die gar nicht drin ist ? oder bin ich blind ?

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Version immer anzeigen

Beitrag von shokwave »

Dann hast du wahrscheinlich keinen aktuellen FPC (trunk) oder benutzt eine stabile Version (2.6.x). Mein nicht ganz taufrischer r48511 kennt die Funktion.

Wie es mit den stabilen Versionen geht steht auch im Link.
mfg Ingo

k.meier
Beiträge: 19
Registriert: So 12. Apr 2015, 14:54

Re: Version immer anzeigen

Beitrag von k.meier »

>> ich hab den code aus der anleitung kopiert, sollte also gehen aber wie kommen die in der anleitung auf eine procedure die gar nicht drin ist ?

Lazarus Live ;-)
wir sind die Meiers ;-)

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Version immer anzeigen

Beitrag von wbeppler »

ich habe fpc 2.6.4

was fehlt noch ? wie kann ich es testen ?

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Version immer anzeigen

Beitrag von shokwave »

Die Funktion die du benutzen willst, funktioniert nicht mit der 2.6.4. Wie in dem Link steht kannst du die Infos wie folgt abfragen.

Code: Alles auswählen

uses ..., resource, versiontypes, versionresource;
 
...
 
FUNCTION resourceVersionInfo: STRING;
 
 (* Unlike most of AboutText (below), this takes significant activity at run-    *)
 (* time to extract version/release/build numbers from resource information      *)
 (* appended to the binary.                                                      *)
 
 VAR     Stream: TResourceStream;
         vr: TVersionResource;
         fi: TVersionFixedInfo;
 
 BEGIN
   RESULT:= '';
   TRY
 
 (* This raises an exception if version info has not been incorporated into the  *)
 (* binary (Lazarus Project -> Project Options -> Version Info -> Version        *)
 (* numbering).                                                                  *)
 
     Stream:= TResourceStream.CreateFromID(HINSTANCE, 1, PChar(RT_VERSION));
     TRY
       vr:= TVersionResource.Create;
       TRY
         vr.SetCustomRawDataStream(Stream);
         fi:= vr.FixedInfo;
         RESULT := 'Version ' + IntToStr(fi.FileVersion[0]) + '.' + IntToStr(fi.FileVersion[1]) +
                ' release ' + IntToStr(fi.FileVersion[2]) + ' build ' + IntToStr(fi.FileVersion[3]) + LineEnding;
         vr.SetCustomRawDataStream(nil)
       FINALLY
         vr.Free
       END
     FINALLY
       Stream.Free
     END
   EXCEPT
   END
 END { resourceVersionInfo } ;
 
...
 
 
Das ist die Funktion aus dem Link, ich habe nur ein "eol" durch "LineEnding" ersetzt und die benötigten uses dazu geschrieben.

Hoffe das dir das weiter hilft.
mfg Ingo

wp_xyz
Beiträge: 5147
Registriert: Fr 8. Apr 2011, 09:01

Re: Version immer anzeigen

Beitrag von wp_xyz »

Nö - bei mir geht dieser Code einwandfrei (und ein ReadFileInfo gibt es auch in fileinfo bei meinem 2.6.4 nicht - wo soll das denn sein?):

Code: Alles auswählen

 
procedure TForm1.Button1Click(Sender: TObject);
var
  FileVerInfo: TFIleVersionInfo;
begin
  FileVerInfo := TFIleVersionInfo.Create(nil);
  try
    FileVerInfo.FileName := ParamStr(0);   // wichtig die 0 (statt 1) - ParamStr(0) ist der Name der Programm-Exe
    Caption := FileVerInfo.getVersionSetting('FileVersion');
    // oder: ShowMessage(FileVerInfo.GetVersionSetting('FileVersion'));
  finally
    FileVerInfo.Free;
  end;
end; 
Im Projekt müssen natürlich Versionsinformationen definiert sein! (Hatte ich bei meinem Test-Projekt zunächst vergessen, und dann kam nichts. wbeppler, vielleicht auch du?)

shokwave
Beiträge: 475
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Version immer anzeigen

Beitrag von shokwave »

Kann es sein, das das nur unter Windows mit der 2.6.4 geht? http://wiki.lazarus.freepascal.org/User ... endent_way
So wie ich das lese geht es erst im trunk plattformunabhängig und da benötigt man das ReadFileInfo.
mfg Ingo

wp_xyz
Beiträge: 5147
Registriert: Fr 8. Apr 2011, 09:01

Re: Version immer anzeigen

Beitrag von wp_xyz »

Richtig - im Kopf von fileinfo steht "uses Windows..."

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Version immer anzeigen

Beitrag von wbeppler »

ja, ... ich hab nun svn installiert und 2 fragen

ich weiss ins eine feld muss http://svn.freepascal.org/svn/lazarus/trunk
aber was muss ins andere feld ? ich hab lazarus in C:/lazarus

stimmt das ?

frage 2 : was ist mit "user changes trunk" gemeint ? was die einzelnen worte uebersetzt bedeuten ist klar (sogar mir) aber sind das die staendigen aenderungen ? denn genau was da steht haette ich gesucht... na mal gut dass ich das hier erfahre, DANKE drum.

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Version immer anzeigen

Beitrag von wbeppler »

so ich habs druchlaufen lassen, am ende stand da 48762 oder so was, wenn ich nun mein lazarus starte und info mache kommt aber 46529

habs ich falsch gemacht ??

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Version immer anzeigen

Beitrag von wbeppler »

so, nun hab ich halt getFileVersion genommen
die version wird damit wenigstens angezeigt

ABER

trotz einstellung im Projekt, automatisch erhoehen, passiert nix, es kommt immer die selbe nummer. und in der ide zaehlt auch nix hoch

WARUM?

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Version immer anzeigen

Beitrag von wbeppler »

habs schon, sauberes neukompilieren und nicht nur die gruene taste

bleibt die frage wegen dem svn, kann ich aber erst mal googeln, hat ja mit der version anzeigen nix am hut

DANKE an alle

Antworten