Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai un gros problème avec un bug de PB, je ne sais plus comment faire...
Dans une datawindow j'ai 3 champs :
- Une dropdownlistbox avec deux ligne (A et B)
- Et deux autres champs
J'aimerais que lorsque je choisis "A" ca me mette le premier champs en blanc et protect = 0 et le deuxieme champs en gris avec protect = 1
si je choisi "B" J'aimerais l'inverse (premier champs en gris et protect = 1, et deuxieme champs en blanc protect = 0)
c'est normalement tres simple à faire : modifier le compute expression de la propriété protect des deux champs, ainsi que le compute expression de leur propriété background color. et bien ca ne marche pas
j'ai également éssayé de le faire "à la main" dans le constructor du control dw en faisant des modify, et aussi avec la notation pointée (dw_1.object.champs1. protect = ".....") ca ne marche pas non plus
en fait ce qui ne marche pas, c'est l'expression du background color qui est mal interprétée on dirais (le protect marche bien apparement).
avec vous déja eu ce genre de problème ?
Ma version de Pb : 10.2.1 build 9537
Si quelqu'un aurait une idée ca serais super....
Merci d'avance
Hors ligne
Bonsoir,
Tu as vérifié que ton "background color" n'est pas transparent?
F1 a écrit:
Property for Background Value
Color (exp) A long expression specifying the color (the red, green, and blue values) to be used as the control's background color.
Mode (exp) A number expression specifying the mode of the background of controlname.
Values are:0 - Make the control's background opaque.
1 - Make the control's background transparent.
En modify, il faut donc intervenir sur la propriété "Color", et sur la propriété "Mode"
Hors ligne
je viens de rajouter le mode=0 et j'ai choisi également une couleur autre que "transparent" dans la datawindow mais le résultat est le même
Je ne sais plus comment faire là
Hors ligne
Bonjour,
Je viens d'essayer ton scénario avec une expression du type dans le "background color" :
if(col1 = 'B', RGB(128,128,128), RGB(255,255,255))
Cela marche sans problème. Tu peux nous donner la syntaxe de ton expression ?
Hors ligne
Bonjour,
Es ce que tu as testé le retour de tes instructions modify ?
Returns the empty string ("") if it succeeds and an error message if an error occurs. The error message takes the form "Line n Column n incorrect syntax". The character columns are counted from the beginning of the compiled text of modstring.
Hors ligne
Essaye background.mode=2, c'est ma solution quand le 0 ne fonctionne pas
d'ailleurs tu devrais en trouver dans GESPER
Hors ligne
Salut VAD le monde est petit , et merci pour vos conseils
alors voici ce que j'ai mis :
THIS.Modify ("coptis.protect='0~t If(pdt_test_typ = 1,0,1)'") THIS.Modify ("coptis.background.color='16777215 ~t If(pdt_test_typ = 1,16777215,553648127)'") THIS.Modify ("coptis.background.mode='0'") THIS.Modify ("pdt_test_lib.protect='0~t If(pdt_test_typ = 0,0,1)'") THIS.Modify ("pdt_test_lib.background.color='16777215 ~t If(pdt_test_typ = 0,16777215,553648127)'") THIS.Modify ("pdt_test_lib.background.mode='0'")
par contre j'ai pas encore éssayé avec le background.mode = 2
Oui j'ai également regardé le retour des modify aussi
message de modération : n'oublie pas d'ajouter =pb à la balise code
Dernière modification par bombseb (25-03-2009 10:32:14)
Hors ligne
Bonjour,
J'ai testé avec ton code. Le problème est dans la valeur de la couleur : 553648127 ?
Dark Gray : RGB(128,128,128) => 8421504
Light Gray : RGB(192,192,192) => 12632256
En remplaçant ta valeur de couleur par les valeurs ci-dessus, cela fonctionne sans problème.
Hors ligne
Exact buck. 553648127 correspond justement à ... transparent
Hors ligne
rolala....
heureusement que vous êtes là, j'avais même pas fait gaffe...
Merci beaucoup pour votre aide !
Hors ligne
bombseb a écrit:
rolala....
heureusement que vous êtes là, j'avais même pas fait gaffe...
Merci beaucoup pour votre aide !
Si tu as affecté cette valeur au hasard, je te conseille de jouer au loto aujourd'hui
Hors ligne
bonne idée je vais y jouer demain )
si vous voyez que je ne poste plus sur le forum, c'est que j'ai gagné
Hors ligne
Je ne pense pas que ce soit du au hasard, car ceux sont mes codes couleurs fétiches (vu en edit source )
GESPER doit en être truffé
16777215 = white
553648127 = transparent (comme là si bien dit mon cher collègue )
Le principal c'est que cela fonctionne
Dernière modification par Sailor LVCV (27-03-2009 15:59:35)
Hors ligne