我的问题是如何访问另一个单元中的课程?例如:

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Classes,
  System,
  StrUtils,
  Math,
  TypInfo,
  Data in 'Data.pas';

var
  Str, name, value                      : string;
  List, tmpList                         : TStringList;
  i                                     : Integer;
  Obj                                   : TObject;
  CRef                                  : TPersistentClass;
  d                                     : TData;
begin
  d := TData(GetClass('Data.TData').Create);
  Writeln(Format('%s', [d.Name]));
  Readln;
  Readln;
end.


和数据单位:

unit Data;

interface
 uses
  SysUtils,
  Classes;
type
  TData = class(TObject)
    FName : string;
  published
    property Name : string read FName write FName;
  end;
type
  TIn = class(TObject)
    FName : string;
  published
    property Name : string read FName write FName;
  end;
implementation

end.


问题在于方法GetClass返回的值始终为零。
我知道有这样一个问题,但它们并没有帮助我。

提前致谢!

最佳答案

如果使用的是Delphi的更高版本之一,则可以使用RTTI单元。

uses RTTI;
..
  var
    R : TRttiContext;
  begin
    R.FindType('Data.TData')
...


在您的示例中,TIn不是内部类,但是也可以这样访问内部类:

R.FindType('Data.TData.TIn')

关于delphi - 德尔福GetClass,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7737897/

10-10 10:31