Listbox collection : info meta expression

Salam,

Dans une listbox collection, j’ai créée une méthode Color :

<code 4D>
C_OBJECT($0)
If (This.night=1)
Form.meta.stroke:=“orange”
Form.meta.fill:="#000080"
Else
Form.meta.stroke:=“white”
Form.meta.fill:="#000010"
End if

$0:=Form.meta
</code 4D>

Elle est associée à la listbox comme le montre la copie d’écran
[]33014792;“Your comment here…”[/]

A chaque évaluation, au lieu de modifier la ligne ce sont toutes les lignes qui reçoivent l’évaluation de couleur

Qu’ai-je râté ?

Je me réponds car j’ai trouvé la solution sur https://blog.4d.com/display-a-collection-in-a-listbox/le blog>

Voici la méthode Color:
<code 4D>
// Method Color
C_OBJECT($0)
If (This.night=1)
$0:=New object(“fill”;"#000080";“stroke”;“orange”)
Else
$0:=New object(“fill”;“white”)
End if
</code 4D>

Et sauf à m’être trompé :mrgreen:, le code de https://livedoc.4d.com/4D-Mode-Developpement-17-R6/List-box/Proprietes-specifiques-des-List-box.300-4354813.fr.html#3783158la doc> ne fonctionne pas

Bonjour Bertrand,

en admettant que tu ais bien une propriété qui s’appelle ‘night’, il faut que tu appelles color comme cela:

color()

Patrick

Si ces parenthèses sont ce qui manque, elles manquent également https://doc.4d.com/4Dv17R6/4D/17-R6/Proprietes-specifiques-des-List-box.300-4354813.fr.html#3783158dans l’exemple Expression meta info> de la doc :

La méthode est appelée ainsi et avec des parenthèses, ça ne change rien
[]33025937;“Your comment here…”[/]

A noter que si on met un trace, on ne rentre jamais dans la méthode color. J’ai dû mettre une alerte

Bonjour,

Il y a une astuce pour aider à déboguer et voir les valeurs retourner par this avec les expressions de style comme meta.

C’est d’activer l’évenement “On display detail” de la listbox et d’appeler la méthode, color dans votre cas. Ainsi vous pouvez mettre un trace dans le “On display detail” et rentrer dans le code de la methode.

Après ne pas oublier de tout retirer. :smiley:

Merci.

PS: J’ai signalé l’erreur au service documentation.

: Vanessa TALBOT

PS: J’ai signalé l’erreur au service documentation.

L’exemple j’imagine

: Vanessa TALBOT

C’est d’activer l’évenement “On display detail” de la listbox et
d’appeler la méthode

C’est bien mais on ne trace pas les tests case of, if end if qui permettent de retourner l’objet