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 05-12-2006 08:39:48

digital prophecy  
Membre Geek
Date d'inscription: 29-05-2006
Messages: 55
Pépites: 310
Banque: 0

Cours sur le coloriage de la datawindow.

Bonjour, pourais-je avoir un peu de documentation, sur comment colorer lle texte de ma datawindow, sur base d'une condition sur la valeur d'un champ x.

Merci bcp !

Hors ligne

 

#2 05-12-2006 09:33:55

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

Re: Cours sur le coloriage de la datawindow.

Salut

Dans les propriétés du contrôle à colorier, onglet Font, valeurs TextColor ou BackGround color, clique sur le bouton 'différent rouge' et saisis une formule, p.ex

Code: pb

if ( x > 100 , RGB(255,200,200), RGB(255,255,255) )

NB1 : le bouton se transformera en 'égal vert' pour indiquer que la valeur est donnée par une condition.

NB2 : ce principe reste valable pour la plupart des propriétés des contrôles de DW.

NB3 : bien évidemment tu peux construire des conditions très complexes avec plusieurs niveaux de condition imbriqués, voire utiliser des fonctions globales dans les formules

HTH

Dernière modification par rsz (05-12-2006 09:34:54)


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

Hors ligne

 

#3 05-12-2006 09:44:45

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4655
Pépites: 933
Banque: 2,147,483,647
Site web

Re: Cours sur le coloriage de la datawindow.

par exemple...

http://img145.imageshack.us/img145/7549/colornt3.jpg


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#4 05-12-2006 12:22:28

digital prophecy  
Membre Geek
Date d'inscription: 29-05-2006
Messages: 55
Pépites: 310
Banque: 0

Re: Cours sur le coloriage de la datawindow.

Merci bcp frangin ! Tu viens là de rendre un service imense !

Hors ligne

 

#5 19-04-2007 15:34:02

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

comment pourrais-je colorer une case (RGB = 255,255,153) d'une datawindow freeform que lorsqu'elle a le focus ?


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#6 19-04-2007 15:40:40

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Cours sur le coloriage de la datawindow.

if(getrow()=currentRow(),RGB = 255,255,153,couleurdefaut)

Hors ligne

 

#7 20-04-2007 06:17:34

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

J'ai oublié de préciser que ma datawindow allait recevoir ne nombreux dataobjets (je me vois mal aller coder cette ligne dans toutes les zones de tous mes dataobjets !)
Y a-t-il une solution à coder dans le ItemFocusChanged par exemple ?


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#8 20-04-2007 06:36:08

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Cours sur le coloriage de la datawindow.

le principe je pense est de faire un describe dans une boucle sur le nombre de dataobject, tu récupère le nom et ensuite tu lui code son attibut background.color
si quelqu'un voit autre chose.....

Hors ligne

 

#9 20-04-2007 07:30:37

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

Ca me va très bien

merci


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#10 20-04-2007 07:46:22

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

j'ai fait une boucle qui parcourt toutes les colonnes. dans cette boucle j'ai écris ca :

Code: pb

this.modify( "#" + string(ll_compteur) + ".background.color='1073741824~tif(getrow()=currentRow(), RGB(255,255,153), RGB(255,255,255))'")


ca me mets tous mes champs en jaune !

C'est peut-être parce qu'on teste la ligne courante (getrow=currentrow) et non la colonne ... ?!


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#11 20-04-2007 08:09:17

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: Cours sur le coloriage de la datawindow.

abdelta a écrit:

C'est peut-être parce qu'on teste la ligne courante (getrow=currentrow) et non la colonne ... ?!

Comme dirait ma fille : Bah oui !

Si le but est de montrer à l'utilisateur où il est en train de saisir, n'est il pas suffisant de cocher "Show Focus rectangle" ?


never let people work on more than one thing at once.

Hors ligne

 

#12 20-04-2007 08:16:51

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

Tu as essayé le IsSelected() dans ton expression?
Sinon, la solution de Shahin est la plus simple, si tes utilisateurs acceptent
d'avoir une surbrillance de leur champ d'une autre couleur que le jaune

Dernière modification par foon (20-04-2007 08:21:17)


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#13 20-04-2007 08:45:59

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

foon a écrit:

Tu as essayé le IsSelected() dans ton expression?

IsSelected fait référence à la ligne sélectionnée (toujours pas la colonne !)

Sinon, la solution de Shahin est la plus simple, si tes utilisateurs acceptent
d'avoir une surbrillance de leur champ d'une autre couleur que le jaune

Malheureusement la charte gaphique imposée nous fait mettre le champ actif en jaune.


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#14 20-04-2007 09:18:47

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

j'ai codé dans l'événement ItemFocusChanged de ma datawindow :

Code: pb

is_act_col =  dwo.Name
this.modify( is_prec_col + ".Background.Color = '1073741824'")
this.modify( is_act_col + ".Background.Color = rgb(255,255,153)")

is_prec_col = dwo.Name

mais ca ne change pas la couleur !

Est-ce que vous voyez quelque chose qui va pas ?


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#15 20-04-2007 09:36:29

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

Le mode du background est opaque ou transparent sur tes colonnes?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#16 20-04-2007 09:54:19

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Cours sur le coloriage de la datawindow.

il me semble que j'avais eut un soucis si c'était en transparent, dans le code je ne pouvais pas le changer..

Hors ligne

 

#17 20-04-2007 09:56:00

hellkinder  
Kinder Surprise
Award: chocomordutk6
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 902
Pépites: 0
Banque: 10,524,230,367,490

Re: Cours sur le coloriage de la datawindow.

si c'est pas un probleme d'opacité, voila un code qui fonctionne chez moi  que tu met dans itemfocuschanged:

Code: pb

gs_couleur_champ_enable = string (rgb(255,255,153))
gs_couleur_champ_disable =  string (rgb(255,255,255))
this.modify ("nomdetacolonne.background.color=~""+gs_couleur_champ_disable +"~tif(GetRow()<>CurrentRow(),"+gs_couleur_champ_disable+","+gs_couleur_champ_enable+")~"")

Je viens de le tester et ca marche tres bien

Je te souhaite bonne chance, car j'ai bien passé 1h à chercher quand utiliser des cotes ou double cotes ou tilde...bonne eclatante!

Dernière modification par hellkinder (20-04-2007 10:10:52)


http://img510.imageshack.us/img510/4229/userbar1204625572ha9.gif
"Pour la première fois dans l'histoire de l'humanité, tous les peuples de la Terre ne forment qu'un"

Hors ligne

 

#18 20-04-2007 09:59:01

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

Il faudrait rajouter la ligne suivante si tes colonnes sont en mode transparent, avant d'appliquer le changement de couleur:

Code: pb

this.modify( is_act_col + ".Background.Mode=0")

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#19 20-04-2007 09:59:41

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: Cours sur le coloriage de la datawindow.

ah cool c'est bon a savoir merci

Hors ligne

 

#20 20-04-2007 13:12:01

abdelta  
Bienfaitrice du site
Award: bf
Lieu: La Daguenière
Date d'inscription: 21-03-2007
Messages: 393
Pépites: 14,703
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

Mes colonnes étaient bien en opaque
J'ai mis ceci avant venir voir vos réponses et ca marche aussi

Code: pb

is_act_col =  dwo.Name
this.modify( is_prec_col + ".Background.Color = '1073741824'")
this.modify( is_act_col + ".Background.Color = '10092543'")
is_prec_col = dwo.Name

En fait, j'ai calculé l'équivalent long de RGB(255,255,153). Ca donne 10 092 543.
1 073 741 824 c'est la couleur pour WindowBackgroundColor !


La sirène noire
http://www.nerdtests.com/images/badge/bf1f6c78865210a9.gif

Hors ligne

 

#21 20-04-2007 13:22:49

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: Cours sur le coloriage de la datawindow.

...La blague de Denisot

Ok, autant pour moi, il aurait effectivement fallu faire comme
Hellkinder:

Code: pb

is_act_col =  dwo.name
this.modify( is_prec_col + ".Background.Color = '1073741824'")
this.modify( is_act_col + ".Background.Color = '" + string(rgb(255,255,153))+ "'")
is_prec_col = dwo.name


Merci abdelta


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22