LightRepReg.pas はコンポーネントエディタ (バージョン表示) とコンポーネント登録を兼ねています。
いずれも設計時にしか使われないのでこのままでも構わないのですが、勉強用にあえて登録用のユニットとコンポーネントエディタに分離してみます。
1.LightRepReg.dfm を LRVer.dfm にリネーム
2.LightRepReg.pas を LRVer.pas にリネーム
3.LRVer.pas をテキストエディタで開き、以下のように修正
[LRVer.pas]
unit LRVer;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, DesignEditors, LRConsts;
type TLRVerForm = class(TForm) Image1: TImage; Label1: TLabel; Label3: TLabel; Button1: TButton; Label2: TLabel; Label4: TLabel; Label5: TLabel; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end;
// TLightRepのバージョン情報フォーム TLightRepVer = class(TDefaultEditor) public procedure ExecuteVerb(Index: Integer); override; function GetVerb(Index: Integer): string; override; function GetVerbCount: Integer; override; end;
var LRVerForm: TLRVerForm;
implementation
{$R *.DFM}
procedure TLRVerForm.Button1Click(Sender: TObject); begin Close; end;
function TLightRepVer.GetVerbCount: Integer; begin Result := 1; end;
function TLightRepVer.GetVerb(Index: Integer): string; begin if Index = 0 then Result := LIGHTREP_ABOUTBOX_TEXT else Result := ''; end;
procedure TLightRepVer.ExecuteVerb(Index: Integer); begin if Index = 0 then with TLRVerForm.Create(Application) do try Caption := LIGHTREP_ABOUTBOX_TEXT; Label1.Caption := LIGHTREP_TITLE_TEXT; Label2.Caption := 'Version ' + LIGHTREP_VERSION_TEXT; Label3.Caption := LIGHTREP_COPYRIGHT_TEXT1; Label4.Caption := LIGHTREP_COPYRIGHT_TEXT2; Label5.Caption := LIGHTREP_DESCRIPTION; ShowModal; finally Free; end; end; end.
※ コンポーネントエディタ には DesignEditors を uses する必要があります。
4.テキストエディタで LightRepReg.pas を新規作成。
[LightRepReg.pas]
{* * * LightRepReg * * LightReport2の登録ユニット * * Copyright(c) 1998-2001 Takezou All rights reserved. * Copyright(c) 2001-2003 Ohtaka(Kazuyoshi Ohta) All rights reserved. * * このコンポーネントは2001年9月より全ての著作権がTakezouからOhtakaに * 両者合意の上譲渡されました * * 1998.10.30 作成 * 2000.03.24 TLRVariableText, TLRPostBarItem追加 * *}
unit LightRepReg;
interface
uses Classes, DesignIntf;
procedure Register;
implementation
uses LightRep, LightRepEx, LightRepEx2, LightRepPost, LRBarImg, LRVer; // コンポーネントエディタ
procedure Register; begin RegisterComponents('LightReport2', [TLightRep]); RegisterComponents('LightReport2', [TLRLayoutPanel]); RegisterComponents('LightReport2', [TLRGridPanel]); RegisterComponents('LightReport2', [TLRSubPanel]); RegisterComponents('LightReport2', [TLRItem]); RegisterComponents('LightReport2', [TLRImage]); RegisterComponents('LightReport2', [TLRCustBarItem]); RegisterComponents('LightReport2', [TLRBarImage]); RegisterComponents('LightReport2', [TLRVariableText]); RegisterComponentEditor(TLightRep, TLightRepVer); end; end.
※ コンポーネント を登録するには Classes を uses する必要があります。
※ コンポーネントエディタ を登録するには DesignIntf を uses する必要があります。
この時点では以下のようなフォルダ構成になっています。
C:\LR2 ├─Packages │ ├─2009 │ │ LR2_120.dpk │ │ │ ├─2010 │ │ LR2_140.dpk │ │ │ ├─XE │ │ LR2_150.dpk │ │ │ ├─XE2 │ │ LR2_160.dpk │ │ │ ├─XE3 │ └─XE4 └─Source LightRep.pas LightRepEx.pas LightRepEx2.pas LightRepPost.pas LightRepReg.dcr LightRepReg.pas LRBarImg.dcr LRBarImg.pas LRConsts.pas LRDBSpl.pas LRPrvSpl.pas LRSplReg.dcr LRSplReg.pas LRSplRegp.dcr LRSplRegp.pas LRSuppl.pas LRVer.dfm LRVer.pas Nkdib.inc NkDIB.pas NkDIBUtils.pas NkGraph.pas PostBarcode.res
|