REALBasic Вопросы
В REALBasic, как мне пройти через все объекты в Window1? Есть ли свойство массива Window1 со всеми его дочерними элементами? Кроме того, как вы устанавливаете пользовательские свойства объектов: например, Me.isFlamingo = true Заранее спасибо!
2 ответа
Чтобы перебрать элементы управления в окне, используйте такой код:
ListBox1.DeleteAllRows
For i As Integer = 0 To Self.ControlCount-1
ListBox1.AddRow(Self.Control(i).Name)
Next
(Для этого примера обязательно добавьте хотя бы один ListBox в окно.)
Свойства устанавливаются так же, как вы описываете: ObjectInstance.PropertyName.
Если вы находитесь в случае перетаскивания объекта в окно, вы можете изменить его свойства, используя Me.PropertyName. В противном случае вы бы использовали имя объекта.
Добавить свойства к встроенному классу, например кнопке, можно двумя способами. Лучшим способом было бы создать подкласс класса PushBustton и добавить свойства к подклассу, как это было бы с любым пользовательским классом. Другой, несколько более уродливый способ - использовать пару перегруженных функций, например:
Function isFlamingo(Extends ByRef pb As PushButton) As Boolean
Dim flamingo As Boolean
//Do stuff to figure out if the PushButton is Flamingo-y
//and Return a Boolean based on the result
Return flamingo
End Function
А также:
Sub isFlamingo(Extends ByRef pb As PushButton, Assigns b As Boolean)
If b Then
//Do stuff that makes the PushButton flamingo-y
Else
//Do stuff that makes the PushButton not flamingo-y
End If
End Sub