Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como obtengo la version de mi aplicacion? (https://www.clubdelphi.com/foros/showthread.php?t=17556)

squenda 13-01-2005 06:24:18

como obtengo la version de mi aplicacion?
 
Hola a todos, mi problema es el siguiente:

En delphi 6 en la opcion "Project -> Options" en la pestaña "Version Info" habilité las casillas "Include Version Information In Project" y "Auto-Increment Builder Number" para que cada que construya mi aplicacion me incremente y me guarde la version automaticamente, el problema es que quiero en tiempo de ejecucion mediante un boton obtener dicha informacion ya sea en un mensaje o en un TMemo, alguien sabe como? Gracias.

Saludos.

Ohcan 13-01-2005 09:40:25

Hola squenda

Puede usar esto:

Código Delphi [-]
procedure GetBuildInfo(var V1, V2, V3, V4: Word);
var
   VerInfoSize,
   VerValueSize,
   Dummy:DWORD;
   VerInfo:Pointer;
   VerValue:PVSFixedFileInfo;
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
      V1 := dwFileVersionMS shr 16;
      V2 := dwFileVersionMS and $FFFF;
      V3 := dwFileVersionLS shr 16;
      V4 := dwFileVersionLS and $FFFF;
   end;
 FreeMem(VerInfo, VerInfoSize);
end;
 
function Version:string;
var
v1,v2,v3,v4:Word;
begin
try
//Cogemos el número de versión de la aplicación
GetBuildInfo(v1,v2,v3,v4);
//Sólo ponemos el tercer dígito (el control de errores) si es distinto de cero
Result := IntToStr(v1)+'.'+IntToStr(v2);
if v3<>0 then Result := Result + '.' + IntToStr(v3);
except
Result := '';
end;
end;

Saludos

squenda 13-01-2005 20:59:06

Gracias por tu respuesta Ohcan, funciona muy bien, el problema es que me muestra efectivamente la version pero solo con tres caracteres ejemplo: "2.1" y yo necesito que me muestre todos los caracteres ejemplo "2.1.0.1".

Gracias y saludos

marcoszorrilla 13-01-2005 22:26:04

Haz este cambio:
Código Delphi [-]
if v3<>0 then Result := Result + '.' + IntToStr(v3)+'.' + IntToStr(v4);
except
Un Saludo.

squenda 13-01-2005 23:33:40

Gracias, ya funciona como lo necesitaba, lo que hice fue quitar la condicion If y al Result le asigne los cuatro valores

try
GetBuildInfo(v1,v2,v3,v4);
Result := IntToStr(v1) + '.' + IntToStr(v2) + '.' + IntToStr(v3) + '.' + IntToStr(v4);
except
Result := '';
end;


Muchar Gracias

Saludos


La franja horaria es GMT +2. Ahora son las 13:20:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi