Delphi 通过字符串实例化类

原创 2016年08月31日 14:18:10

D2007 通过字符串创建窗体类对象
1、需要在程序初始化的时候将类注册,注册到对象 RegGroups:(TRegGroups)中,以便查找。
注册类使用的函数:RegisterClass ,窗体初始化操作放在initialization 中。

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TfrmReg = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmReg: TfrmReg;

implementation

{$R *.dfm}

initialization //初始化开始
  RegisterClass(TfrmReg) ; //注册类对象

end.

2、利用FindClass根据类名来查找类对象。

//根据类名创建对象
procedure TForm1.Button1Click(Sender: TObject);
var
  FormClass : Tformclass ;
  Form : TForm ;
begin
   FormClass := Tformclass(findclass('TfrmReg')) ;
   Application.Createform(FormClass,Form) ;
   Form.Show ;
end;

initialization —— 在单元中放在文件结尾前,包含用来初始化单元的代码,它在主程序运行前运行并且只运行一次。

finalization —— 在单元中放在 initialization 和 end. 之间,包含了单元退出时的代码。在程序退出时运行并且只运行一次。

Delphi中创建类的实例与定义一个变量引出的问题

在Delphi中按值传递的函数(过程)是这样定义的:procedure fillsomething (Xvalue : integer)按值传递是无法改变实参的值的。按地址传递的函数(过程)是这样[定...

Delphi 对象的创建(create)与释放(free/destory)

create后一定要free吗? 简单举例  procedure   a;  var   x:TX;  begin      x:=TX.create;      //do   som...

swift通过字符串获取类型实例化对象问题

相信大家都碰到过轮播图跳转问题,公司需求变来变去,一会儿要跳网页一会儿要跳原生界面,跳网页不需要太多解释,跳原生事情就比较多了,我们公司就是这么蛋疼,但是需求下来了也没办法。之前解决方法都比较傻,基本...

Java4Android 19_子类实例化过程

  • 2014年09月07日 10:51
  • 16.78MB
  • 下载

java反射学习笔记1--CLass类实例化的三种方式

package com.zq.demo; import java.util.Date; public class Demo1 { public static void main(Stri...

Java中内部类的实例化

  • 2013年06月09日 13:48
  • 4KB
  • 下载

Java中可以直接调用类中静态方法,不用实例化

转载自   http://stevengw.blog.163.com/blog/static/583447512012319112140126/ 先通俗的分析下,我们把类看作是一个房子。房子里面...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi 通过字符串实例化类
举报原因:
原因补充:

(最多只允许输入30个字)