2009-08-18 9 views
1

Je ne comprends pas pourquoi la fonction width est implémentée sur tous les éléments si elle renvoie 0 pour les éléments de largeur non nulle. Le suivant renvoie 0 pour moi.Chaussures: Element.width return 0

Shoes.app do 
    p = para "My width is: " 
    para p.width 
end 

Pourquoi est-ce? (app.width ne renvoie pas 0)

Répondre

0

Le problème est que la taille de l'objet para est déterminée dynamiquement quand il est dessiné. Au moment où vous créez le second para, rien n'a encore été défini, donc aucune largeur n'a été définie. Vous pouvez voir que l'accès à la largeur après avoir dessiné les travaux comme prévu:

Shoes.app do 
    p = para "My width is: " 
    @para = para p.width 
    button 'Get Width' do 
    @para.text = p.width 
    end 
end 

La façon de se déplacer est d'utiliser la méthode de démarrage, qui est appelée lorsque la fente contenant est tirée pour la première fois:

Shoes.app do 
    p = para "My width is: " 
    width = para p.width 
    start do 
    width.text = p.width 
    end 
end 
+0

Je comprends. Merci beaucoup pour votre réponse. – Simon