home *** CD-ROM | disk | FTP | other *** search
/ Softwarová Záchrana 3 / Softwarova-zachrana-3.bin / ArsClip / source.zip / UnitFrmAbout.pas < prev    next >
Pascal/Delphi Source File  |  2002-06-04  |  2KB  |  93 lines

  1. unit UnitFrmAbout;
  2. {
  3.     What else is an about page for?
  4. }
  5.  
  6. interface
  7.  
  8. uses
  9.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.   Dialogs, StdCtrls, ExtCtrls, ShellAPI {for shellexecute};
  11.  
  12. type
  13.   TFrmAbout = class(TForm)
  14.     Image1: TImage;
  15.     Label1: TLabel;
  16.     lblVersion: TLabel;
  17.     Button1: TButton;
  18.     lblURL: TLabel;
  19.     Label3: TLabel;
  20.     Label4: TLabel;
  21.     procedure FormCreate(Sender: TObject);
  22.     procedure Button1Click(Sender: TObject);
  23.     procedure lblURLClick(Sender: TObject);
  24.     procedure lblURLMouseEnter(Sender: TObject);
  25.     procedure lblURLMouseLeave(Sender: TObject);
  26.   private
  27.     { Private declarations }
  28.   public
  29.     { Public declarations }
  30.   end;
  31.  
  32. var
  33.   FrmAbout: TFrmAbout;
  34.  
  35. implementation
  36.  
  37. {$R *.dfm}
  38.  
  39. procedure TFrmAbout.FormCreate(Sender: TObject);
  40. var L, i : DWORD;
  41.     p, buf : Pointer;
  42.     ver : array [0 .. 3] of word;
  43. begin
  44.     //
  45.     // So much damn work just to get the program's version info....
  46.     //
  47.     lblVersion.Caption := '';
  48.     L := Windows.GetFileVersionInfoSize(PChar(Application.EXEName), i);
  49.     if (L = 0) then begin
  50.         EXIT;
  51.     end;
  52.  
  53.  
  54.     GetMem(buf, L);
  55.         Windows.GetFileVersionInfo(PChar(Application.EXEName), 0, L, Buf);
  56.         Windows.VerQueryValue(Buf, '\', p, i);
  57.  
  58.         Ver[0] := HiWord(TVSFixedFileInfo(p^).dwFileVersionMS);
  59.         Ver[1] := LoWord(TVSFixedFileInfo(p^).dwFileVersionMS);
  60.         Ver[2] := HiWord(TVSFixedFileInfo(p^).dwFileVersionLS);
  61.         Ver[3] := LoWord(TVSFixedFileInfo(p^).dwFileVersionLS);
  62.     FreeMem(Buf);
  63.  
  64.     lblVersion.Caption := IntToStr(ver[0]) + '.' + IntToStr(ver[1]) + '.' + IntToStr(ver[2]);
  65. end;
  66.  
  67. procedure TFrmAbout.Button1Click(Sender: TObject);
  68. begin
  69.     self.Hide;
  70. end;
  71.  
  72.  
  73.  
  74. //-------
  75. // URL -
  76. //-------
  77. procedure TFrmAbout.lblURLClick(Sender: TObject);
  78. begin
  79.     ShellAPI.ShellExecute(self.Handle, nil, PChar(lblURL.caption), nil, nil, SW_HIDE);
  80. end;
  81.  
  82.  
  83. procedure TFrmAbout.lblURLMouseEnter(Sender: TObject);
  84. begin
  85.     lblURL.Cursor := crUpArrow;
  86. end;
  87. procedure TFrmAbout.lblURLMouseLeave(Sender: TObject);
  88. begin
  89.     lblURL.Cursor := crDefault;
  90. end;
  91.  
  92. end.
  93.