如何向现有xojo对象添加新方法

时间:2014-06-25 20:59:19

标签: xojo

我有一个包含许多列表框的xojo应用程序。其中一个列表框对象名为DLBObject。我只想向DLBObject添加新方法,以便我可以使用点表示法调用这些方法。例如DLBObject.DayForward。我怎么做? THANX !!!

2 个答案:

答案 0 :(得分:3)

创建一个新类,我们将其命名为“MyListBox”,并将其 Super 名称设置为“ListBox”。

将您的方法添加到该类。

然后,在窗口中,将每个列表框的 Super 从“ListBox”更改为“MyListBox”(显示Inspector以查看列表框控件的属性)。

现在这些列表框使用您创建的新扩展类,并添加了您添加的新方法。

答案 1 :(得分:3)

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)

来自列表框的范围。