?? exusg1u.pas
字號:
(*
This example uses the TOgUsageCode component. This is the most basic
example in that on first run, the INI file entries and component
properties are set to allow 5 runs of the program with a "drop dead"
date of 1999 December 31.
*)
unit Exusg1u;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, OnGuard,
OgUtil,
IniFiles;
const
CKey : TKey = ($E5,$8F,$84,$D6,$92,$C9,$A4,$D8,
$1A,$FA,$6F,$8D,$AB,$FC,$DF,$B4);
type
TForm1 = class(TForm)
Memo1: TMemo;
CloseBtn: TBitBtn;
OgUsageCode1: TOgUsageCode;
Label1: TLabel;
procedure OgUsageCode1GetKey(Sender: TObject; var Key: TKey);
procedure OgUsageCode1GetCode(Sender: TObject; var Code: TCode);
procedure OgUsageCode1Checked(Sender: TObject; Status: TCodeStatus);
procedure OgUsageCode1ChangeCode(Sender: TObject; Code: TCode);
private
{ Private declarations }
public
{ Public declarations }
TheDir : string;
IniFile : TIniFile;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{==========================================================================}
procedure TForm1.OgUsageCode1GetKey(Sender: TObject; var Key: TKey);
begin
Key := CKey;
end;
{==========================================================================}
procedure TForm1.OgUsageCode1GetCode(Sender: TObject; var Code: TCode);
var
S : string;
L : integer;
begin
TheDir := ExtractFilePath(ParamStr(0));
L := Length(TheDir);
if (L > 3) and (TheDir[L] <> '\') then
TheDir := TheDir + '\';
if (FileExists(TheDir + 'Usage1.ini')) then begin
{open Ini File}
IniFile := TIniFile.Create(TheDir + 'Usage1.ini');
try
{try to read release code}
S := IniFile.ReadString('Codes', 'Uses', '');
{convert retrieved string to a code}
HexToBuffer(S, Code, SizeOf(Code));
finally
IniFile.Free;
end;
end;
end;
{==========================================================================}
procedure TForm1.OgUsageCode1Checked(Sender: TObject; Status: TCodeStatus);
var
S : string;
Code : TCode;
begin
case Status of
ogValidCode : begin
Label1.Caption := 'Available Runs: '
+ IntToStr(OgUsageCode1.GetValue);
Exit;
end;
ogRunCountUsed : S := 'No more runs allowed' + #13
+ ' Register NOW ';
ogInvalidCode : begin
if not (FileExists(TheDir + 'Usage1.ini')) then begin
IniFile := TIniFile.Create(TheDir + 'Usage1.ini');
try
{hard coded release code for 5 users}
{and drop dead date of 1999 Dec. 31}
S := 'AC5D76E4B10D642B';
HexToBuffer(S, Code, SizeOf(Code));
IniFile.WriteString('Codes', 'Uses', S);
finally
IniFile.Free;
end;
OgUsageCode1.CheckCode(True);
Exit;
end else
S := 'Invalid Code';
end;
ogCodeExpired : S := 'Trial Run period expired' + #13
+ ' Register NOW ';
end;
ShowMessage(S);
Application.Terminate;
end;
{==========================================================================}
procedure TForm1.OgUsageCode1ChangeCode(Sender: TObject; Code: TCode);
var
S : string;
begin
{open Ini File}
IniFile := TIniFile.Create(TheDir + 'Usage1.ini');
try
{convert code to string}
S := BufferToHex(Code, SizeOf(Code));
IniFile.WriteString('Codes', 'Uses', S);
finally
IniFile.Free;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -