このブログはLazarus(FreePascal)アドベントカレンダー9日目の記事です。
Delphiでアプリケーションのバージョン情報を取得するには、FileInfoユニットにあるTVersionInfoクラスを用います。
procedure TAboutDialog.FormCreate(Sender: TObject); var VersionInfo: TVersionInfo; begin VersionInfo := TVersionInfo.Create; try VersionInfo.Load(HINSTANCE); Self.VersionString.Caption:=Format('Version %d.%d.%d.%d', [VersionInfo.FixedInfo.FileVersion[0], VersionInfo.FixedInfo.FileVersion[1], VersionInfo.FixedInfo.FileVersion[2], VersionInfo.FixedInfo.FileVersion[3]]); finally VersionInfo.Free; end; end;
もちろん事前にプロジェクトのオプションより、バージョン番号を設定しておく必要があります。
TVersionInfo.VersionInfo.FixedInfo.FileVersionプロパティにバージョン番号が入っています。配列の要素は頭からメジャーバージョン、マイナーバージョン、リビジョン、ビルド番号となっています。
Lazarusにはコンパイルの度にビルド番号をインクリメントするというオプションがあります。これをチェックしておくと実行メニューの構築を実行したときに1インクリメントされます(コンパイルや実行ではダメなようです)。
個人的にはMicrosoft風に日付に関連する値にしてみたいところですが、このへんはツールを作るなりなんなりして対応するしかなさそうですね。