草庐IT

TComponent

全部标签

xml - Delphi:将对象流式传输到 XML,包括数组属性

我们有一个巨大的数据对象结构,包含许多实际上是数组的属性。现在,我们需要将数据流式传输到XML文档。为此,我们考虑使用NativeXML要流式传输的组件。它使用同样用于TComponent流的机制。这工作得很好,只是它不流式传输索引属性。有没有办法做到这一点,或者是否有能够做到这一点的组件? 最佳答案 索引属性不向RTTI公开(并且仍然不在DelphiXE中),并且它们也不由TComponent流式传输。如果您想继续使用TComponent机制(或纯基于RTTI的流式传输),一种选择是使用TCollection,它确实“作为数组”进

用make_shared防止复制构建

我有一个经理类,允许客户端通过两种方法添加组件:一个没有参数,即默认构造组件,而另一个则采用了rvalue(应允许客户端使用组件的自定义构造函数)。这是我想到的代码:templatestd::shared_ptrAddComponent(){returnAddComponent(TComponent{this});}templatestd::shared_ptrAddComponent(constTComponent&&obj){autoptr=std::make_shared(obj);vec.push_back(ptr);returnptr;}我的问题是std::make_shared始终

c++ - 如何使用和访问参数包的模板参数包

简短介绍我正在尝试创建一个AddComponents()一次创建多个组件并将其添加到实体的方法。我已经编写了一种一次添加一个组件的工作方法。它具有以下签名:templateTComponent&AddComponent(TArguments&&...arguments);并按以下方式使用entity.AddComponent(data1,data2,data3);我现在想创建一个将多个组件添加到一个函数中的函数,即采用TComponents的参数包.当然,数据也必须传递,这就是事情变得糟糕的地方;我基本上需要一个参数包的参数包。然后函数应该遍历TComponents(例如使用inti)

c++ - 为动态创建的 TComponent 派生类实例传递 NULL Owner 参数是否可行?

我经常使用C++RADStudio和Builder6,并且在编写非可视化代码时经常动态创建表单或动态创建非可视化组件。在设计表单时,拖放到该表单上的组件的Owner属性会自动设置,因此我从不担心。但是,在动态创建从TComponent派生的任何内容时,我总是将NULL作为Owner参数传递,因为我总是负责稍后释放内存。Borland/Embarcadero文档并没有真正涵盖动态创建事物的情况下所需的内容(或者也许我没有在正确的地方寻找)并且似乎只涵盖了基于设计时表单的场景。我想知道为动态创建的组件传递一个NULL所有者是否是正确的做法,或者它是否会导致稍后会出现的内部问题。代码编译和工