📄 rm_wizard.pas
字号:
{*****************************************}
{ }
{ Report Machine v2.0 }
{ Report Wizard Reg }
{ }
{*****************************************}
unit rm_Wizard;
interface
{$I RM.inc}
uses
Windows, Controls, Classes;
type
TrmWizardClass = class of TrmWizard;
TrmReportWizardClass = class of TrmCustomReportWizard;
{ TrmWizard }
TrmWizard = class
public
class function ClassDescription: string; virtual;
class function ClassBitmap: THandle; virtual;
end;
{ TrmCustomReportWizard }
TrmCustomReportWizard = class(TrmWizard)
private
protected
public
constructor Create; virtual;
procedure DoCreateReport; virtual; abstract;
end;
procedure rmRegisterWizard(aWizardClass: TrmWizardClass);
procedure rmUnRegisterWizard(aWizardClass: TrmWizardClass);
function rmGetWizardClassList: TList;
implementation
var
FWizardClassList: TList = nil;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TrmWizard }
class function TrmWizard.ClassDescription: string;
begin
Result := ClassName;
end;
class function TrmWizard.ClassBitmap: THandle;
begin
Result := 0;
// Result := ppBitmapFromResource('PPNOWIZARDBITMAP');
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{TrmCustomReportWizard}
constructor TrmCustomReportWizard.Create;
begin
Inherited Create;
end;
function rmGetWizardClassList: TList;
begin
if FWizardClassList = nil then
FWizardClassList := TList.Create;
Result := FWizardClassList;
end;
procedure rmRegisterWizard(aWizardClass: TrmWizardClass);
var
lClassList: TList;
lindex: Integer;
begin
if aWizardClass = nil then Exit;
lClassList := rmGetWizardClassList;
lIndex := lClassList.IndexOf(aWizardClass);
if lIndex < 0 then
begin
lClassList.Add(aWizardClass);
end;
end;
procedure rmUnRegisterWizard(aWizardClass: TrmWizardClass);
var
lClassList: TList;
liIndex: Integer;
begin
if aWizardClass = nil then Exit;
if FWizardClassList = nil then Exit;
lClassList := rmGetWizardClassList;
liIndex := lClassList.IndexOf(aWizardClass);
if liIndex >= 0 then
begin
lClassList.Delete(liIndex);
end;
end;
initialization
finalization
FWizardClassList.Free;
FWizardClassList := nil;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -