OVH Cloud OVH Cloud

Contrôle dynamique

3 réponses
Avatar
Raymond Fournier
Bonjour a tous,
Je cherche a sauvé du code redondant mais je bug.

J'ai des contrôles picture que je rajoute dynamiquement. Il y en a
sept qui son indexer. J'ai créé une procédure qui serai commune au sept,
seul le nom du contrôle change. Alors:

AjoutLigneImage picEpicerie1(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie2(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie3(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie4(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie5(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie6(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie7(NbrLigneTabItem), ActionAjoutLigne

Private Sub AjoutLigneImage(MonControleImage As PictureBox,
ActionAjoutLigne As Byte)

Load MonControleImage
MonControleImage.Top = MonControleImage(NbrLigneTabItem -1).Top +
picEpicerie1(0).Height

If ActionAjoutLigne = lcLigneFichierItems Then
FondCrochet (tabItems(1, NbrLigneTabItem))
MonControleImage.Picture = LoadPicture(CheminTypeFond)
MonControleImage.Tag = EpicerieTag
MonControleImage.Visible = True
Else
FondCrochet 0
MonControleImage.Picture = LoadPicture(CheminTypeFond)
MonControleImage.Tag = "OFF"
MonControleImage.Visible = True
End If

End Sub

Comme la variable MonControleImage contient le nom du contrôle et son
index, comment écrire MonControleImage(NbrLigneTabItem -1).Top pour que
sa fonctionne. J'espère être claire.

Merci de votre aide.

Raymond Fournier

3 réponses

Avatar
Ledev
"Raymond Fournier" a écrit dans le message de news:

Bonjour a tous,
Je cherche a sauvé du code redondant mais je bug.

J'ai des contrôles picture que je rajoute dynamiquement. Il y en a
sept qui son indexer. J'ai créé une procédure qui serai commune au sept,
seul le nom du contrôle change. Alors:

AjoutLigneImage picEpicerie1(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie2(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie3(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie4(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie5(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie6(NbrLigneTabItem), ActionAjoutLigne
AjoutLigneImage picEpicerie7(NbrLigneTabItem), ActionAjoutLigne

Private Sub AjoutLigneImage(MonControleImage As PictureBox,
ActionAjoutLigne As Byte)

Load MonControleImage
MonControleImage.Top = MonControleImage(NbrLigneTabItem -1).Top +
picEpicerie1(0).Height

If ActionAjoutLigne = lcLigneFichierItems Then
FondCrochet (tabItems(1, NbrLigneTabItem))
MonControleImage.Picture = LoadPicture(CheminTypeFond)
MonControleImage.Tag = EpicerieTag
MonControleImage.Visible = True
Else
FondCrochet 0
MonControleImage.Picture = LoadPicture(CheminTypeFond)
MonControleImage.Tag = "OFF"
MonControleImage.Visible = True
End If

End Sub

Comme la variable MonControleImage contient le nom du contrôle et son
index, comment écrire MonControleImage(NbrLigneTabItem -1).Top pour que
sa fonctionne. J'espère être claire.



Re-bonjouir,

Désolée pour avoir répondu dans ta BAL, j'ai du cliquer sur le mauvais
bouton :O).
Par ailleurs, sa m'arrive souvent j'ai l'impression(je retrouve plus mes
posts sur ce ng), donc si quelqu'un savait comment désactivé la réponse
directement a la personne dans oe(sans supprimer mes comptes E-mails bien
sur ;-)), sa serrai sympa, merci.

Bon revenons a nos moutons, voilà comment faire: vous placée le controle
PictureBox(nomée par exemple Picture) et le code ci-dessous:

'Procedure qui serviera a ajouté dynamiquement les images
sub AjoutPicture
'Num serviera a stoquer le nouvelle index
dim Num as integer
'la propriété Ubound contient l'index de l'élément supérieur de la
collection
num=Picture.ubound+1

'On charge le nouveau Picture
load Picture(num)

'On le place en dessous du précédent
picture(num).top=picture(num-1).top+picture(num-1).height

'On le rend visible
picture(num).visible=true

'Et ensuite on peut faire ce que l'on veus avec(chargée une image...).


end sub

Voilà, bonne prog.
a+
PS: Et je tiens a me réexcusé pour avoir écrit dans voite boite, auprés de
vous et de tous ceux a qui ça a pue arriver.
a+


Merci de votre aide.

Raymond Fournier


Avatar
Ledev
"scraper" a écrit dans le message de news:
eC4L6$
Dans son message news:%,
Ledev nous a aimablement écrit:
>
> Désolée pour avoir répondu dans ta BAL, j'ai du cliquer sur le mauvais
> bouton :O).
> Par ailleurs, sa m'arrive souvent j'ai l'impression(je retrouve plus
> mes posts sur ce ng), donc si quelqu'un savait comment désactivé la
> réponse directement a la personne dans oe(sans supprimer mes comptes
> E-mails bien sur ;-)), sa serrai sympa, merci.

salut

clique dans une zone libre de la barre d'outils de Outlook


Express/personaliser ...

cherche l'icone "répondre à la personne" dans la fenêtre de dorite, et


fais la passer à gauche par le bouton supprimer

puis "fermer"



Arfff, que suis-je bête, j'y avais même pas pensé ;-)

Merci a toi, a+




--
scraper



Avatar
Raymond Fournier
In article <#,
says...

"scraper" a écrit dans le message de news:
eC4L6$
> Dans son message news:%,
> Ledev nous a aimablement écrit:
> >
> > Désolée pour avoir répondu dans ta BAL, j'ai du cliquer sur le mauvais
> > bouton :O).
> > Par ailleurs, sa m'arrive souvent j'ai l'impression(je retrouve plus
> > mes posts sur ce ng), donc si quelqu'un savait comment désactivé la
> > réponse directement a la personne dans oe(sans supprimer mes comptes
> > E-mails bien sur ;-)), sa serrai sympa, merci.
>
> salut
>
> clique dans une zone libre de la barre d'outils de Outlook
Express/personaliser ...
>
> cherche l'icone "répondre à la personne" dans la fenêtre de dorite, et
fais la passer à gauche par le bouton supprimer
>
> puis "fermer"

Arfff, que suis-je bête, j'y avais même pas pensé ;-)

Merci a toi, a+

>
>
>
> --
> scraper
>





merci
Sa fonctionne.

Raymond Fournier