2014-06-25 75 views
1

我有一個包含多個列表框的xojo應用程序。列表框對象之一被命名爲DLBObject。我只是想將新方法添加到DLBObject,以便我可以使用點符號調用這些方法。例如DLBObject.DayForward。我怎麼做? THANX!如何將新方法添加到現有的xojo對象

回答

3

創建一個新類,我們將其命名爲「MyListBox」,並將其名稱設置爲「ListBox」,其名稱爲Super

將您的方法添加到該類。

然後,在窗口中,將每個列表框的列表框從「ListBox」更改爲「MyListBox」(顯示Inspector以查看列表框控件的屬性)。

現在這些列表框使用您創建的新擴展類,並添加了您添加的新方法。

3

托馬斯的答案是擴展內置類的功能的常用方式,子類通常是你想要做的。

但是,有時您希望爲所有不同的列表框及其子類,甚至是可以使用的類的所有類型的控件或父類提供功能(例如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) 

從的範圍之內列表框。

相關問題