gpt4 book ai didi

delphi - Delphi-如何枚举要键入的字符串

转载 作者:行者123 更新时间:2023-12-03 19:00:13 27 4
gpt4 key购买 nike

我在数据库中找到了类似“ TGroupBox”或“ TEdit”的字符串……现在我需要对照它们检查元素……如何枚举要键入的字符串?

我的意思是这样的:

mystr := 'TGroupBox';
If (page.Controls[0] is mystr) then ...


当然它不会起作用,因为会出现错误:


E2015运算符不适用于此操作数类型


我该如何正确执行?

最佳答案

您可以验证

page.Controls[0].ClassName = mystr


使用 ClassName属性。

但是请注意,这与 is运算符的功能并不完全相同。若要查看区别,假设您有一个类 TFruit和一个子类 TApple。如果 myFruitTApple的实例,则 myFruit is TApplemyFruit is TFruit都将产生 true。但是,当然, ClassName仍只会是 TApple

如果需要 is运算符的全部功能,则可以使用 ClassParent属性,如hvd的 suggested所示:

function IsDerivedFrom(AClass: TClass; const AClassName: string): boolean;
begin
if not Assigned(AClass) then Exit(false);
result := SameText(AClass.ClassName, AClassName) or
IsDerivedFrom(AClass.ClassParent, AClassName);
end;


要获取对象的类,请使用 ClassType属性:

IsDerivedFrom(page.Controls[0].ClassType, mystr);

关于delphi - Delphi-如何枚举要键入的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583120/

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