PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → savoir dans quelle colonne on a cliqué
savoir dans quelle colonne on a cliqué
Débuté par angelia, 13 aoû. 2004 13:52 - 5 réponses
Posté le 13 août 2004 - 13:52
Bonjour,
j'ai crée une table mémoire avec 3 colonnes et 4 lignes. Elle est en saisie
directe. Comment savoir quand l'utilisateur clique dans une cellule, dans
quelle cellule il clique à savoir quelle ligne et quelle colonne pour
pouvoir par exemple mettre la couleur de fond différente des autres. Pour
connaître la ligne en cours, il n'y a pas de problème mais par contre pour
connaître la colonne concernée ?!!!!! je ne vois pas.
Merci de votre aide et bon dev
Posté le 13 août 2004 - 12:37
Salut !

On 13-Aug-2004, "steph" <angelia@free.fr> wrote:

Bonjour,
j'ai crée une table mémoire avec 3 colonnes et 4 lignes. Elle est en
saisie
directe. Comment savoir quand l'utilisateur clique dans une cellule, dans
quelle cellule il clique à savoir quelle ligne et quelle colonne pour
pouvoir par exemple mettre la couleur de fond différente des autres. Pour
connaître la ligne en cours, il n'y a pas de problème mais par contre pour
connaître la colonne concernée ?!!!!! je ne vois pas.
Merci de votre aide et bon dev


La fonction TableInfoXY() est ton amie ...
voci un petit exemple :
// Ce code est mis dans l'événement survol de la table1 et permet de voir le
libellé de la colonne survolée et son contenu dans la bulle ...
// sélection sur la table TABLE1
x = PoidsFaible(CurseurPos())
y = PoidsFort(CurseurPos())
nligne = TableInfoXY(Table1, tiNumLigne + tiOrigineEcran, x, y)
nCol = TableInfoXY(Table1, tiNumColonne + tiOrigineEcran, x, y)
SI nligne > 1 ET nCol > 0 ALORS
Table1..Bulle = Table1[nligne,nCol]..Libellé + " = " + Table1[nligne,nCol]
FIN

En adaptant un tout petit peu, en étant dans une cellule, tu peut retrouver
ton nom de colonne et avec les indirections, tu fais ce que tu veux ...

Bien à toi ...


--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Posté le 13 août 2004 - 15:34
Ne serait-ce pas plus simple d'utiliser ChampEnCours() ?
Posté le 13 août 2004 - 17:40
Salut !


On 13-Aug-2004, "steph" <angelia@free.fr> wrote:

Merci pour ton code, cela marche mais j'ai encore un petit pb :

Voici mon code sur le survol de la souris :

x,y, nligne,ncol sont des entiers

x=PoidsFaible(CurseurPos())
y=PoidsFort(CurseurPos())
nligne=TableInfoXY(MoiMême,tiNumLigne+tiOrigineEcran,x,y)
ncol=TableInfoXY(MoiMême,tiNumColonne+tiOrigineEcran,x,y)
SI nligne>0 ET ncol>1 ALORS
ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne :
ClasseEntiere
Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe
Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques

TableAffectations[nligne,ncol]..CouleurFond=iJauneClair
FIN

Mon objectif est que lorsque l'utilisateur survole une cellule (sauf sur
la
première colonne) la cellule se mette en jaune (couleur de fond).
L pb est que la cellule se met bien en jaune, mais lorsque je passe à une
autre cellule, l'ancienne reste toujours en jaune, ce qui fait que si tu
parcours tous le tableau avec la souris, toutes les cellules sont jaunes
!!!
(sauf sur la première colonne).
J'ai essayé de faire en sorte que lors du survol d'une cellule, il remette
d'abord tout à blanc, puis qu'il colorie en jaune la cellule en cours,
d'ou
ma partie de code correspondante :

ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne :
ClasseEntiere
Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe
Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques


mais j'ai l'impression qu'il ne rafraîchi pas l'affichage !! comment faire
?
Merci beaucoup d'avance.


Houlaaa ...
Le problème, c'est qu'il n'y a pas d'événement de "non survol" ...
Ne peux-tu pas en "entrant dans le survol" remettre toute ta table dans la
couleur par défaut et puis mettre ta(tes) colonne(s) dans la couleur désirée
....

Bonne chance !

--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Posté le 13 août 2004 - 19:07
Merci pour ton code, cela marche mais j'ai encore un petit pb :

Voici mon code sur le survol de la souris :

x,y, nligne,ncol sont des entiers

x=PoidsFaible(CurseurPos())
y=PoidsFort(CurseurPos())
nligne=TableInfoXY(MoiMême,tiNumLigne+tiOrigineEcran,x,y)
ncol=TableInfoXY(MoiMême,tiNumColonne+tiOrigineEcran,x,y)
SI nligne>0 ET ncol>1 ALORS
ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne :
ClasseEntiere
Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe
Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques

TableAffectations[nligne,ncol]..CouleurFond=iJauneClair
FIN

Mon objectif est que lorsque l'utilisateur survole une cellule (sauf sur la
première colonne) la cellule se mette en jaune (couleur de fond).
L pb est que la cellule se met bien en jaune, mais lorsque je passe à une
autre cellule, l'ancienne reste toujours en jaune, ce qui fait que si tu
parcours tous le tableau avec la souris, toutes les cellules sont jaunes !!!
(sauf sur la première colonne).
J'ai essayé de faire en sorte que lors du survol d'une cellule, il remette
d'abord tout à blanc, puis qu'il colorie en jaune la cellule en cours, d'ou
ma partie de code correspondante :

ClasseEntiere..CouleurFond=iRougeClair // nom de ma seconde colonne :
ClasseEntiere
Groupe..CouleurFond=iBlanc // nom de ma troisieme colonne : Groupe
Remarques..CouleurFond=iBlanc // nom de ma quatrieme colonne : Remarques


mais j'ai l'impression qu'il ne rafraîchi pas l'affichage !! comment faire ?
Merci beaucoup d'avance.
Posté le 13 août 2004 - 19:49
en fait j'ai reussi, effectivement j'ai fais comme tu le pensais à savoir
sur le survol je remet tout à blanc (la couleur) et je met ensuite la
cellule en cours en jaune, le pb était que cela ne marchais pas en mettant
toutes les colonnes à blanc (donc colonne par colonne :
<NomColonne>..couleurFond=iblanc) !!!! Par contre je me suis rendu compte
que cela marchais avec les lignes (donc ligne par ligne :
<N°Ligne>..couleursFond =iblanc) !!! vas savoir pourquoi cela marche avec
les lignes et pas les colonnes ?!!!!!!!! en cela marche.
Merci de ton aide