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

📄 rm_wizard.pas

📁 进销存·完整的·有数据库的·非常完整·只得参考
💻 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 + -