gpt4 book ai didi

德尔福GetClass

转载 作者:行者123 更新时间:2023-12-03 18:53:32 27 4
gpt4 key购买 nike

我的问题是如何访问其他单元中的类(class)?例如:

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')

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com