2016-03-20 7 views
1

Sur une application Web Xojo, j'ai créé un TextFieldClass avec la propriété "required as boolean".Comment puis-je accéder dynamiquement à une propriété d'une sous-classe sur Xojo?

Sur une page Web, j'ai quelques objets TextFieldClass. Ce que je veux faire est simple ... Je veux faire un self.ControlCount sur la page Web, et vérifie si tous textFieldClass avec la propriété requise avec "vrai" valeur ont en fait contenu dedans. ?

Facile, droit ...

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 

Et si je tente:

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 

Merci pour votre aide!

Répondre

2

Essayez ceci:

c = TextFieldClass(self.ControlAtIndex(i)) 
1

Vous étiez très proche. Puisque controlAtIndex ramène un RectControl, vous devez lancer RectControl dans la sous-classe textFieldClass. Techniquement le même que ci-dessus mais avec plus d'explications.

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