相关资料:http://www.blogjava.net/nokiaguy/archive/2008/05/10/199739.html

  1. {
  2. http://www.blogjava.net/nokiaguy/archive/2008/05/10/199739.html
  3. delphi中动态建立类的实例可分为4步。
  4. 1. 声明一个从TPersistent继承的类。因为在注册类时要求必须从TPersistent继承。
  5. 2. 注册类。可以使用RegisterClass等过程进行注册。
  6. 3. 验证类是否被注册(可选)。如果确定要建立的类已经注册了,可以省略此步。
  7. 4. 得到并建立类。可使用FindClass(classname)得到要建立的类,然后使用Create方法建立类的实例。
  8. }
  9.  
  10. unit Unit1;
  11.  
  12. interface
  13.  
  14. uses
  15. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  16. Dialogs, StdCtrls, ExtCtrls, jpeg;
  17.  
  18. type
  19. TForm1 = class(TForm)
  20. Button1: TButton;
  21. Edit1: TEdit;
  22. Image1: TImage;
  23. procedure Button1Click(Sender: TObject);
  24. private
  25. { Private declarations }
  26. public
  27. { Public declarations }
  28. end;
  29.  
  30. TMyClass = class(TPersistent)
  31. public
  32. function GetValue: String;
  33. end;
  34.  
  35. var
  36. Form1: TForm1;
  37.  
  38. implementation
  39.  
  40. {$R *.dfm}
  41.  
  42. { TMyClass }
  43.  
  44. function TMyClass.GetValue: String;
  45. begin
  46. Result := 'hello world';
  47. end;
  48.  
  49. procedure TForm1.Button1Click(Sender: TObject);
  50. var
  51. class1: TMyClass;
  52. begin
  53. if GetClass('TMyClass')<>nil then
  54. begin
  55. class1 := FindClass('TMyClass').Create as TMyClass;
  56. Edit1.Text := class1.GetValue;
  57. end;
  58. end;
  59.  
  60. Initialization //可将这两行放在end.的前面
  61. RegisterClass(TMyClass);
  62.  
  63. end.

Delphi使用FindClass实现动态建立对像(有点像反射)的更多相关文章

  1. delphi 动态建立WebBrower

    //Delphi动态建立WebBrowerunit Main;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphi ...

  2. uniGUI动态建立Form及释放

    uniGUI动态建立Form及释放 (2015-10-01 14:51:12) 转载▼   分类: uniGUI 用uniGUI开发的项目中,难免要遇到动态建立一个Form,再释放掉,与传统Delph ...

  3. Lightning框架示例 - 动态建立Lightning组件

    动态建立Lightning组件 组件化前端开发是Lightning框架的优点之一.在进行Lightning应用开发时,我们可以将组件进行嵌套.引用,从而实现模块的封装和重用,提高开发效率. 组件的嵌套 ...

  4. c++——对象的动态建立和释放(new 和delete)

    3.8 对象的动态建立和释放 1 new和delete基本语法 1)在软件开发过程中,常常需要动态地分配和撤销内存空间,例如对动态链表中结点的插入与删除.在C语言中是利用库函数malloc和free来 ...

  5. DELPHI开发LINUX的动态库

    DELPHI开发LINUX的动态库 WINDOWS的动态库是.dll,这个大家都知道. LINUX也有动态库,扩展名是.so,现在DELPHI也能开发LINUX的动态库哦. DELPHI对LINUX的 ...

  6. 如何在C++中动态建立二维数组(转)

    http://blog.sina.com.cn/s/blog_7c073a8d0100qp1w.html http://blog.163.com/wujiaxing009@126/blog/stati ...

  7. Delphi XE7调用C++动态库出现乱码问题回顾

    事情源于有个客户需使用我们C++的中间件动态库来跟设备连接通讯,但是传入以及传出的字符串指针格式都不正确(出现乱码或是被截断),估计是字符编码的问题导致.以下是解决问题的过程: 我们C++中间件动态库 ...

  8. 关于delphi XE7中的动态数组和并行编程(第一部分)

    本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...

  9. Delphi使用TStringHash实现建立类(有点像反射)

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

随机推荐

  1. WC约束示使用

    1.接口中添加时要注意Xml序列化标签不要随意添加啊.[webInvoke].[OpertorContract]这2个约束就行了.不然,直接坑死啊.

  2. MyEclipse开发WebService教程

    . 创建一个 webService 工程. 2. 创建一个普通 Java 类   3. 创建 webService 服务端 HelloJaxwsDelegate.java 的源代码如下:   4. 导 ...

  3. 抽象工厂在ADO.Net中的应用

    https://msdn.microsoft.com/zh-cn/library/ms971499.aspx http://www.c-sharpcorner.com/UploadFile/moses ...

  4. awk输出单引号,双引号

    双引号: awk '{print "\""}'        #放大:awk '{print "  \"  "}' 使用“”双引号把一个双引 ...

  5. 【Todo】JS跨域访问问题的解决

    做双十一,需要在主会场页面,嵌入我们产品的JS豆腐块.而这个豆腐块需要调用我们后端的数据接口,涉及跨域访问. 参考 http://www.cnblogs.com/2050/p/3191744.html ...

  6. Instruments-查看收集到的数据

    由于Xcode调试工具Instruments指南篇幅太长,所以本篇blog继续上篇,介绍对Instruments收集到的数据去分析. 关于数据分析 Instruments不解决你代码中的任何问题,它帮 ...

  7. 关于ie6对齐

    先来没有任何对齐时的样子: 1.一种是在父级没有高度的情况下居中. 给每个独立的元素都加上vertical-align:middle; 针对文字可以不加,加与不加都可以居中对齐.但是无法做到绝对的居中 ...

  8. [swustoj 1023] Escape

    Escape     Description BH is in a maze,the maze is a matrix,he wants to escape! Input The input cons ...

  9. error LNK2019: 无法解析的外部符号 __imp___CrtDbgReportW

    error LNK2005 and error LNK2019 error LNK2019: unresolved external symbol __imp___CrtDbgReportW refe ...

  10. SSH整合所需jar

    Struts2.1.8+Hibernate3.2+Spring4.1.6+MySql ant-1.6.5.jar ant-antlr-1.6.5.jar ant-junit-1.6.5.jar ant ...