我有一个包含许多列表框的 xojo 应用程序。列表框对象之一被命名为 DLBObject。我只是想向 DLBObject 添加新方法,以便我可以使用点表示法调用这些方法。例如 DLBObject.DayForward。我怎么做?谢谢!!!
问问题
639 次
2 回答
3
创建一个新类,我们将其命名为“MyListBox”,并将其超级名称设置为“ListBox”。
将您的方法添加到该类。
然后,在窗口中,将每个列表框的Super从“ListBox”更改为“MyListBox”(显示检查器以查看列表框控件的属性)。
现在这些列表框使用您创建的新扩展类并添加了这些新方法。
于 2014-06-25T21:35:04.357 回答
3
Thomas 的回答是扩展内置类功能的常用方法,子类化通常是您想要做的。
但是,有时您希望为所有不同的列表框及其子类提供功能,甚至为您可以使用的类(例如RectControl
)提供所有类型的控件或父类。
为此,您可以在 Module 中创建 Global 方法,它们的第一个参数是您要扩展的类的类型,并以“ 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)
从列表框的范围内。
于 2014-06-27T22:33:55.100 回答