OVH Cloud OVH Cloud

imagelist en jscript

13 réponses
Avatar
Bul
bonjour à tous,

désolé si je ne suis pas "là où il faut",
mais sur les forums/groupes de discussion
dédiés au javascript, pas de réponse en
général dès que l'on parle Active'X ....

je tente d'utiliser l'active'X imageList
(associé a treeview) en j[ava]script
et je n'arrive pas à mettre des images
( click droit, propriétés .. ) ou plus
exactement elles "disparaissent" dès
le lancement du script.
je fais quelle erreur ? où comment faire ?

d'avance merci ...

10 réponses

1 2
Avatar
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !

Une partie du code-source pourrait, peut-être, faciliter les choses, non ?

@-salutations
--
Michel Claveau
Avatar
Bul
on est parfois tellement obnubilé par ses erreurs
qu'on ne pense pas à l'essentiel pour être aidé.
voici un extrait de la source ...
<HTML><HEAD><title></title>
<body>
<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:70%;
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>
</body></html>

donne l'erreur ==> ImageList doit être
initialisé avant de pouvoir être utilisé.

merci de votre aide.
Avatar
Georges MAUREL
Bonjour,
vous pouvez regarder ici pour un exemple
http://www.thecodeproject.com/jscript/jstreelistcontrol.asp

Cordialement
Georges MAUREL


"Bul" a écrit dans le message de
news:%
on est parfois tellement obnubilé par ses erreurs
qu'on ne pense pas à l'essentiel pour être aidé.
voici un extrait de la source ...
<HTML><HEAD><title></title>
<body>
<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:70%;
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>
</body></html>

donne l'erreur ==> ImageList doit être
initialisé avant de pouvoir être utilisé.

merci de votre aide.





Avatar
Bul
merci,
je regarde et si je ne comprend rien
j'appelle au secours ....
@+
Avatar
Bul
je viens de lire, et à priori
pas d'utilisation des active'X,
alors même si ça fait à peu
près ce que je veux faire, je
ne pense pas que cela puisse
m'aider, ou alors je n'ai rien
compris... je creuse mais ...
@+
Avatar
Georges MAUREL
Bonjour Bul,
Après quelques recherches et adaptations, voici un code que tu peux utiliser


<HTML>
<HEAD>
<title></title>

<script language="vbscript">
sub Test()
Dim nod
Dim i
Dim j
IL.ListImages.Add ,,LoadPicture("c:tempimage1.gif")
with IL
.ListImages.Add 1,"Pere",LoadPicture("c:tempimage1.gif")
.ListImages.Add 2,"Fils",LoadPicture("c:tempimage2.gif")
.ListImages.Add 3,"Petitfils",LoadPicture("c:tempimage3.gif")
set TV.ImageList = IL
end with

With TV
.Font.Name = "Arial"
.Font.Size = 7
' Définition de la racine
' .Add(relative, relationship, index, text, image, selectedimage)
index = 1
Set nod = .Nodes.Add(,,"Pere" , "Pere" & i,1,1)
For i = 1 To 2
index = index+1
Call .Nodes.Add("Pere", 4, "Index"&index,"Fils" & i, 2,2)
index_pere = index
For j = 1 To 4
index = index+1
Call .Nodes.Add("Index" & index_pere, 4,"Index"&index ,"PetitFils" &
j, 3,3)
Next
Next
nod.Expanded = True
.Nodes(1).Selected = True
End With
end Sub

</SCRIPT>
</HEAD>
<BODY onload="Test()">
<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:70%; 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>
</body></html>


Cordialement
Georges

"Bul" a écrit dans le message de
news:
je viens de lire, et à priori
pas d'utilisation des active'X,
alors même si ça fait à peu
près ce que je veux faire, je
ne pense pas que cela puisse
m'aider, ou alors je n'ai rien
compris... je creuse mais ...
@+




Avatar
Bul
je pense que l'on ( enfin surtout tu ) tient le bon bout Georges
j'avais essayé
IL.ListImages.Add(1,"1",name d'un img avec src='SiteEnt.gif');
IL.ListImages.Add(1,"1","SiteEnt.gif");
qui ne marchaient pas.
IL.ListImages.Add(1,"1",LoadPicture("SiteEnt.gif"));
rale sur LoadPicture qu'il ne reconnait pas.
pas loin, pas loin ?
Avatar
Georges MAUREL
Re bonjour bul,
En fait tu n'est pas obligé d'utiliser un imagelist
Pour cela tu remplace
<PARAM NAME="ImageList" VALUE="IL">
par
<PARAM NAME="ImageList" VALUE="">
dans la définition de TV
L' imagelist sert surtout à associer des images aux noeuds que tu utilises
Par exemple :
Set nod = .Nodes.Add(,,"Pere" , "Pere" & i,1,1)
le 1° "1" sert à indiquer l'image tu associe pour l'affichage et le 2° "1"
pour l'image associé lors de la sélection du noeud

En complément, voici un petit sub te donnant le N° d'index et le texte de
l'élement sélectionné.
Tu peux t'en servir pour déclencher des actions.

Private Sub TV_NodeClick(Node)
msgbox("Index = " & Node.Index & " Texte :" & Node.Text)
End Sub



Sinon, mon code précédent fonctionne correctment...

Cordialement
Georges




"Bul" a écrit dans le message de
news:
je pense que l'on ( enfin surtout tu ) tient le bon bout Georges
j'avais essayé
IL.ListImages.Add(1,"1",name d'un img avec src='SiteEnt.gif');
IL.ListImages.Add(1,"1","SiteEnt.gif");
qui ne marchaient pas.
IL.ListImages.Add(1,"1",LoadPicture("SiteEnt.gif"));
rale sur LoadPicture qu'il ne reconnait pas.
pas loin, pas loin ?




Avatar
Bul
merci de ton aide Georges,
En fait tu n'est pas obligé d'utiliser un imagelist
ben non, mais c'est plus beau avec une


image associé à un noeud...
Set nod = .Nodes.Add(,,"Pere" , "Pere" & i,1,1)
en j[ava]script : var nod=TV.Nodes.add(null,null , "Pere", "Pere",1,1);


et cela fait bien référence à une ImageList et comme elle n'est
pas initialisée...
Sinon, mon code précédent fonctionne correctement...
je n'en doute pas, mais en j[ava]script LoadPicture


est inconnu, ou je ne dois pas utiliser la bonne syntaxe.
le N° d'index et le texte de l'élement sélectionné.
TV.SelectedItem.?? donne l'élément sélectionné


on peut aussi utiliser TV.Nodes.Item(n).??
mais je suis sûr que l'on est pas loin d'une solution.


Avatar
Jean
Bonjour,

LoadPicture est une fonction VBScript :
http://msdn.microsoft.com/library/en-us/script56/html/vsfctLoadPicture.asp

Il n'y a pas de correspondant en JScript.
Peut être dans une méthode ou fonction du composant ...

Amicalement,

Jean - JMST
Belgium

"Bul" a écrit dans le message de news:
merci de ton aide Georges,
En fait tu n'est pas obligé d'utiliser un imagelist
ben non, mais c'est plus beau avec une


image associé à un noeud...
Set nod = .Nodes.Add(,,"Pere" , "Pere" & i,1,1)
en j[ava]script : var nod=TV.Nodes.add(null,null , "Pere", "Pere",1,1);


et cela fait bien référence à une ImageList et comme elle n'est
pas initialisée...
Sinon, mon code précédent fonctionne correctement...
je n'en doute pas, mais en j[ava]script LoadPicture


est inconnu, ou je ne dois pas utiliser la bonne syntaxe.
le N° d'index et le texte de l'élement sélectionné.
TV.SelectedItem.?? donne l'élément sélectionné


on peut aussi utiliser TV.Nodes.Item(n).??
mais je suis sûr que l'on est pas loin d'une solution.






1 2