Versão do sistema...
Na propriedade de um projeto a gente pode controlar a versão do sistema. Gostaria de saber se é possível controlar a versão com apenas no formato do exemplo abaixo:
Atual: 2.0.0.1
Colocar no formato tipo: 2.0
Atual: 2.0.0.1
Colocar no formato tipo: 2.0
Universodosoftware
Curtidas 0
Respostas
Motta
23/09/2004
Segue-se o padrão windows (version,minor version,release,build), o que vc pode fazer é só exibir até a minor, eu particularmente sigo o padrão pois é abrangente e cobre todos os casos possíveis de manutenção
GOSTEI 0
Galodoido
23/09/2004
Olá pessoal!
Já que o assunto é versão, alguém sabe como faço para extrair esta versão em tempo de execução do arquivo? Exibir na tela inicial por exemplo, sem precisar alterar. Através de uma função ou outra coisa parecida?
Já que o assunto é versão, alguém sabe como faço para extrair esta versão em tempo de execução do arquivo? Exibir na tela inicial por exemplo, sem precisar alterar. Através de uma função ou outra coisa parecida?
GOSTEI 0
Gandalf.nho
23/09/2004
Eu uso um componente chamado EPInfo. Procure em [url]http://www.chez.com/epedrazzi[/url]
GOSTEI 0
Galodoido
23/09/2004
Eu uso um componente chamado EPInfo. Procure em http://www.chez.com/epedrazzi
gandalf.nho
Não Consigo acessar o site.
O componente é gratuito? Poderia enviá-lo para meu e-mail?
antonio@officeinformatica.com.br
Desde já, obrigado.
gandalf.nho
Não Consigo acessar o site.
O componente é gratuito? Poderia enviá-lo para meu e-mail?
antonio@officeinformatica.com.br
Desde já, obrigado.
GOSTEI 0
Gandalf.nho
23/09/2004
Desculpe, não sabia que o site não existia mais. Mas descolei um link pra pegar ele Torry´s [url]http://www.torry.net/vcl/system/versioninfo/info.zip[/url]
GOSTEI 0
Tpoeta
23/09/2004
Opa gente, gostaria quem me esclarececem uma dúvida, se possível...
É que vi vários tópicos deste tipo por aqui, mas ainda não achei como eu faço pra colocar num LABEL.CAPTION por exemplo, a versão que está lá na informações do Delphi...
Alguém sabe? Só pode ser usando esse componente?
Obrigado
É que vi vários tópicos deste tipo por aqui, mas ainda não achei como eu faço pra colocar num LABEL.CAPTION por exemplo, a versão que está lá na informações do Delphi...
Alguém sabe? Só pode ser usando esse componente?
Obrigado
GOSTEI 0
Motta
23/09/2004
O comp. citado deve ter um método que retorna uma string com a versão.
GOSTEI 0
Guilherme
23/09/2004
tenta getversion !!!!
mas nao sei como trasformar os dados em string
mas nao sei como trasformar os dados em string
GOSTEI 0
Gandalf.nho
23/09/2004
No caso do EPInfo eu faço assim para obter a versão:
EPInfoExe1.ExeName := Application.ExeName; EPInfoExe1.Execute; Label1.Caption := EPInfoExe1.FileVersion;
GOSTEI 0
Lindomar.des
23/09/2004
Colega,
Uso o seguinte código:
function Versao(aplicacao:string):string;
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
V1, V2, V3, V4: Word;
Prog : string;
begin
Prog := aplicacao;
VerInfoSize := GetFileVersionInfoSize(PChar(prog), Dummy);
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(prog), 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);
result := Copy (IntToStr (100 + v1), 3, 2) + ´.´ + Copy (IntToStr (100 + v2), 3, 2) + ´.´ + Copy (IntToStr (100 + v3), 3, 2) + ´.´ + Copy (IntToStr (100 + v4), length(inttostr(v4)),length(inttostr(v4)));
end;
Chamo da seguinte forma:
Label1.caption := Versao(Application.Exename);
obs.
para funcionar corretamente habilite a opção:
[b]include version information in project[/b] na aba [b]Version info[/b] nas opções do projeto.
Espero ter ajudado.
Uso o seguinte código:
function Versao(aplicacao:string):string;
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
V1, V2, V3, V4: Word;
Prog : string;
begin
Prog := aplicacao;
VerInfoSize := GetFileVersionInfoSize(PChar(prog), Dummy);
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(prog), 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);
result := Copy (IntToStr (100 + v1), 3, 2) + ´.´ + Copy (IntToStr (100 + v2), 3, 2) + ´.´ + Copy (IntToStr (100 + v3), 3, 2) + ´.´ + Copy (IntToStr (100 + v4), length(inttostr(v4)),length(inttostr(v4)));
end;
Chamo da seguinte forma:
Label1.caption := Versao(Application.Exename);
obs.
para funcionar corretamente habilite a opção:
[b]include version information in project[/b] na aba [b]Version info[/b] nas opções do projeto.
Espero ter ajudado.
GOSTEI 0
Tpoeta
23/09/2004
Opa pessoal, obrigado pelas respostas todas. Acabei usando o seguinte código (achei aqui no fórum) para conseguir capturar a versão:
talvez possa ser útil a mais alguém. :lol:
function GetFileVersion(const Filename: String): String; type TVersionInfo = packed record Dummy: array[0..7] of Byte; V2, V1, V4, V3: Word; end; var Zero, Size: Cardinal; Data: Pointer; VersionInfo: ^TVersionInfo; begin Size := GetFileVersionInfoSize(Pointer(Filename), Zero); if Size = 0 then Result := ´´ else begin GetMem(Data, Size); try GetFileVersionInfo(Pointer(Filename), 0, Size, Data); VerQueryValue(Data, ´\´, Pointer(VersionInfo), Size); Result := Format(´¬d.¬d.¬d.¬d´, [VersionInfo.V1, VersionInfo.V2, VersionInfo.V3, VersionInfo.V4]); finally FreeMem(Data); end; end; end; procedure TfrmSobre.FormShow(Sender: TObject); begin lblVersao.Caption := ´Versão: ´ + GetFileVersion(Application.ExeName); end;
talvez possa ser útil a mais alguém. :lol:
GOSTEI 0
Beppe
23/09/2004
Pesquisar é tudo...(a propósito...eu pesquisei e vi escrevi esta função em Nov/03) :lol:
Eu modifiquei a função para que atendesse ao requisito do universodosoftware. Agora existe um parâmetro Partes que indica quantos campos da versão são necessários. No caso dele é 2.
Eu modifiquei a função para que atendesse ao requisito do universodosoftware. Agora existe um parâmetro Partes que indica quantos campos da versão são necessários. No caso dele é 2.
function GetFileVersion(const Filename: String; Partes: Integer): String; type TVersionInfo = packed record Dummy: array[0..7] of Byte; V: array[0..3] of Word; // atenção: os campos são trocados dentro de um dword V2, V1, V4, V3: Word; end; var Zero, Size: Cardinal; Data: Pointer; VersionInfo: ^TVersionInfo; I: Integer; begin Result := ´´; Size := GetFileVersionInfoSize(Pointer(Filename), Zero); if Size > 0 then begin GetMem(Data, Size); try GetFileVersionInfo(Pointer(Filename), 0, Size, Data); VerQueryValue(Data, ´\´, Pointer(VersionInfo), Size); for I := 0 to Partes - 1 do Result := Result + IntToStr(VersionInfo.V[I and not 1 or Ord(not Odd(I))]) + ´.´; Delete(Result, Length(Result), 1); finally FreeMem(Data); end; end; end; procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin for I := 0 to 4 do Memo1.Lines.Add(GetFileVersion(Application.ExeName, I)); end;
GOSTEI 0