REALBasic - Программно создавать элементы управления
Я пытаюсь создать метку программно, код не возвращает никакой ошибки, но я не вижу метки в моем окне.
dim dr As DatabaseRecord
dim sql As String
sql = "SELECT * FROM pack WHERE applicabilita_modello LIKE '%" + versione + "%'"
dim rs As RecordSet = database.SQLSelect(sql)
dim i As Integer = 1
dim test(10) As Label
while not rs.EOF
test(i) = new Label
test(i).Text = rs.Field("descrizione").StringValue
test(i).Left = me.Left
test(i).Top = me.Top * i
test(i).Enabled = true
test(i).Visible = true
rs.MoveNext
i = i + 1
wend
rs.Close
Я проверил, что набор записей содержит некоторые данные, цикл работает правильно, но метка не отображается и не могу понять, почему.
спасибо за любую помощь
1 ответ
Существует два способа создания элементов управления во время выполнения в Real Studio. Во-первых, создать массив элементов управления. Вы могли бы назвать элемент управления MyLabel и дать ему нулевой индекс. Тогда ваш код будет:
test(i) = new MyLabel
Второе - использовать ContainerControl. Этот контейнер будет содержать метку и потому, что вы можете добавить их в свое окно (или другой контейнер) с помощью команды NEW и с помощью метода ContainerControl.EmbedWithin.
Я обычно предпочитаю подход ContainerControl по многим причинам, но в основном потому, что массивы управления делают логику более сложной. Единственный недостаток контейнеров заключается в том, что для этого требуется Real Studio Professional или Real Studio Enterprise.