Jor*_*sov 1 delphi class delphi-7
我的问题是如何访问另一个单元中的类?举个例子:
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.
Run Code Online (Sandbox Code Playgroud)
和数据单位:
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.
Run Code Online (Sandbox Code Playgroud)
问题是GetClass方法总是返回nil.我知道有这样的问题,但他们没有帮助我.
提前致谢!
如果您使用的是后来的Delphi版本之一,则可以使用RTTI单元.
uses RTTI;
..
var
R : TRttiContext;
begin
R.FindType('Data.TData')
...
Run Code Online (Sandbox Code Playgroud)
在您的示例中,TIn不是内部类,但内部类也可以像这样访问:
R.FindType('Data.TData.TIn')
Run Code Online (Sandbox Code Playgroud)