#xojo
#xojo
Вопрос:
У меня есть приложение xojo, которое включает в себя несколько списков. Один из объектов ListBox называется DLBObject . Я просто хочу добавить новые методы в DLBObject, чтобы затем я мог вызывать эти методы, используя точечную нотацию. Например, DLBObject.День вперед. Как мне это сделать? СПАСИБО!!!
Ответ №1:
Создайте новый класс, назовем его «MyListBox» и присвоим ему суперимено «ListBox».
Добавьте свои методы в этот класс.
Затем в окне измените супер каждого из ваших списков с «ListBox» на «MyListBox» (покажите инспектору, чтобы увидеть свойства элементов управления listbox).
Теперь в этих списках используется новый расширенный класс, который вы создаете, и есть те новые методы, которые вы добавили.
Ответ №2:
Ответ Томаса — это обычный способ расширения функциональности встроенного класса, обычно вы хотите сделать подклассы.
Однако иногда вы хотите сделать доступными функциональные возможности для всех ваших различных списков и их подклассов или даже для всех типов элементов управления или родительских классов для классов, которые вы можете использовать (например 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)
из области списка.