Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 18-03-2009 14:33:02

cyraile  
Membre Geek
Date d'inscription: 19-09-2008
Messages: 31
Pépites: 191
Banque: 0

Couleur police sur Sélection

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

 

#2 19-03-2009 11:30:00

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Couleur police sur Sélection

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


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 23-03-2010 15:20:05

krimo  
Membre Geek
Date d'inscription: 22-03-2010
Messages: 61
Pépites: 267
Banque: 0

Re: Couleur police sur Sélection

Bonjour,
je suis confronté au même problème...
Peux-tu m'en dire d'avantage stp??

Hors ligne

 

#4 23-03-2010 16:27:12

vince.janssens  
Membre Geek
Date d'inscription: 02-06-2008
Messages: 69
Pépites: 189
Banque: 0

Re: Couleur police sur Sélection

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

 

#5 24-03-2010 08:01:28

krimo  
Membre Geek
Date d'inscription: 22-03-2010
Messages: 61
Pépites: 267
Banque: 0

Re: Couleur police sur Sélection

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

 

#6 26-03-2010 10:38:54

vince.janssens  
Membre Geek
Date d'inscription: 02-06-2008
Messages: 69
Pépites: 189
Banque: 0

Re: Couleur police sur Sélection

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

 

Pied de page des forums

Propulsé par FluxBB 1.2.22