问题标签 [spring4d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - 获取智能指针的 RTTI 信息
使用 Spring,当我为记录声明智能指针时
然后创建它
*顺便说一句,觉得这真的很酷。
那么我该如何在智能指针上获取 RTTI 呢?显然,我知道它基于 TPerson 记录,但是需要哪些步骤来扭转当 Spring 首先分配指针时会发生什么?
我看到创建记录指针时它使用这样的代码
然后是这样的代码
我的问题是,例如,如何使用智能指针本身获取智能指针指向的记录字段?
希望这是有道理的,也许是另一个愚蠢的问题。
为问题提供更多背景信息。我有一家工厂,它使用 RTTI 为记录字段构建控件。
哪个有效。它根据记录上的属性标签返回一个 TDateEdit
我在想也许我能做的就是这个
然后工厂将拥有连接控件所需的一切,而无需自己编写代码。
上述生产线可以由工厂处理。无论如何只是一个想法
delphi - 为什么是 Spring4D 的 IList对象更改时未触发 OnChanged 事件(而 Add 和 Remove 触发事件)?
当对象更改为使用 IList 时,我从 Notify the TObjectList 中修改了@Stefan Glienkes 示例,因为我在列表中使用了接口对象。在事件处理程序中,我可以处理 caAdded 和 caRemoved 事件,但没有发出 caChanged 信号。
这是设计使然还是我在某个地方犯了错误?
此示例显示了行为:
delphi - 为什么我对接口的 TCollections.CreateObservableList 实现不起作用?
我尝试按照@Stefan Glienke 在为什么没有触发 Spring4D 的 IList OnChanged 事件中建议的方式实现?接口的 ObservableList。
这个版本应该实现一个可观察的接口列表。编译但在运行时无法找到“更改”事件处理程序。我将一些过程参数从 TObject 更改为 IInterface。由于基类中的实现,其他一些必须是 TObject 。
谢谢你的帮助。
此示例显示了行为:
delphi - 是否有与 WillReturnDefault 对应的 Spring4D 对应函数
WillReturnDefault
当您不关心函数的参数时,Delphi-Mocks有一个方法。我不知道如何使用Spring4D 模拟来做到这一点。感谢帮助!
delphi - 复制字典的正确方法是什么?
我需要检查应用程序的某个部分是否发生了变化,因此我在加载数据后对数据进行“复制”,然后进行比较。比较功能的一部分涉及检查字典中的键,例如lDict1.Keys.EqualsTo(lDict2.Keys)
.
虽然字典不依赖于元素的顺序,但是我没有意识到即使我用相同的数据填充两个字典,它们也不会被创建相同的元素的顺序可能会改变,所以前面的函数无法正常工作,因为它依赖于使用以下任何方法时可能不匹配的元素顺序。(我不确定为什么)
有没有办法制作字典的精确副本以便我可以比较它们?解决此问题的一种方法是创建自己的比较函数,但我想避免这种情况。
用法
delphi - Spring4D 字段注入在 TForm 实例中不起作用
我想像下面的示例代码一样使用 1.1 版的Inject
属性。Spring4D
似乎 Inject 属性没有效果,因为 fMyResource 字段值在按钮单击处理程序方法中为 NIL。在我的原始代码中,类型注册在之前的 dpr 文件中得到了位置Application.CreateForm(TForm1, Form1);
。我只是修改它以使代码更简洁。我应该怎么做才能使现场注入工作?
delphi - 在 Spring4D 中是否可以注册通用接口?
我有具有构造函数的类,例如
当我尝试在容器中注册 IFactory
或者
我收到一条错误消息,指出接口没有 guid。
我真的不想添加很多无意义的接口,例如
解决这个问题,但这是唯一的方法吗?
非常感谢
delphi - 编译器看不到 Spring4D TMultiMap 重载构造函数(错误 E2250)
我正在努力使用 Spring4D (1.2.2) TMultiMap 泛型类。我想调用一个重载的构造函数,编译器抱怨:
根据 Spring4D 源代码,参数是正确的类型。
我设计了一个小程序来重现错误:
在 Spring4D 源代码中,我找到了以下声明:
并且还声明了 TMultiMap acestor:
并有这个构造函数:
这是我要调用的构造函数。据我了解,我的论点 KeyComparer 具有正确的类型。但显然编译器不同意:-(
如何修复此代码?
delphi - Spring4D 无法对有序字典进行排序
我需要一个可以排序的字典。我认为 Spring4D TOrderedDictionary 是一个实现它的类,但我不能让它工作:排序不起作用。
我构建了一个小测试程序来显示我遇到的问题:
上面的代码以添加顺序显示值,而不是 - 我认为 - AComparer 应该创建的顺序。
我尝试使用相等比较器创建 OrderedDictionary:没有变化。
任何帮助表示赞赏。