Reset de la couleur d'une cellule listbox

Salut,

J’ai une listbox tableau avec des couleurs définies en mode Design.

Capture d’écran 2020-06-30 à 18.17.32

Par programmation, les colonnes changent de couleur.

OBJECT SET RGB COLORS(colonne1;0x00FFFFFF;0x00EEDDAA)
OBJECT SET RGB COLORS(colonne2;0x00CCDDAA;0x00AACCEE)

Capture d’écran 2020-06-30 à 18.18.05

Toujours par programmation, je voudrais que les colonnes redeviennent rouges et jaunes

Je n’arrive pas à le faire :yawning_face:

Maybe FORM LOAD to read the original value?

Thank you. The listbox is part of a component in a subform.

You can use -255 as “return to default”:
OBJECT SET RGB COLORS(*;“listboxName”;-255;-255;-255) //foreground;background1;background2

No way, dude. Je veux les couleurs rouges et jaunes
Capture d’écran 2020-06-30 à 19.45.06

C’est une listbox quoi ?

Tableau comme indiqué dans le 1er message

Télécharger la demo

In your example the box itself has the master plan, so I guess you can

OBJECT GET RGB COLORS(*;"List Box";$fore;$back;$alt)
OBJECT SET RGB COLORS(colonne1;$fore;$back;$alt)
OBJECT SET RGB COLORS(colonne2;$fore;$back;$alt)

Après avoir lu la doc et tout remis à plat, ça fonctionne :

On applique une couleur à la colonne de la listbox

OBJECT SET RGB COLORS(colonne1;0x00FFFFFF;0x00EEDD77;0x0099DDAA)

On applique une couleur à une cellule de la colonne

LISTBOX SET ROW COLOR(colonne1;1;"blue";lk background color)

On retirer la couleur de la cellule

LISTBOX SET ROW COLOR(colonne1;1;lk inherited;lk background color)// lk inherited = -255

Capture d’écran 2020-07-03 à 11.59.54

La demo restera en ligne tant qu’il y aura au moins un téléchargement sur une période de 30 jours

Je confirme qu’il suffit d’utiliser lk inherited comme couleur pour “désactiver” la couleur mise par programmation.

Attention cependant à un truc pas évident au début.
Si vous mettez une couleur sur les lignes, puis colorisez quelques cellules, les cellules restent mémorisées et si vous rafraichissez la listbox, en mettant des couleurs de ligne à nouveau, si vous ne désactivez pas les cellules individuelles, ben ça reste tant que le formulaire n’est pas fermé. C’est normal, mais j’ai perdu un peu de temps là dessus…
Genre vous mettez en rouge les cellules en erreur, si vous avez un bouton de rafraichissement, qui recalcule tout, ben les cellules rouges s’accumulent…
Il faut explicitement faire un reset de la couleur sur toutes les cellules où vous pouvez mettre du rouge. Suis-je clair ?

Ici un “Links analyzer” qui montre, table par table, les clef étrangères et met en exergue les problèmes, orange pour les clef à 0 (pas forcément grave) et en rouge les clef # 0 qui pointent sur rien. Très utile pour voir l’état d’un fichier de données.
Il y a une couleur par ligne, vert ou bleu (clef étrangères) ici. Puis par cellule pour indiquer les problèmes.
Ben au refresh de la listbox, il faut bien remettre la couleur des cellules à lk inherited…