class - delphi 如何将未知类作为参数传递?
问题描述
我在这里有这个代码:
type
TMyColors = (mcWhite, mcRed, mcBlue);
TMyFields = (mfField1, mfField2, mfField3);
....
implementation
uses
TypInfo;
{$R *.dfm}
function Get_ClassFieldName(ATypeKind: TUnknown_Class; ADataIndex: Byte):string;
begin
Result := GetEnumName(System.TypeInfo(ATypeKind), Ord(ATypeKind(ADataIndex)));
end;
procedure TForm1.Btn_1Click(Sender: TObject);
begin
ShowMessage(Get_ClassFieldName(TMyColors, 0) + ' | ' + Get_ClassFieldName(TMyFields, 0));
end;
如果可能的话,我想要的是用正确的参数替换我的TUnknown_Class参数。
解决方案
看起来您只需要使用 TRttiEnumerationType.GetName()。
type
TMyColors = (mcWhite, mcRed, mcBlue);
TMyFields = (mfField1, mfField2, mfField3);
implementation
uses
TypInfo,RTTI;
{$R *.dfm}
procedure TForm1.Btn_1Click(Sender: TObject);
var st1,st2 : string;
MyColors : TMyColors;
MyFields : TMyFields;
begin
MyColors:=mcRed;
MyFields:=mfField3;
st1:=TRttiEnumerationType.GetName(MyColors);
st2:=TRttiEnumerationType.GetName(MyFields);
ShowMessage( st1+ ' | ' + st2);
end;
推荐阅读
- php - 如何在wordpress中使用带有浮点数mysql的BETWEEN查询
- javascript - Javascript 风格的媒体查询
- c# - C# emgucv - 点值 (X, Y)
- python - Python,我如何连接 2 个变量并创建一个指向第三个变量的名称
- ruby-on-rails - 访问 ActionController 参数的值
- php - 向mysql数据库插入数据时出现问题
- python - 如何在使用 plotly 时纠正值错误
- c# - EF Core 删除同一张表上的一对一关系
- xamarin.forms - System.Reflection.TargetInvocationException:调用的目标已引发异常?
- python - build_attrs() 得到了一个意外的关键字参数“类型”