繁体   English   中英

VB6 有没有办法在分配相同类型的变量时抛出类型不匹配错误?

[英]Is there a way for VB6 to throw a type mismatch error when assigning a variable of the same type?

我试图找出类型不匹配错误的原因,但我不明白它甚至被抛出的原因。 我正在分配一个与分配对象相同类型的变量。

Begin bxControls.starTable m_tblClaims 'Defined at the top of the form file

Dim objTable As PVDataTable5.DataTable
Set objTable = m_tblClaims.Table
Begin PVDataTable5.DataTable dtTable 'Defined at the top of the .ctl file

'Property inside of bxControls.starTable
Public Property Get Table() As Object
Attribute Table.VB_MemberFlags = "40"
        Set Table = dtTable
End Property

如您所见,发生的分配不应该有类型不匹配,因为它们是相同的类型。 任何帮助都是极好的。 TIA

尝试这个

Dim objTable As PVDataTable5.DataTable
Set objTable = m_tblClaims.Table.Object

请注意,这可能在 IDE 中有效,但在编译时会失败。

user-controls 的故事大部分完全来自 IDE。 例如,所有用户控制属性/方法都被称为后期绑定,即使 IDE 智能感知看起来调用站点是早期绑定的。

对于当前在 IDE 中加载的每个用户控件类型(例如,作为项目组的一部分),IDE 使用合并的原始控件属性/方法和一些 VB 提供的(如Visible等)创建代理日期类型来自VBControlExtender class。

这就是为什么Dim objTable As PVDataTable5.DataTable有时不是PVDataTable5.DataTable数据类型的声明,而是 OCA 文件中的代理PVDataTable5.DataTable的声明,即在 IDE 中加载用户控件时。

传递对 VB6 user-controls 的引用的唯一明智的方法是在加载用户控件和在编译的 OCX 中引用时都有效,是传递VBControlExtender并使用其Object访问被包装的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM