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 中的许多其他原因一样。