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.

10 réponses

1 2
Avatar
Etienne SOBOLE
"Bul" a écrit dans le message de news:
ckdc9v$kvn$
bonjour à tous,
je tente d'utiliser les active'x pour
treeview et imagelist en j[ava]script


un active X/
beurk... t'es fou?

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.


on peut voir une page?
parce que c'est pas tres clair...

lorsque tu mets ton activeX dans une page indépendament du javascript, ca
fonctionne ton truc?

Etienne

Avatar
Bul
je suis sûrement fou, mais je trouve
que javascript est un langage tellement
"extraordinaire", qu'il ne lui manque que la
gestion de fichiers ( par exemple, et autres ... )
pour devenir un vrai langage de programmation.
hélas, sans active'X on ne peut pas faire
tout ce que l'on veut ...

extrait de "ma" source

<OBJECT id="IL"
classid="clsid:2C247F23-8591-11D1-B16A-00C0F0283628"
VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="1005">
<PARAM NAME="_ExtentY" VALUE="1005">
<PARAM NAME="BackColor" VALUE="8454143">
<PARAM NAME="ImageWidth" VALUE="16">
<PARAM NAME="ImageHeight" VALUE="16">
<PARAM NAME="MaskColor" VALUE="12632256">
<PARAM NAME="UseMaskColor" VALUE="-1">
<PARAM NAME="_Version" VALUE="393216"></OBJECT>
<OBJECT id="TV"
name="TV"
class="tv1"
style=" height:80%;
width:95%;"
classid="clsid:C74190B6-8589-11D1-B16A-00C0F0283628"
ViewAsText>
<PARAM NAME="_ExtentX" VALUE="9393">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_Version" VALUE="393217">
<PARAM NAME="HideSelection" VALUE="0">
<PARAM NAME="Indentation" VALUE="750">
<PARAM NAME="LabelEdit" VALUE="1">
<PARAM NAME="LineStyle" VALUE="1">
<PARAM NAME="PathSeparator" VALUE="/">
<PARAM NAME="Sorted" VALUE="1">
<PARAM NAME="Style" VALUE="7">
<PARAM NAME="Checkboxes" VALUE="0">
<PARAM NAME="FullRowSelect" VALUE="0">
<PARAM NAME="HotTracking" VALUE="0">
<PARAM NAME="Scroll" VALUE="0">
<PARAM NAME="SingleSel" VALUE="0">
<PARAM NAME="ImageList" VALUE="IL">
<PARAM NAME="BorderStyle" VALUE="0">
<PARAM NAME="Appearance" VALUE="0">
<PARAM NAME="MousePointer" VALUE="0">
<PARAM NAME="Enabled" VALUE="1">
<PARAM NAME="OLEDragMode" VALUE="0">
<PARAM NAME="OLEDropMode" VALUE="0"></OBJECT>
<script type="Text/JavaScript">
var ND=TV.Nodes.Add(null,null , "exemple", "exemple",1);
</script>

me donne l'erreur "imagelist doit être
initialisé avant d'être utilisée".

si je fais la même chose sous visual basic
par exemple pas de soucis : click droit
sur l'objet et mettre les images ... avec
j[ava]script je fais la même chose mais
les images sont "supprimées" dès le lancement
du script
la gestion du treeview fonctionne comme je
veux, mais agrémenté de quelques images
ce serait plus "conviviable", plus "beau".
Avatar
ASM

hélas, sans active'X on ne peut pas faire
tout ce que l'on veut ...


ça fonctionnerait sur mon (vieux) Mac ?

j'y connais rien de rien
mais ... betement ...
si
VIEWASTEXT était remplacé par VIEWASLIST ?
ou doublé ?

sinon, avec :
ND=TV.Nodes.Add(null,null , "exemple", "exemple",1);
bien que je ne sache pas trop à quoi ça sert,
faudra peut-être recorriger au fur et à mesure les
nouveaux IDs ?
ça s'additionne tout seul à la liste de "IL" ?
çà se déclanche comment et où ?

[pour archives]
extrait de "ma" source

<OBJECT id="IL"
classid="clsid:2C247F23-8591-11D1-B16A-00C0F0283628"
VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="1005">
<PARAM NAME="_ExtentY" VALUE="1005">
<PARAM NAME="BackColor" VALUE="8454143">
<PARAM NAME="ImageWidth" VALUE="16">
<PARAM NAME="ImageHeight" VALUE="16">
<PARAM NAME="MaskColor" VALUE="12632256">
<PARAM NAME="UseMaskColor" VALUE="-1">
<PARAM NAME="_Version" VALUE="393216"></OBJECT>
<OBJECT id="TV"
name="TV"
class="tv1"
style=" height:80%;
width:95%;"
classid="clsid:C74190B6-8589-11D1-B16A-00C0F0283628"
ViewAsText>
<PARAM NAME="_ExtentX" VALUE="9393">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_Version" VALUE="393217">
<PARAM NAME="HideSelection" VALUE="0">
<PARAM NAME="Indentation" VALUE="750">
<PARAM NAME="LabelEdit" VALUE="1">
<PARAM NAME="LineStyle" VALUE="1">
<PARAM NAME="PathSeparator" VALUE="/">
<PARAM NAME="Sorted" VALUE="1">
<PARAM NAME="Style" VALUE="7">
<PARAM NAME="Checkboxes" VALUE="0">
<PARAM NAME="FullRowSelect" VALUE="0">
<PARAM NAME="HotTracking" VALUE="0">
<PARAM NAME="Scroll" VALUE="0">
<PARAM NAME="SingleSel" VALUE="0">
<PARAM NAME="ImageList" VALUE="IL">
<PARAM NAME="BorderStyle" VALUE="0">
<PARAM NAME="Appearance" VALUE="0">
<PARAM NAME="MousePointer" VALUE="0">
<PARAM NAME="Enabled" VALUE="1">
<PARAM NAME="OLEDragMode" VALUE="0">
<PARAM NAME="OLEDropMode" VALUE="0"></OBJECT>
<script type="Text/JavaScript">
var ND=TV.Nodes.Add(null,null , "exemple", "exemple",1);
</script>

me donne l'erreur "imagelist doit être
initialisé avant d'être utilisée".


--
******** (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
ça fonctionnerait sur mon (vieux) Mac ?
active'X = windows + internet explorer


VIEWASTEXT était remplacé par VIEWASLIST ?
ça ne change rien, je ne connaissais pas d'ailleurs


ou doublé ?
euh ? mais encore ?


faudra peut-être recorriger au fur et à mesure
les nouveaux IDs ?
pas compris non plus là.


ça s'additionne tout seul à la liste de "IL" ?
çà se déclanche comment et où ?
si je fais la "même chose" avec Visual Basic,


par exemple, un click droit sur le composant
permet d'ajouter des images. avec html/
javascript ces images "disparaissent" dès
le lancement.
j'ai tenté :
IL.ListImages.Add(1,"1","SiteEnt.gif"); // nom du fichier
IL.ListImages.Add(1,"1",SiteEnt); // <img src="SiteEnt.gif"
name="SiteEnt" ...
IL.ListImages.Add(1,"1",LoadPicture("SiteEnt.gif")); // je pense que
c'est ce qui est fait en VBScript
//
mais javascript ne connais pas LoadPicture ..
... et d'autres ... sans succés ...


Avatar
ASM

ça fonctionnerait sur mon (vieux) Mac ?
active'X = windows + internet explorer




et voilà, c'est bien ce qu'il me semblait :-/

VIEWASTEXT était remplacé par VIEWASLIST ?
ça ne change rien, je ne connaissais pas d'ailleurs




J'ai bien dit que je n'y connaissais rien
(rappel : je suis sur vieux Mac ! !)
mais qui ne tente rien ...

ou doublé ?
euh ? mais encore ?




Comme je ne comprends pas la finalité de la chose
(pas la peine de tenter de m'ébaubir avec visualBasic)
ni le comment ça doit fonctionner

Bref : que veux-tu faire ?
- une liste d'image (fixée d'avance ?)
- sur un click ajouter à l'affichage une des images ?
- sur un click avoir un prompt qui te permet d'entrer une nvelle image ?
- sur un click aller sur le DD à la pêche d'une nvelle image ?
- ou quoi d'autre ?

faudra peut-être recorriger au fur et à mesure
les nouveaux IDs ?
pas compris non plus là.




Je croyais qu'avec Add(machin)
ce servait à créer sur la page (html)
un nouveau calque ou nouvelle image
pour y placer une des images de la liste
C'est pas çà ? si oui, il serait sympa de nommer cette image
(lui donner un ID) pour si on veut la gommer ensuite, par exemple

ça s'additionne tout seul à la liste de "IL" ?
çà se déclanche comment et où ?
si je fais la "même chose" avec Visual Basic,


par exemple, un click droit sur le composant
permet d'ajouter des images. avec html/
javascript ces images "disparaissent" dès


Mais quelles images ?
ou est la liste des images ?

le lancement.
j'ai tenté :
IL.ListImages.Add(1,"1","SiteEnt.gif"); // nom du fichier


alors, en JS de base
perso, je :
- crée un array de ma liste d'images

LI = new Array();
LI[0]='image1.gif';
LI[1]='image2.gif';
LI[2]='image3.gif';

on peut aussi avoir une variable :
LI = 'image1.gif,image2.gif,image3.gif';
que l'on transforme en tableau
LI = LI.split(',');

- pour ajouter une image à la liste
LI[LI.length] = 'image_n.gif';

- pour afficher l'image on se sert alors du DOM
1) avoir un div cahé construit comme on le veut avec une image fictive
2) faire un clone du div en lui donnant un nouveau nom (id)
3) y coller l'image voulue de la liste
4) rendre le clone visible

et tout l'bazard en activeX qui m'est inconnu je ne m'en sers pas

IL.ListImages.Add(1,"1",SiteEnt); // <img src="SiteEnt.gif"
name="SiteEnt" ...
IL.ListImages.Add(1,"1",LoadPicture("SiteEnt.gif")); // je pense que
c'est ce qui est fait en VBScript
//
mais javascript ne connais pas LoadPicture ..


Ben le JavaScript et le DOM ont leurs langages

... et d'autres ... sans succés ...


Faudrait peut-être trouver un site traitant de l'active-X ...

Se débrouiller pour que le truc ActiveX crée une liste lisible en JS
puis passer à l'étape clonage et visualisationn (touj en JS)

--
******** (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
Bref : que veux-tu faire ?
un treeview où les nouds sont


"accompagnés" d'images
( avec les Active'X donnés )
@+


Avatar
Pierre Goiffon
"Bul" a écrit dans le message de
news:cklt3c$skf$
extrait de "ma" source
(...)

me donne l'erreur "imagelist doit être
initialisé avant d'être utilisée".


Pourriez vous donner une URL où l'on pourrait reproduire le bug ? Ca serait
plus simple !

Avatar
Bul
pas sur un site car application
locale et il suffit d'exécuter le
script donné.
@+
Avatar
YD
pas sur un site car application
locale et il suffit d'exécuter le
script donné.


J'ai essayé, j'ai eu l'erreur annoncé. Je l'ai passé comme ceci :
<script type="Text/VBScript">
ND=TV.Nodes.Add(null,null , "exemple", "exemple",1)
</script>

Et la punition est la même !

Le plus simple serait que tu donnes le script minimal qui fonctionne en VBS, pour qu'on l'adapte à la syntaxe JScript...

--
Y.D.

Avatar
Bul
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,
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...
( et si click droit le paramétrage est ignoré )
et ce qui suit ne fonctionne pas, bien sûr :
IL.ListImages.Add(1,"un","fichier")
IL.ListImages.Add(1,"un",loadpicture("fichier"))
IL.ListImages.Add(1,"un",name d'un img avec src="fichier")
....
pour l'instant j'ai écrit un petit Active'X en Visual Basic
qui me fait ce chargement, mais on doit pouvoir faire
plus simple, directement (ou presque) en JS.
1 2