【问题标题】:REALBasic - Programmatically create controlsREALBasic - 以编程方式创建控件
【发布时间】:2011-10-17 11:00:34
【问题描述】:

我正在尝试以编程方式创建一些标签,代码没有返回任何错误,但我在窗口中看不到任何标签。

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

我已验证记录集包含一些数据,循环正常工作,但没有显示标签,无法理解原因。

感谢您的帮助

【问题讨论】:

    标签: realbasic


    【解决方案1】:

    在 Real Studio 中有两种方法可以在运行时创建控件。首先是创建一个控件数组。您可以将控件命名为 MyLabel 并将其索引为零。那么您的代码将是:

    test(i) = new MyLabel
    

    第二种是使用ContainerControl。这个容器将包含一个标签,因为您可以使用 NEW 命令和使用 ContainerControl.EmbedWithin 方法将它们添加到您的窗口(或其他容器)。

    出于多种原因,我通常更喜欢 ContainerControl 方法,但主要是因为控件数组使逻辑变得更加复杂。容器的唯一缺点是它需要 Real Studio Professional 或 Real Studio Enterprise。

    http://docs.realsoftware.com/index.php/UsersGuide:Chapter_5:Creating_New_Instances_of_Controls_On_The_Fly

    http://docs.realsoftware.com/index.php/ContainerControl

    【讨论】:

    • 您还可以在运行时使用 Control.Close 方法删除索引控件,这对于创建动态布局很有用。
    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多