Class 如何动态访问Xojo上子类的属性?

Class 如何动态访问Xojo上子类的属性?,class,object,web-applications,properties,xojo,Class,Object,Web Applications,Properties,Xojo,在Xojo WebApp上,我创建了一个属性为“required as boolean”的TextFieldClass 在网页上,我有一些TextFieldClass对象 我想做的很简单…我想在网页上做一个self.ControlCount,检查所有textFieldClass,以及具有“true”值的所需属性是否实际上都包含内容 简单,对吧 Dim i as integer Dim c As textFieldClass For i=0 To self.ControlCount if

在Xojo WebApp上,我创建了一个属性为“required as boolean”的
TextFieldClass

在网页上,我有一些
TextFieldClass
对象

我想做的很简单…我想在网页上做一个
self.ControlCount
,检查所有
textFieldClass
,以及具有“true”值的所需属性是否实际上都包含内容

简单,对吧

Dim i as integer
Dim c As textFieldClass
For i=0 To self.ControlCount
    if self.ControlAtIndex(i) isa textFieldClass then
        **c=self.ControlAtIndex(i) // i got an error… expected class textFieldClass, but got class webObject…**
    End If
Next
如果我尝试:

Dim i as integer
Dim c As WebObject
For i=0 To self.ControlCount
    if self.ControlAtIndex(i) isa textFieldClass then
        c=self.ControlAtIndex(i)
        **if c.required then // I got an error… Type "WebObject" has no member named "required"**
            // do something here…
        end if
    End If
Next
谢谢你的帮助

试试这个:

c = TextFieldClass(self.ControlAtIndex(i))

你真的很接近。因为controlAtIndex带回了一个RectControl,所以必须将RectControl强制转换为textFieldClass子类。技术上与上述相同,但有更多解释

Dim i as integer
Dim c As WebObject
For i=0 To self.ControlCount-1 //Fixes mistake in original code.
    if self.ControlAtIndex(i) isa textFieldClass then
        c= textFieldClass(self.ControlAtIndex(i)) //Need to cast here
        if c.required then
            // do something here…
        end if
    End If
Next