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 !
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.