教えていただきたいのですが、
プロジェクトのオプションの中でパージョン情報のタグがありますが、
ここでバージョン番号を含めるにしてバージョン登録したものを
Delphiの処理の中のこのパージョン情報を取込むことが可能でしょうか。
Delphiのヘルプにも書かれているとは思いますが、
GetFilevVersionInfo関数とVerQueryValue関数を使えば
自身のEXEの情報を取得できます。
「Delphi バージョン情報」あたりで検索すればそのもの
ズバリの回答がありましたので、それを参照してください。
誤:GetFilevVersionInfo
↓
正:GetFileVersionInfo
誤記修正です。
ここの
function GetFileVersionInformation(FileName, TitleKey: String): String;
を使ってください。
今作成しているアプリでバージョン(リビジョン)を表示して
使用している方と内容が合うように、
バージョン番号を表示するようにしています。
以下のようにするとOKでした。
//バージョン番号の取得(自動付加バージョン番号)
function GetFileVersion(): string;
var
Size, SizeFileInfo, Ret: DWORD; pData, pInfo: Pointer;
begin
Size := GetFileVersionInfoSize(PCHAR(Application.ExeName), Ret);
GetMem(pData, Size);
try
Assert(GetFileVersionInfo(PCHAR(Application.Exename), 0, Size, pData));
Assert(VerQueryValue(pData,
PCHAR('\StringFileInfo\041103A4\FileVersion'), pInfo,
SizeFileInfo));
Result := PCHAR(pInfo);
finally
FreeMem(pData);
end;
end;
どこかで・・・・メインフォームかな???
Label_Ver.Caption := 'Ver '+ GetFileVersion;
邪様、Fusa様、maru3様
有難うございました。一から十まで教えて頂きました。
助かりました。
>>maru3さん
ライブラリを作成するという意味ではより汎用性を高めると
再利用がしやすくなりますよ。
function GetFileVersion(): string;
の中にApplication.Exenameが入っていらっしゃるので
function GetFileVersion(FileName: string): string;
として、Application.Exenameを指定しているところを
FileNameで指定して
function GetApplicationVersion(Application.ExeName): string;
と書くと、
元々の機能は
Label_Ver.Caption := 'Ver '+ GetApplicationVersion;
として書けますし、他のexeファイルのversionを調べたい場合は
Label_Ver.Caption := 'Ver ' + GetFileVersion('C:\...\notepad.exe');
このように書けて汎用性が高まります。
手前みそですがうちのは
Label1.Caption := ApplicationTitlePlusVersion('アプリ名', ' ver ', vfMajorMinor);
と書くことで、メジャー/マイナー/リリース、どこまでのバージョン情報を追加するかを指定できます。
[パ]ージョン情報?かよ!
↑ナイス突っ込み^^
ツイート | ![]() |