zoukankan      html  css  js  c++  java
  • 动态产生器

    代码
    unit pgDynamicGenerate;
    //动态产生器

    interface
    uses
      pgGUISprite, pgGUIControls, DXSprite, Classes;


    type
      TSpriteClass 
    = class of TpgGUISprite;
      
    //定义一个类型数组

      TClassArray 
    = array[1..6of TSpriteClass;
    const
      ClassArray: TClassArray 
    = (TpgButton, TpgControl, TpgCustomEdit, TpgFontComponent, TpgForm, TpgMouse);

    function pgSpriteCreate(SpriteClass: TSpriteClass; AParent: TSprite; const SpriteName: string = ''): TpgGUISprite;
    function GenerateComponent(const ClassName: string; AParent: TSprite; const SpriteName: string = ''): TpgGUISprite;
    procedure initRegisterClasses;
    procedure finaUnRegisterClass;

    implementation

    function pgSpriteCreate(SpriteClass: TSpriteClass; AParent: TSprite; const SpriteName: string = ''): TpgGUISprite;
    begin
      Result :
    = SpriteClass.Create(AParent);
      
    with TpgGUISprite(Result) do
      
    begin
        
    if ControlName <> '' then
          ControlName :
    = SpriteName;
      
    end;
    end;

    function GenerateComponent(const ClassName: string; AParent: TSprite; const SpriteName: string = ''): TpgGUISprite;
    var
      mClass: TSpriteClass;
      mObj: TpgGUISprite;
    begin
      Result :
    = nil;
      mClass :
    = TSpriteClass(GetClass(ClassName));
      
    if mClass = nil then exit
      
    else
      
    begin
        mObj :
    = mClass.Create(AParent);
        TpgGUISprite(mObj).ControlName :
    = SpriteName;
        Result :
    = mObj;
      
    end;
    end;

    procedure initRegisterClasses;
    var
      i: Integer;
      className: TPersistentClass;
    begin
      
    for i:=Low(ClassArray) to High(ClassArray) do
      
    begin
        className:
    = ClassArray[i];
        RegisterClasses(className);
      
    end;
    end;

    procedure finaUnRegisterClass;
    var
      i: Integer;
      className: TPersistentClass;
    begin
      
    for i:=Low(ClassArray) to High(ClassArray) do
      
    begin
        className:
    = ClassArray[i];
        UnRegisterClass(className);
      
    end;
    end;

    initialization
      initRegisterClasses;
    finalization
      finaUnRegisterClass;

    end.

    调用方法:

    mDXedit := TpgCustomEdit(GenerateComponent('TpgCustomEdit', dxForm));

  • 相关阅读:
    c++智能指针-shared_ptr
    python全栈学习笔记(二)网络基础之子网划分
    python全栈学习笔记(一)网络基础之网络协议篇
    Fiddler抓包4-工具介绍(request和response)
    python接口自动化5-Json数据处理
    python接口自动化4-绕过验证码登录(cookie) (转载)
    Http status(二)
    python接口自动化1-发送get请求
    Fiddler抓包11-HTTPS证书Actions无法导出问题
    使用idea配置tomcat将web项目跑起来
  • 原文地址:https://www.cnblogs.com/kfarvid/p/1651154.html
Copyright © 2011-2022 走看看