Bonjour,
je n'arrive pas à trouver la méthode propre pour rendre une classe implémentée en ITCL accessible à un code tiers.
Mon idée était de créer une classe de base "myMumClass", de générer un package puis d'invoquer un "package require myMumClass" en début de script, mais cela ne fonctionne pas.
Entres autres écueils, l'appel de pkg_mkIndex sur myMumClass.tcl génère un fichier vide.
Un exemple pour illustrer mon propos :
Voici une classe de base :
voici une classe dans un autre script qui voudrait s'appuyer sur la classe vidObj :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package provide vidObj package require Itcl namespace import itcl::* # class vidObj itcl::class vidObj { public variable m_Raster "" # exportations namespace export {*} constructor {aRaster} { set m_Raster $aRaster puts "$this is been creating, its raster : $m_Raster" } destructor { # you should delete any dynamically allocated items here puts "vidObj::dectructor : $this is being deleted" } method showRaster {} { puts $m_Raster} }
mais la directive "package require vidObj" échoue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package require Itcl namespace import itcl::* package require vidObj namespace import vidObj::* # class cGfx itcl::class cGfx { inherit vidObj public variable m_Name "" public variable m_Color "" constructor {aRaster aColor { aLabel "noLabel" } } { vidObj::constructor $aRaster } { set m_Name $aLabel set m_Color $aColor puts "$this has been created, its name : $m_Name, its color : $m_Color " } destructor { # you should delete any dynamically allocated items here puts "cGfx::dectructor : $this is being deleted" } }
MErci pour vos avis
Partager