⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exusg1u.pas

📁 详细的ERP设计资料
💻 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 + -