问题标签 [tobject]

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 投票
1 回答
847 浏览

delphi - 为什么 TObject.AfterConstruction 和 BeforeConstruction 具有公共可见性?

今天,当我不得不重写TObjectBeforeConstruction方法时,我想到了一个非常简单的问题:

为什么TObject方法AfterConstructionBeforeConstructionpublic可见性?

我希望他们是protected。他们不是的原因是什么?

我无法想象调用AfterConstructionBeforeConstruction不调用该类的构造函数或析构函数的有效目的。你?

0 投票
2 回答
499 浏览

delphi - Delphi Livebinding 对象和组合框或单选按钮

我为业务逻辑定义了后续单元

现在我将设计一个用于编辑 TPerson 的表单,其中包含三个 TEdit 和一个 TCombobox 来选择性别。

如何为 TCombobox 使用双向实时绑定?

0 投票
1 回答
738 浏览

android - Android上的Delphi FireMonkey TListBox AddObject异常

我在为Delphi 10.0 SeattleTObject的 FireMonkey 添加值时遇到问题。TListBox

Integer将变量转换为TObject指针时会引发异常。

我尝试了演员阵容TFmxObject,但没有成功。在 Windows 上,演员阵容就像一个魅力,但在 Android 上却引发了例外。

这是我的代码:

0 投票
1 回答
685 浏览

class - Inno Setup 在事件处理程序中获取 TObject 类型/类

我有一个事件过程,用于检查两个对象/控件(和)的OnKeyUp按键。两个对象都需要在启用之前完成。TNewEditTNewComboBoxTNewButton

但是,我找不到一种方法来知道如何获取 的类型Sender: TObject,如果那是TNewEditor TNewComboBox

任何人都可以帮忙吗?

0 投票
5 回答
2271 浏览

c# - 传递一个泛型类到一个表格

我似乎无法通过搜索找到答案,所以这里......

我知道我可以通过使用这种类型的代码将 Class 对象一般地传递​​给其他类:

然后以这种方式构建:

但是,我有一个应用程序需要我打开一个表单并以某种方式传入泛型类型以在该表单中使用。我试图能够将此表单重新用于许多不同的类类型。

有谁知道这是否可能,如果可以,怎么做?

我已经对 Form 构造函数进行了一些实验,但无济于事。

非常感谢,戴夫

更新:澄清我想要达到的结果是

在此处输入图像描述

更新:8 月 4 日,我已经前进了一点,但我为解决方案提供了赏金。这是我现在拥有的:

0 投票
2 回答
135 浏览

delphi - 变体记录而不是重载的对象类型?

我正在解决一个需要动态调整数组大小的问题,在这个问题上需要大量操作。我已经成功编写了两个类,t_one 和 t_two:

这两个对象的代码几乎相同,只是 Myarray1 在一种情况下是 single 数组,而在另一种情况下是 longint 数组。将其制成单个对象以使用变体数组的唯一方法是(这会减慢速度)吗?变体记录对于我正在做的事情也是低效的。如果我能说

这就是我的意思,但显然这种语法是诅咒。当然,有些地方方法调用和函数结果需要知道数据类型,但一旦定义它们是一致的。想法?使用变体数组并遭受减速?

0 投票
1 回答
85 浏览

c++ - C++Builder 中的 OnClick 事件签名问题

我想创建一个用另一个替换当前图像的函数。问题是我要替换 64 张图片。我创建了一个带有TImage* Sender参数的函数,但它仅在我设置Sender为时才有效TObject*

如何更改此功能:

进入这个

我正在使用 VCL 库。

0 投票
2 回答
205 浏览

delphi - Delphi调用基于TObject类型的虚拟构造函数

我有一个从 TStringList 对象派生的对象,我称之为“TAutoString”。它允许您在创建列表时指定对象类型。然后,每次将新条目添加到字符串列表时,它还会创建与该字符串条目关联的对象的副本。这使得与每个字符串一起存储各种附加信息变得很容易。例如:

在对象内部,类信息存储在类变量中:

现在,每次添加新项目时,它都会创建一个指定类型的新对象:

我现在可以添加或读取与每个字符串条目相关的信息。

当对象没有构造函数时,这很有效。如果对象有构造函数,则在创建对象时不会调用其构造函数,因为 TObject 的构造函数不是虚拟的。

谁能想到解决这个问题的方法。我见过使用 RTTI 库的解决方案,但这是在 Delphi-7 中,它没有 RTTI 库。

顺便说一句,TObject 的构造函数不是虚拟的似乎有点奇怪。如果是这样,它将启用各种有用的功能,例如我正在尝试实现的功能。

编辑:雷米的建议只是我需要的轻推。我最初尝试过类似的策略,但我无法让它发挥作用。当它看起来不像我认为的那样工作时,我认为一定有一些我不了解虚拟方法的地方。他的帖子促使我再看一遍。事实证明,我已经为要附加的对象的构造函数放弃了“覆盖”指令。现在它按应有的方式工作。

我担心的另一个问题是我已经在一堆其他应用程序中使用了自动字符串,其中对象基于“TObject”,我不想回去更改所有代码。我通过重载构造函数并为基于 TObject 的对象和另一个用于我的 TAutoClass 对象的构造函数解决了这个问题:

根据调用哪个构造函数,对象类存储在不同的变量中。

然后,当构建对象时,我会检查已分配的对象并使用该对象:

新版本完美地适用于任何一种类型的对象。

0 投票
1 回答
121 浏览

class - 有什么方法可以减少 Delphi 代码/以某种方式将其他对象放入变量中?

我有

如果我更改as TDateEdit代码:

并使用这个:

代码有效....但我需要改变

我需要一种方法来更改此变量类型以减少我将使用的代码

但变量是

如何在不重复每种对象类型的代码的情况下做到这一点?