Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Quand on sélectionne une ligne d'une DATAWINDOW, la sélection est surligné en bleu et la couleur du texte deviens blanc.
Ma question est : Comment forcé la couleur à resté noir, parce qu'en fait j'ai mis en place un système de sur lignage blanc, gris (alterné toutes les deux lignes) et du coup je me retrouve avec du blanc sur blanc (donc on voit plus le texte) et blanc sur gris (ce qui est illisible).
Je voudrai que mon texte ne change pas de couleur.
Merci d'avance
Cordialement
Cyraile.
Hors ligne
Bonjour,
Je pense que ces couleurs ne sont paramétrées par PB mais par le thème de l'OS... Changer au niveau du thème aurait des impacts sur d'autres logiciels.
Un moyen serait de ne pas utiliser la fonctionnalité de surlignage par sélection de PB et de coder cela soi-même.
Par exemple :
1) ajouter une pseudo-colonne is_selected (de type number) à la DW
2) dans la DW coder les couleurs par expression selon la valeur de is_selected et d'autres paramètres (p.ex modulo 2 de getrow pour le surlignage alterné)
3) dans l'événement rowfocuschanged (et après retrieve, filter, sort...) ajuster la valeur de is_selected : 1 pour la ligne sélectionnée, 0 pour les autres
Hors ligne
Bonjour,
je suis confronté au même problème...
Peux-tu m'en dire d'avantage stp??
Hors ligne
Perso, ce que je fais dans ces cas, c'est de ne pas modifier la couleur de fond de la colonne directement mais de créer un champ supplémentaire de type rectangle ou texte en arrière plan qui va lui prendre la couleur en alternance (gris foncé, gris clair).
On peut aussi programmer dans l'ancêtre, une création automatique de ce champ, ce qui évite de devoir le rajouter manuellement dans chaque datawindow....
De cette manière, tu n'auras jamais plus le problème. De plus, je désactive le selectrow et je rajoute un troisième état sélectionne en gris très foncé , ce qui te permet de choisir ta couleur correspondant à la sélection.
A+
Vincent
Hors ligne
Si je comprend bien, il faut créer un champs en arrière plan et modifier seulement ce champ.
Par contre, il me semblait que si on désactive le selectrow, on ne peut plus modifier le style des champs du datawindows.
Je me trompe??
Hors ligne
krimo a écrit:
Si je comprend bien, il faut créer un champs en arrière plan et modifier seulement ce champ.
Par contre, il me semblait que si on désactive le selectrow, on ne peut plus modifier le style des champs du datawindows.
Je me trompe??
le selectrow ne fait que mettre en surbrillance ou non une ligne dela datawindow. Si tu le désactive, tu ne fais simplement que ne pas afficher cette sélection en bleue.
Pour faire ce que j'ai dit, il faut:
1. des champs dont le fond est défini en transparent
2. le texte en noir pour chacund des champs et une expression qui le met en blanc lorsque la ligne a le focus
3. une bande (un texte ou un rectangle) en arrière plan qui suivant le fait qu'il s'agisse d'une colonne paire ou impaire a une couleur définie et lorsque la ligne a le focus, un autre couleur plus foncée. Tu code tout çà dans une expression de mémoire çà donne un truc du genre:
if(getrow() = currentrow(),#couleurselect,if(mod(row,2)>0,#couleurligneimpair,#couleurlignepair))
Vincent Janssens
Dernière modification par vince.janssens (26-03-2010 10:40:43)
Hors ligne