ObjectHelper可以用来调用对象的各种方法和属性,也可以用来做数据类型转换。

1. 访问对象

1.1. 相关属性和方法

  1. static function CreateInstance(type: Type; Params: array of TObject): TObject; overload;
    创建type类型的对象,使用Params作为需要的参数

  2. static function CreateSZArray(elementType: Type; length: Longint): System.Array; overload;
    创建length个type类型的对象

  3. static function CallMethod(o: TObject; methodName: string; methodParams: array of TObject): TObject; overload;
    调用o对象的methodname方法,方法的参数是methodParams

  4. static function GetFieldValue(o: TObject; fieldName: string): TObject; overload;
    获取o对象的fieldName的域值

  5. static function GetPropertyValue(o: TObject; propName: string; propParams: array of TObject): TObject; overload;
    获取o对象的propName的属性值(暂时不支持属性数组)

  6. static function GetType(o: TObject): Type; overload;
    获取o对象的类型

  7. static procedure SetFieldValue(o: TObject; fieldName: string; v: TObject); overload;
    设置o对象的fieldName域的值

  8. static procedure SetPropertyValue(o: TObject; propName: string; propParams: array of TObject; v: TObject); overload;
    设置o对象的propName属性的值(暂时不支持属性数组)

1.2. 用法示例

   1 var
   2   t: Type_;
   3   b: object;
   4 begin
   5   t := TButton;
   6   b := ObjectHelper.CreateInstance(t, [Self]);
   7   ObjectHelper.SetPropertyValue(b, 'Parent', [], Self);
   8   jsDialogs.ShowMsg(ObjectHelper.ToString(ObjectHelper.CallMethod(b, 'Focused', [])), '');
   9 end;

2. 数据类型转换

参考


[[PageComment2()]]

ObjectHelper (last edited 2007-08-27 17:40:19 by alang)