Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# getCellAt et la notion d'objet

Envoyé par : Myrdhin

Date : 27/05/2006 01:18

Bonsoir,

J'ai tenté d'utiliser la fonction :

getCellAt(event.clientX, event.clientY, row, column, part)

Voici la définition donnée pour cette fonction :

void getCellAt ( PRInt32 x , PRInt32 y , out PRInt32 row , out nsITreeColumn col , out ACString childElt )

Plusieurs choses m'interpellent :

1 - j'ai tenté de mettre une simple variable en tant que 3eme paramètre (out PRInt32 row) et là, la console javascript me dit qu'il faut obligatoirement un objet... OK ! je passe donc en paramètre un objet créé ainsi :

var row={};

Pour récupérer sa valeur, il faut utiliser "row.value"... Pourquoi pas... Déjà, je trouve cela quelque peu bizarre...

2 - le second paramètre doit être un objet "nsITreeColumn". Pas de problème, je créé donc un objet ainsi :

var col={};

Cet objet est passé en tant que 4ème paramètre. je tente donc ensuite d'accéder à certaines de ses propriétés comme par exemple "col.id" ou "col.index". Et là, ERREUR ! Elles n'existent pas !!!

En fait, l'objet "nsITreeColumn" est contenu dans la propriété value de l'objet "col" !!! Il faut donc utiliser "col.value.id" ou "col.value.index" :(

Vraiment bizarre et je trouve franchement peu logique... J'ai certainement raté quelque chose dans les notions d'objet dans le langage javascript (vivement Python !). Quelqu'un pourrait-il m'expliquer tout cela ? La doc est-elle bizarre ou est-ce ma compréhension qui en a pris un coup (si c'est ça, je m'y ferais :'( ) ?

Merci d'avance !

# Re: getCellAt et la notion d'objet

Envoyé par : laurentj

Date : 29/05/2006 10:41

Cela n'a rien à voir avec Javascript. Enfin pas tout à fait. C'est XpConnect qui veut ça. Les paramètre en out, sont des valeurs de sorties, et non des valeurs d'entrées. Il faudrait donc pouvoir indiquer une référence à une variable pour récupérer les valeurs en sortie (avoir l'équivalent d'un pointeur en C++). Or en javascript, tu n'a pas cette notion.

D'où la nécessité (imposée par XpConnect) de fournir un objet, et XpConnect mettra la valeur de retour dans la propriété value de cet objet.

Finalement, c'est tout à fait logique ;-)

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.