首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何允许在设计时设置TCollectionItem的TClass属性

如何允许在设计时设置TCollectionItem的TClass属性
EN

Stack Overflow用户
提问于 2015-04-12 01:04:30
回答 1查看 384关注 0票数 1

我正在开发一个可以在几个类上工作的组件。为了允许添加托管类列表,我编写了一个TCollection的继承类,其中每个项(从TCollectionItem继承)都定义了一个已发布的"TargetClassName“属性。"TargetClassName“属性的setter函数调用以下函数来查找相应的TClass:

代码语言:javascript
复制
function FindAnyClass(const Name: string): TClass;
var
  ctx: TRttiContext;
  typ: TRttiType;
  list: TArray<TRttiType>;
begin
  Result := nil;
  ctx := TRttiContext.Create;
  list := ctx.GetTypes;
  for typ in list do
    begin
      if typ.IsInstance and (EndsText(Name, typ.Name)) then
        begin
          Result := typ.AsInstance.MetaClassType;
          break;
        end;
    end;
  ctx.Free;
end;

(感谢Dalija Prasnikar编写了函数Get class by its name in Delphi)。

现在,我想知道是否有更好的方法来允许在设计时向TCollectionItem添加类。你觉得那个怎么样?希望能读到有趣的解决方案!感谢所有人。

EN

回答 1

Stack Overflow用户

发布于 2015-04-12 19:47:23

在TCollection上创建时,您需要引入排序规则类1:在create time中硬编码X := TMycollation.Create(TMyCollationClass) 2: your solution X := way

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29580609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档