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





Je suis sous Pb 10.2.0 Build 8075.
J'essaie de modifier la couleur de la bordure d'un static text control de ma datawindow. A priori le problème est simple et la documentation en ligne dit :
- d'utiliser un borderstyle de type stylebox !
- d'utiliser la propriété bordercolor
st_1.Border = TRUE
st_1.BorderStyle = StyleBox!
st_1.BorderColor = RGB(255,0,0)
Ceci me retourne une erreur de type :
"Type mismatch accessing external property BorderStyle..."
dw_general.object.transaction_counter.color = long(255) dw_general.object.transaction_counter.Border= true dw_general.object.transaction_counter.BorderStyle=StyleBox!
Je tente donc de contourner le problème comme suit,
et ca semble fonctionner :
dw_general.object.transaction_counter.color = long(255) dw_general.object.transaction_counter.Border= true dw_general.object.transaction_counter.Border="2"
Par contre j'ai de nouveau une erreur lorsque je tente cela :
dw_general.object.transaction_counter.color = long(255) dw_general.object.transaction_counter.Border= true dw_general.object.transaction_counter.Border="2" dw_general.object.transaction_counter.bordercolor = long(255)
Powerbuilder Application Excecution Error (R0039) Application terminated. Error: Error accessing external object property bordercolor (Line 1, Column 34: incorrect syntax) at line ... in ... event of object ... of ...
Pourriez-vous m'aider, s'il vous plait ?
Dernière modification par Nyphel (23-05-2008 09:22:57)
Hors ligne











Bonjour,
Tu as le même problème en utilisant la fonction Modify?
Hors ligne





Oui tout à fait, ce qui me laisse penser que je m'y prends mal :-/
Hors ligne
dw_general.object.transaction_counter.color = rgb(255,0,0)
dw_general.object.transaction_counter.border ="2"

Hors ligne





Heu... Oui... Ca me change bien la couleur du texte et ça me met bien ma bordure, mais :
- ça ne me change pas la couleur de la bordure
- mes modifications "bordercolor" causent toujours les mêmes erreurs
Hors ligne
ca doit etre le backgroundcolor, un truc comme ca.

Hors ligne





Mon background.color est de type "button face".
Je ne comprends pas ce que tu veux dire :-s
Hors ligne











Nyphel a écrit:
Mon background.color est de type "button face".
Je ne comprends pas ce que tu veux dire :-s
Si tu mets:
dw_general.object.transaction_counter.background.color = rgb(255,0,0)
Le fond de ton static text sera affiché en rouge (si, du moins, tu as bien spécifié que celui-ci est opaque)...
Hors ligne








Toi tu veux un background buttonface avec une border en rouge c'est ca?
Hors ligne








essaye ca..
dw_general.object.transaction_counter.Border = TRUE
dw_general.object.transaction_counter.BorderStyle = StyleBox!
dw_general.object.transaction_counter.BorderColor = RGB(255,0,0)
Hors ligne





Oui oui !
En fait ça donne l'impression que mon champ est disabled, et c'est le but puisque je lui met un tagnumber à 0 pour qu'il ne soit pas modifiable.
Ce champ est dans une datawindow qui utilise une procédure stockée, mais ce dernier n'est pas mis à jour par la procédure stockée.
Donc ce n'est pas une colonne, c'est un static label... Hors je souhaite lui donner l'apparence de mes autres colonnes qui ont une bordure lowered (5) et une couleur de background "button face". En effet, ma procédure retourne un seul row, donc mes colonnes sont plus ou moins similaire à des labels.
La bordure de mes autres colonnes est gris/bleu, mais ce n'est pas le problème : j'ai pu obtenir code RGB correspondant.
Je souhaite donc simplement parvenir à modifier la couleur de ma bordure du static label pour pouvoir lui donner le bon code RGB. Je fais mes essais avec du rouge, comme ca aurait pu etre n'importe quoi.
Hors ligne





dw_general.object.transaction_counter.Border = TRUE
dw_general.object.transaction_counter.BorderStyle = StyleBox!
dw_general.object.transaction_counter.BorderColor = RGB(255,0,0)
Type mismatch accessing external property BorderStyle in... blablabla... Comme annoncé dans mon premier post
Hors ligne








Et ce champs c'est quoi dans ta datawindow?
un text? c'est ca?
Hors ligne





Oui oui un text
text(band=detail alignment="1" text="" border="2" color="33554432" x="2885" y="24" height="64" width="448" html.valueishtml="0" name=transaction_counter visible="1" font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="67108864" )
Hors ligne








En fait la property bordercolor sur un object de datawindow n'existe pas
il y a :
Border
Background
color
mais pas bordercolor...
Hors ligne





Ah zut, voilà qui est bien ennuyeux !
Et je n'ai pas moyen de créer une colonne qui ne soit pas prise en compte par le retrieve ?
Si j'ajoute une colonne dans mon onglet Column Specifications, ça fonctionne tant que je ne place pas de control relié à cette colonne sur mon interface. Ensuite ça fait une erreur qui m'indique que cette colonne est absente du select.
Hors ligne








Nyphel a écrit:
Ah zut, voilà qui est bien ennuyeux !
Et je n'ai pas moyen de créer une colonne qui ne soit pas prise en compte par le retrieve ?
même si tu fais ça, tu ne pourras pas modifier. Essaye de modifier le bordercolor d'une colonne existante, juste pour tester. Tu verras que ce n'est pas possible car cette propriété n'existe pas. Cette propriété n'existe ni pour les text ni pour les column
- Column controls, table of DataWindow object properties
- Text controls, table of DataWindow object properties
Hors ligne





Oui d'accord, mais si je peux créer une telle colonne qui ne soit pas prose en compte par mon retrieve, je n'aurai plus besoin de modifier ma couleur de borudure
Hors ligne








Exact --> (je comprends vite, mais faut m'expliquer longtemps)
dans ce cas pourquoi ne pas mettre
select '' transaction_counter, colonne1, colonne2, from ... where....
Tu compte mettre quoi comme texte dedans?
Hors ligne














exactement, ou si c'est un nombre que tu veux :
select 1 as colonne_virtuelle, ... from ...
Hors ligne





Je comtpe y mettre un nombre dedans, mais je souhaiterais éviter de modifier la requête qui est employée dans plusieurs datawindows. En fait je souhaiterais pour créer ma colonne virtuelle directement du côté PB.
Hors ligne








Arf, je peux pas t'aider....
Si tes datawindows ont la même structure, et que tu veux positionner le champs au même endroit partout, tu peux copier coller les lignes concernées de l'edit source (si tu es sûr de toi)
Mais là je peux pas t'aider davantage et puis c'est pas très long de rajouter ce champs dans le select et de le placer où tu veux dans chaque dw. Bon déjà tu as résolu ton problème initial.
Bonne continuation.
Hors ligne





Merci pour votre aide
Hors ligne








pas de quoi !
Hors ligne