Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 是否使用在另一个单元的实现部分声明的对象类型?_Oop_Delphi_Vcl_Tdbgrid - Fatal编程技术网

Oop 是否使用在另一个单元的实现部分声明的对象类型?

Oop 是否使用在另一个单元的实现部分声明的对象类型?,oop,delphi,vcl,tdbgrid,Oop,Delphi,Vcl,Tdbgrid,我正在制作TDBGrid的后代。既然在单元的实现部分DBGrids中声明了类型为TDBGridInplaceEditor的变量,如何声明该变量 既然TDBGridInplaceEditor类型的变量是在单元DBGrids的实现部分声明的,那么如何声明它呢 你不能 你在评论中说: 该决定阻止TDBGrid的子类实例化扩展的inplace编辑器 事实并非如此。您可以在网格上调用CreateEditor,获得TDBGridInplaceEdit的实例,但无论如何,访问VCL单元实现中的类的核心问题已经

我正在制作
TDBGrid
的后代。既然在单元的实现部分
DBGrids
中声明了类型为
TDBGridInplaceEditor
的变量,如何声明该变量

既然TDBGridInplaceEditor类型的变量是在单元DBGrids的实现部分声明的,那么如何声明它呢

你不能

你在评论中说:

该决定阻止
TDBGrid
的子类实例化扩展的inplace编辑器


事实并非如此。您可以在网格上调用
CreateEditor
,获得
TDBGridInplaceEdit

的实例,但无论如何,访问VCL单元实现中的类的核心问题已经被证明是不可能的。问另一个问题不太可能神奇地使之成为可能。或者您希望我们为您编写所有自定义代码吗?@Dr-复制该单元对您不起作用,因为您正在包中使用它。它在一个独立的项目中工作,我测试过。如果我不喜欢这个问题,我会投否决票或投票结束。这是一个有趣的话题。然而,你在侮辱我(和这里的其他人)这一事实告诉我,你缺乏尊重。当然,我可能没有你做开发人员那么久。但是那种态度一事无成,我再说一遍。这个特别的问题,不管你之前的问题是什么(我们不应该读),答案都是“技术上不可能”。您不能在VCL单元或任何其他单元的实现中声明类的变量。这不是这个问题要问的吗?我建议再次问一个关于您试图解决的问题的问题。但我已经问过了,我得到的只是[compiler error Undeclare identifire:'TDBGridInplaceEdit'],尽管我当然使用了DBGrids。这使得搜索TDBGridInplaceEdit的声明并发现它在实现部分。你能告诉我你以前是怎么做的吗?
CreateEditor
返回的编译时类型是
TInplaceEdit
,但实际返回的实例的类型是
TDBGridInplaceEdit
。您将变量声明为
TInplaceEdit
类型,代码将编译。实际的实例表现为
TDBGridInplaceEdit
,因为这就是它。回答您的问题很简单。但如果你能让我们帮你解决问题,那对你更有帮助的是什么呢。你为什么不告诉我们你的实际问题是什么?@DrWael:你总是对那些试图帮助你的人如此粗鲁和对抗?@DrW-说不出来,你从来没有告诉我们你想要实现什么,是吗?我从来没有尝试过覆盖下拉列表之类的内容。