VB6 Picturebox.Line 元组参数
VB6 Picturebox.Line tuple arguments
我刚刚发现 VB6 的一个令人惊讶的功能。
PictureBox
控件有一个方法 Line
:
Sub Line(Flags As Integer, X1 As Single, Y1 As Single, X2 As Single, Y2 As Single, Color As Long)
但通常这样称呼:
Picture1.Line (lastX, lastY)-(X, Y), vbBlue
我从来不知道这个 "auto-unbox" 功能。而flags
参数好像是跳过了,其实不是Optional
.
这是什么魔法?这是此控件或语言的特殊功能吗?其他控件可以使用此功能吗?
实际上,您的 Line 方法定义对于图片框控件是不正确的。您可能从对象浏览器复制粘贴了您的定义?我一直不明白为什么对象浏览器在这一点上显然是错误的。 (或者至少我从未使用过该语法)
有关图片框控件的 Line 方法的详细信息,请参阅 https://msdn.microsoft.com/en-us/library/aa230480(v=vs.60).aspx。这描述了您的 'sorcery' 调用语法 :).
这是从 QBASIC 继承的语法,其中大多数图形函数使用 (x, y)
来表示屏幕坐标,例如LINE ([X], [Y]) - ([X], [Y]), [Colour]
.
语法在该语言中是唯一的,不能表示为 COM 调用,对象检查器会显示编译器可能将调用翻译成什么。
他们可能只是出于 portability/compatibility 的原因而离开它,就像 Visual Basic 中的许多其他原因一样。
我刚刚发现 VB6 的一个令人惊讶的功能。
PictureBox
控件有一个方法 Line
:
Sub Line(Flags As Integer, X1 As Single, Y1 As Single, X2 As Single, Y2 As Single, Color As Long)
但通常这样称呼:
Picture1.Line (lastX, lastY)-(X, Y), vbBlue
我从来不知道这个 "auto-unbox" 功能。而flags
参数好像是跳过了,其实不是Optional
.
这是什么魔法?这是此控件或语言的特殊功能吗?其他控件可以使用此功能吗?
实际上,您的 Line 方法定义对于图片框控件是不正确的。您可能从对象浏览器复制粘贴了您的定义?我一直不明白为什么对象浏览器在这一点上显然是错误的。 (或者至少我从未使用过该语法)
有关图片框控件的 Line 方法的详细信息,请参阅 https://msdn.microsoft.com/en-us/library/aa230480(v=vs.60).aspx。这描述了您的 'sorcery' 调用语法 :).
这是从 QBASIC 继承的语法,其中大多数图形函数使用 (x, y)
来表示屏幕坐标,例如LINE ([X], [Y]) - ([X], [Y]), [Colour]
.
语法在该语言中是唯一的,不能表示为 COM 调用,对象检查器会显示编译器可能将调用翻译成什么。
他们可能只是出于 portability/compatibility 的原因而离开它,就像 Visual Basic 中的许多其他原因一样。