// ==================
// AboutApp v2.0
// By Aaron MJ Fisher
// Copyright © 2007
// ------------------
// Source Code
// ==================
unit AA;
interface
uses
Windows, SysUtils, Forms, Registry, ExtCtrls, StdCtrls, Controls, Classes, ComCtrls;
type
TfAA = class(TForm)
abAbout : TBevel;
aiAppIcon : TImage;
sbOK : TButton;
seKey : TEdit;
slAppTitle : TLabel;
slAppVers : TLabel;
slAppInfo1 : TLabel;
slAppInfo2 : TLabel;
slAppType : TLabel;
slKey : TLabel;
procedure FormActivate(Sender:TObject);
procedure FormCreate(Sender:TObject);
procedure sbOKClick(Sender:TObject);
public
// ABOUTAPP SYSTEM
// System
procedure AASetup;
procedure AAUserOpen;
procedure AAUserSave;
procedure AAUserCheck;
end;
const
// Application Info
cAPPTITLE = 'TypeStats';
cAPPVER = '3.11';
cAPPINFO1 = 'By Aaron MJ Fisher';
cAPPINFO2 = 'Copyright © 1998-2007';
cAPPTYPE : Array [0..1] of String = ('Shareware','Registered');
// KeyGen Info
APPCODE = 3753;
APPSEED = 1926;
// Windows Registry Settings
cRROOTKEY = HKEY_CURRENT_USER;
cAARSPATH = 'Software\'+cAPPTITLE+'\User';
var
fAA : TfAA;
AARGY : TRegistry;
implementation
{$R *.DFM}
// ===============
// ABOUTAPP SYSTEM
// ===============
// ======
// System
// ======
// ====================
procedure TfAA.AASetup;
// ====================
begin
// DISPLAY ABOUT TABSHEET INFO
// Application Info
Caption:='About '+cAPPTITLE;
aiAppIcon.Picture.Graphic:=Application.Icon;
slAppTitle.Caption:=cAPPTITLE;
slAppVers.Caption:='Version '+cAPPVER;
slAppInfo1.Caption:=cAPPINFO1;
slAppInfo2.Caption:=cAPPINFO2;
slAppType.Caption:=cAPPTYPE[0];
// OPEN USER SETTINGS
AAUserOpen;
end;
// =======================
procedure TfAA.AAUserOpen;
// =======================
begin
// READ USER SETTINGS FOR APP FROM REGISTRY
AARGY:=TRegistry.Create;
try
AARGY.Rootkey:=cRROOTKEY;
if AARGY.OpenKey(cAARSPATH,False) then begin
seKey.Text:=Trim(AARGY.ReadString('Key'));
AARGY.CloseKey;
end;
finally
AARGY.Free;
end;
// CHECK USER SETTINGS
AAUserCheck;
end;
// =======================
procedure TfAA.AAUserSave;
// =======================
begin
// WRITE USER SETTINGS FOR APP TO REGISTRY
AARGY:=TRegistry.Create;
try
AARGY.Rootkey:=cRROOTKEY;
AARGY.OpenKey(cAARSPATH,True);
AARGY.WriteString('Key',Trim(seKey.Text));
AARGY.CloseKey;
finally
AARGY.Free;
end;
// CHECK USER SETTINGS
AAUserCheck;
end;
// ========================
procedure TfAA.AAUserCheck;
// ========================
var
SETKEY,CMPKEY : String;
T : Integer;
KEYPASS : Boolean;
begin
// COMPARE KEY WITH LIST
KEYPASS:=False;
RandSeed:=APPSEED;
SETKEY:=Trim(seKey.Text);
for T:=0 to 9999 do begin
CMPKEY:=IntToStr(APPCODE)+'-'+IntToStr(1000+T)+'-'+IntToStr(1000+Random(8999));
if SETKEY=CMPKEY then KEYPASS:=True;
end;
// Display application type
if KEYPASS then
slAppType.Caption:=cAPPTYPE[1]
else
slAppType.Caption:=cAPPTYPE[0];
end;
procedure TfAA.FormActivate; begin AAUserOpen; end;
procedure TfAA.FormCreate; begin AASetup; end;
procedure TfAA.sbOKClick; begin AAUserSave; close; end;
end.