问题标签 [class-helpers]

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.

0 投票
4 回答
4269 浏览

delphi - 是否可以对字符串类型使用两个记录助手?

我创建了这个助手,以便为该string类型添加更多功能:

但是当我在我的代码中使用它时,输入TStringHelperSystem.StrUtils退出”并且我不能使用它的功能。

两者有可能共存吗?

0 投票
1 回答
3062 浏览

delphi - 如何使用类助手调用受​​保护的方法?

假设我们有一个类,其方法可能非常有用,但由于受保护范围而无法使用:

我知道两种使用这种方法的老式方法,都涉及继承和类型转换。两种方法都应该与基本案例 #1 和高级多态案例 #2 相同。

我想知道:

  • 如何应用类助手的力量来达到相同的结果?
  • 是否也可以使用类助手调用私有方法?
  • 案例 #1 和案例 #2 之间会有什么区别,因为什么类帮助器扩大了类范围,而不是内部表示?
  • 如何从类助手中重新引入的方法中调用原始方法而不冒递归的风险?

另外,请评论有关TIntroducer不安全的评论。

0 投票
1 回答
730 浏览

delphi - 类助手语法中“祖先列表”的目的是什么?它记录在哪里?有没有使用示例?

所有文档版本,包括最新版本,都提供了以下类/记录帮助器语法:

它只解释了什么......

祖先列表是可选的。只能为类助手指定。

......并没有进一步讨论可怕的细节。文档主题的其余部分中的使用示例仅利用了ancestor list可选的事实。我见过的所有EMBA的代码以及所有的第三方代码都没有使用这ancestor list部分。

因此,标题中概述了我的问题:

  • ancestor list类助手语法的目的是什么?
  • 它记录在哪里?
  • 有没有使用示例?
0 投票
1 回答
566 浏览

c++builder - C++ Builder 中的类助手

我想知道是否有一个Class Helper甚至为 C++ Builder 命名的函数。

我的环境:RadStudio XE4 更新 1。

我在这里找到了 RadStudio XE4 中 Delphi 的解释

我在这里搜索了 C++ Builder 的类似页面,但没有找到 C++ 的 Class Helper 的信息。

如何查找Class Helper帮助页面上是否有 for C++ Builder?是否有任何页面显示 C++ Builder/Delphi 的函数列表?

0 投票
1 回答
210 浏览

delphi - 当类助手在范围内时如何调用原始类的代码?

我正在对改进的快速排序版本进行一些单元测试。
(希望)更快的版本是通过以下方式实现的:

我知道现在我可以将其重命名为SortintoSortNew以进行测试,但在某些时候我必须将方法名称修复为sort.

如果范围内有类助手,我如何调用原始方法?

有没有使用 rtti 或其他迂回方法的方法?

0 投票
1 回答
480 浏览

c++ - C++ 中的类助手

在 Delphi 中存在可以为给定类添加方法的类助手。

C++ 中是否有任何设计模式可以做到这一点?

0 投票
1 回答
1085 浏览

delphi - 如何将属性添加到 TTabSheet 以便可以在设计时与 TPageControl 一起使用

我想将“MyProperty”添加到 TTabSheet 并在设计时使用它。但是,如果我对它进行子类化,我担心我还需要对 TPageControl 进行子类化,因为它在内部创建/管理 TTabSheets。

我相信这需要复制 TTabSheet 管理代码来引用 TMyTabSheet 而不是 TTabSheet,因为它需要调用 TMyTabSheet.create。当新版本的 Delphi 更新 TPageControl 并且我忘记更新 TMyPageControl 时,这感觉就像我会后悔的事情。

我也在研究“班级助手”作为另一种选择。

有人对如何最好地实现这一点有建议吗?

谢谢!

0 投票
3 回答
6493 浏览

delphi - 如何从 Delphi 10.1 Berlin 中的类助手访问私有字段?

我想使用 Gabriel Corneanu 的jpegex,它是 jpeg.TJPEGImage 的类助手。阅读本文本文后,我了解到除了 Delphi Seattle,您无法再像 jpegex 那样访问私有字段(下例中的 FData)。像 David Heffernan 提议的那样探索 VMT 远远超出了我的范围。有没有更简单的方法来完成这项工作?

0 投票
1 回答
344 浏览

delphi - 如何在 Delphi 10.1 Berlin 中访问私有方法 TStreamReader.FillBuffer?

如何在 Delphi 10.1 Berlin 中访问私有方法 TStreamReader.FillBuffer,我们在 10.1 之前使用类助手完成了它 - 但建议的解决方案不起作用:

它失败只是因为 GetMethod 返回 NIL。任何想法为什么会失败?

编辑: 我确实想知道它为什么失败

0 投票
1 回答
144 浏览

delphi - 如何在文字上使用 TExtendedHelper?

System.SysUtils.TShortIntHelper(和其他人)我可以写:

将数字格式化5string. 也有System.SysUtls.TExtendedHelper,但我无法编译:

E2018:需要记录、对象或类类型

其他不工作的版本:

  • 5.0.ToString()
  • (1.0+5.1).toString()
  • (5+0.).toString()(说 E2029: ')' 预期但 ']' 找到)

实际工作的版本:

  • (1+5.1).toString()
  • (1.1+1+5.1).toString()
  • 5.9e0.toString()

如果声明了扩展值const,它也不起作用:

但是有了它的定义q : extended = 5.5;就可以了。所以,我想知道为什么编译器会这样。