我有一个包含多个列表框的xojo应用程序。其中一个列表框对象名为DLBObject。我只想将新方法添加到DLBObject中,这样就可以使用点符号调用这些方法。例如DLBObject.DayForward。我该怎么做?谢谢!
发布于 2014-06-26 05:35:04
创建一个新类,将其命名为"MyListBox",并将其超级名称设置为"ListBox“。
将您的方法添加到该类中。
然后,在窗口中,将每个列表框的Super从" listbox“更改为"MyListBox”(显示检查器以查看列表框控件的属性)。
现在,这些列表框使用您创建的新扩展类,并具有您添加的那些新方法。
发布于 2014-06-28 06:33:55
Thomas的回答是扩展内置类功能的常用方法,子类化通常是您想要做的。
然而,有时你想让所有不同的列表框和它们的子类,甚至是你可以使用的类的所有类型的控件或父类(例如RectControl)都可以使用功能。
为此,您可以在模块中创建全局方法,该模块的第一个参数是您想要扩展的类的类型,并以"Extends“关键字为前缀。例如:
Sub AppendToColumn(Extends sender As Listbox, value As String, column As Integer)
if sender.ListCount > 0 and column > -1 and sender.ColumnCount > column then
for rowIndex As integer = 0 to sender.ListCount - 1
sender.Cell(rowIndex, column) = sender.Cell(rowIndex, column) + value
next
end if
End Sub然后你就可以在任何列表框上使用该函数了。
DLBObject.AppendToColumn(" wibble", 0)或者..。
me.AppendToColumn(" wobble", 1)在列表框的作用域内。
https://stackoverflow.com/questions/24418453
复制相似问题