我的问题是如何访问另一个单元中的课程?例如:
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/