unit fROAbout; {$IFNDEF MSWINDOWS} {$I ../RemObjects.inc} {$ELSE} {$I ..\RemObjects.inc} {$ENDIF} interface uses {$IFDEF MSWINDOWS}Windows,{$ENDIF} {$IFDEF FPC}LCLIntf, LResources,{$ELSE}Messages,{$ENDIF} SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TAboutForm = class(TForm) Image1: TImage; Label1: TLabel; Label3: TLabel; btn_Cancel: TButton; lbl_Version: TLabel; Label7: TLabel; procedure OnCloseClick(Sender: TObject); procedure Label3Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; {$IFNDEF FPC} function VersionBuildNo(iInstance:THandle):integer; {$ENDIF FPC} var AboutForm: TAboutForm; sVersionName : string = ''; implementation uses {$IFDEF FPC}uEWTools{$ELSE}uROIDETools, ShellApi{$ENDIF}; {$IFNDEF FPC} {$R *.dfm} type TVersion = record Major,Minor,Release,Build:word; end; function GetFileVersion(iFileName:string):TVersion; var whocares:dword; Size:dword; Data:pointer; FixedData:pVSFixedFileInfo; begin Size := GetFileVersionInfoSize(pChar(iFileName), whocares); if Size > 0 then begin GetMem(Data,Size); try if GetFileVersionInfo(pChar(iFileName),0,Size,Data) then begin Size := sizeof(TVSFixedFileInfo); if VerQueryValue(Data,'\',pointer(FixedData),Size) then begin result.Major := HiWord(FixedData^.dwFileVersionMS); result.Minor := LoWord(FixedData^.dwFileVersionMS); result.Release := HiWord(FixedData^.dwFileVersionLS); result.Build := LoWord(FixedData^.dwFileVersionLS); end; end; finally FreeMem(Data); end; end; end; function GetModuleName(iInstance:THandle):string; var Buffer: array[0..MAX_PATH] of Char; begin SetString(result, Buffer, GetModuleFileName(iInstance, Buffer, MAX_PATH)); end; function VersionStringLong:string; var Version:TVersion; begin Version := GetFileVersion(GetModuleName(hInstance)); result := IntToStr(Version.Major)+'.'+IntToStr(Version.Minor)+'.'+ IntToStr(Version.Release)+'.'+IntToStr(Version.Build){+'.'+ FormatDateTime('yymmdd', CompileTime);} end; function VersionBuildNo(iInstance:THandle):integer; var Version:TVersion; begin Version := GetFileVersion(GetModuleName(iInstance)); result := Version.Build; end; {$ENDIF FPC} procedure TAboutForm.OnCloseClick(Sender: TObject); begin Close(); end; procedure TAboutForm.Label3Click(Sender: TObject); begin {$IFDEF FPC} RO_ShellExecute(Handle,'open','http://www.remobjects.com/ro',nil,nil,SW_SHOWNORMAL); {$ELSE} ShellExecute(Handle,'open','http://www.remobjects.com/ro',nil,nil,SW_SHOWNORMAL); {$ENDIF} end; procedure TAboutForm.FormCreate(Sender: TObject); begin {$IFDEF FPC} lbl_Version.Caption := sVersionName; {$ELSE} lbl_Version.Caption := 'Version '+VersionStringLong(); if sVersionName <> '' then lbl_Version.Caption := sVersionName+' - '+lbl_Version.Caption; {$ENDIF} btn_Cancel.Left := Width+10; end; {$IFDEF FPC} initialization {$I fROAbout.lrs} {$ENDIF FPC} end.