OVH Cloud OVH Cloud

jscript, treeview+imagelist

17 réponses
Avatar
Bul
bonjour à tous,
je tente d'utiliser les active'x pour
treeview et imagelist en j[ava]script
et 2 questions pour commencer :
_ imagelist : je n'arrive pas à mettre
des images ( click droit, propriétés .. )
ou plus exactement elles "disparaissent"
dès le lancement du script.
( ce qui, bien entendu, fonctionne sans
souci sous VB par exemple )
_ treeview : comment dire que je veux
exécuter "telle fonction" lorsque l'on
clique sur un noud par exemple ?
( en VB par exemple, il suffirait de faire un
Sub TreeView1_NodeClick(ByVal Noeud As Node) )
merci d'avance.

7 réponses

1 2
Avatar
ASM

merci de vous intéresser à ce problème.
ND=TV.Nodes.Add(null,null , "exemple", "exemple",1)
provoque une erreur car ImageList (IL) associée
n'est pas initialisée,


oui, bien que ne comprennant rien au VbScript ou aux ActiveX
le pb avait été capté ;-)

on peut charger les images avec
IL.ListImages.Add(1,"un",LoadPicture("fichier"))
( ou en paramétrant les propriétés avec
un click droit sur ce composant )
et en javascript pas de loadpicture...


?
en JS, ce que je sais faire est

trucBidule = new Image();
trucBidule.src = 'machin_chose.jpg';

et pour une liste
(qui devrait alors se charger dans le cache) :

LI = new Array();
LI[0] = new Image(); LI[0].src='truc_0.jpg';
LI[1] = new Image(); LI[1].src='truc_1.jpg';
etc ...

ou :
MI='truc_0.jpg,truc_1.jpg,machin0.gif';
MI = MI.split(',');
LI = new Array();
for(var i=0;i<MI.length;) {
LI[i] = new Image();
LI[i].src = MI[i];
}

ou (à adapter)

<html>
<script type="text/javascript"><!--

function creeListImages(chemin,nombre) {
LI = new Array();
for(var i=0;i<nombre;i++) {
LI[i] = new Image();
LI[i].src=chemin+'/truc_'+i+'.jpg';
}
}

function ajouteImage(chemin){
var ind = LI.length;
LI[ind] = new Image();
LI[ind].src = LI[ind].src=chemin+'/truc_'+ind+'.jpg';
}

function afficheImage(index) {
// on clone le code html de réf d'une image
// on lui attribue la source de l'image à afficher
// on ajoute en fin d'affichage la nouvelle image
var newImage = document.getElementById('readroot').cloneNode(true);
newImage.id = 'NI_'+index;
newImage.src = LI[index].src;
newImage.style.display = 'block';
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newImage,insertHere);
}
// --></script>
<img id="readroot" style="display:none" src="vide.gif">
<p><a href="#" onclick="creeListImages('../photos',5);">
Creer la liste d'images</a>
<a href="#" onclick="for(var i=0;i<LI.length;i++)
afficheImage(i);">Afficher la liste d'images</a>
<p><a href="#" onclick="
ajouteImage('../photos');afficheImage(LI.length);">
Ajouter-voir une image de plus</a>
il doit etre possible ici de mettre un input file
pour faire charger-afficher une image du DD
<span id="writeroot"></span>
</html>

mais on doit pouvoir faire
plus simple, directement (ou presque) en JS.


à savoir si c'est + simple ?

--
******** (enlever/remove [OTER_MOI] du/from reply url) *******

Avatar
Bul
j'ai essayé :
var i=new Image();
i.src="SiteEnt.gif";
IL.ListImages.Add(1,"un",i);
=> image non valide ...
comme mes autres tentatives.
"on" vient bien y arriver, non ?
merci de m'aider...
Avatar
ASM

j'ai essayé :
var i=new Image();
i.src="SiteEnt.gif";
IL.ListImages.Add(1,"un",i);
=> image non valide ...
comme mes autres tentatives.
"on" vient bien y arriver, non ?
merci de m'aider...


La déclaration du chemin (la source) de l'image via JS
ne suffit pas à ce qu'elle soit instantanément dans le cache
faut lui laisser le temps de s charger peut-être ?

et ça :

function addJS() {IL.ListImages.Add(1,"un",i);}
var i=new Image();
i.onload = addJS;
i.src="SiteEnt.gif";

que donne-ce ?

mais là-dedans, il ne me semble pas que Add(trucbidule)
soit une fonction déclarée par JS ? !

et ne me semble pas qu'on appelle une image par son nom
on s'occupe plus volontier de sa source

peut-être que :

IL.ListImages.Add(1,"un",i.src);

? non plus ?

--
******** (enlever/remove [OTER_MOI] du/from reply url) *******

Avatar
Bul
pas encore ça ...
(j'avais d'ailleurs essayé en mettant
un alert(); pour contrôler )
j'ai essayé :
_IL.listimages.Add(1,"un","SiteEnt.gif");
_IL.listimages.Add(1,"un",name d'un img avec src="SiteEnt.gif"); ou input
type=image
_IL.listimages.Add(1,"un",name d'un img.src);
_var i=new Image(); i.src="SiteEnt.gif"; IL.listimages.Add(1,"un",i);
( peut-être d'autres encore ? )
mais là-dedans, il ne me semble pas que Add(trucbidule)
soit une fonction déclarée par JS ? !
effectivement, c'est une méthode de ImageList.


dur, dur ... on manque cruellement de doc ?
toutes les pistes sont les biens venues ... merci.


Avatar
ASM

mais là-dedans, il ne me semble pas que Add(trucbidule)
soit une fonction déclarée par JS ? !
effectivement, c'est une méthode de ImageList.




Il serait donc *normal* que le JavaScript soit
perdu dans l'interprétation de cette fonction, non?
A mons que du JS spécifique à l'ActiveX ne soit prévu
dans le moteur ActiveX ?

Ne manquerait-il pas tt simplement qque part un param
d'activation de la liste ?

dur, dur ... on manque cruellement de doc ?


Que dit la doc M$ sur le sujet ?
http://www.microsoft.com/com/tech/ActiveX.asp
et mieux :
http://msdn.microsoft.com/default.aspx
ou d'autres sites ?
http://search.msn.com/results.aspx?FORM=MSNH&q¬tive-X

un truc tout fait à 40$ ?
http://www.active-x.com/download.asp?id'49

toutes les pistes sont les biens venues ... merci.


google est ton ami ;-))

ici ?
"the list of images may not be displayed in the Images List window."
http://support.microsoft.com/default.aspx?scid=kb;en-us;230264
sinon :
http://search.microsoft.com/search/results.aspx?qu=images+list&View=msdn&st=b&c=3&s=1&swc=3

Perso, je ne puis plus :
tous les activeX (réactifs) que j'ai essayé de voir
ne s'affichent même pas (IE5 vieux Mac, ActiveX et scripts activés)
(de plus mon IE cale sur une erreur JS sur le site M$)


--
******** (enlever/remove [OTER_MOI] du/from reply url) *******
Stéphane MORIAUX : mailto:
Aide aux Pages Perso (images & couleurs, formulaire, CHP, JS)
http://perso.wanadoo.fr/stephane.moriaux/internet/
**************************************************************



Avatar
Bul
Stéphane MORIAUX tapotait de
ses petits doigts musclés :
Il serait donc *normal* que le JavaScript soit
perdu dans l'interprétation de cette fonction
en fait il faudrait lui passer le résultat d'un fonction


qui "chargerait" une image ( loadpicture en vbscript )
Ne manquerait-il pas tt simplement qque part un param
d'activation de la liste ?
à part <PARAM NAME="ImageList" VALUE="IL">


dans le treeview, je ne vois rien d'autre, y compris
dans d'autres langages.
je vais voir toutes les adresses données, google ...
pas très doué ( là non plus ) pour la recherche et
j'espère trouver en français, car en anglais
( là aussi ) je suis nul ...
quand même dommage d'être arrêté par un "détail"
comme celui-là.
merci en tout cas de votre patience, de votre aide,
et de vos conseils, si je trouve je le dirais.
n'hésitez pas pour d'autres pistes, suggestions ...
@+


Avatar
ASM

en fait il faudrait lui passer le résultat d'un fonction
qui "chargerait" une image ( loadpicture en vbscript )


donc ?
- passer l'info à ActiveX (pas de mon ressort) ?
- tout faire en JavaScript ?

sinon en JS (rappel) :
lancer une fonction dès qu'une nouvelle image désignée est chargée :

<script type="text/javascript"><!--
function test() {
window.open(i.src);
alert('image neuve = '+i.src);
}
function nouvImage() {
var urlImage = (document.getElementbyId)?
document.getElementbyId('fichier').value
:
document.forms['formImages'].fichier.value;
i=new Image();
i.onload = test;
i.src=urlImage;
}
// --></script>
<form name=formImages>
Choisir une image du DD : <input type=file id=fichier name=fichier>
<p>Voir cette image : <input type=button value=GO onclick="nouvImage();">
</form>


je vais voir toutes les adresses données, google ...


les urls données sortent pour le principal de M$ (us)

pas très doué ( là non plus ) pour la recherche et
j'espère trouver en français, car en anglais
( là aussi ) je suis nul ...


donc en français (grace à google.fr pages francophones)
ceci ?
http://search.microsoft.com/search/results.aspx?st=a&qu¬tiveX+images+liste&view=fr-fr



--
******** (enlever/remove [OTER_MOI] du/from reply url) *******
Stéphane MORIAUX : mailto:
Aide aux Pages Perso (images & couleurs, formulaire, CHP, JS)
http://perso.wanadoo.fr/stephane.moriaux/internet/
**************************************************************

1 2