Componentes.Terceros.RemObj.../internal/5.0.23.613/1/RemObjects SDK for Delphi/Source/IDE/fROAbout.pas
david 2824855ea7 - Modificación del paquete RemObjects_Core_D10 para que sea un paquete de runtime/designtime (antes era designtime sólo)
- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10
- Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10

git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
2007-09-10 14:06:19 +00:00

108 lines
2.7 KiB
ObjectPascal

unit fROAbout;
interface
uses
Windows, Messages, 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;
function VersionBuildNo(iInstance:THandle):integer;
var
AboutForm: TAboutForm;
sVersionName : string = '';
implementation
uses ShellAPI;
{$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;
procedure TAboutForm.OnCloseClick(Sender: TObject);
begin
Close();
end;
procedure TAboutForm.Label3Click(Sender: TObject);
begin
ShellExecute(Handle,'open','http://www.remobjects.com/ro',nil,nil,SW_SHOWNORMAL);
end;
procedure TAboutForm.FormCreate(Sender: TObject);
begin
lbl_Version.Caption := 'Version '+VersionStringLong();
if sVersionName <> '' then
lbl_Version.Caption := sVersionName+' - '+lbl_Version.Caption;
btn_Cancel.Left := Width+10;
end;
end.