OVH Cloud OVH Cloud

controle image dépendant autoréductible ?

3 réponses
Avatar
YDE
Bonjour,

J'ai une table avec, parmi les données, le chemin, pour chaque
enregistrement, d'un nom de fichier image. J'ai un état basé sur cette table
avec un controle image dépendant qui affiche ces images avec la méthode
NomImage.picture=variable (contenant le nom du chemin). Jusque là, pas de
prob.

Mais chaque enregistrement n'a pas d'image, donc pas de chemin d'image.
J'aimerais que lorsqu'il n'y a pas de valeur dans le champ chemin, la taille
du contrôle image dépendant se réduise (comme un contrôle texte auquel on
affecte OUI à la propriété autoréductible).

Mais... comment faire puisque cette propriété ne figure pas parmi celles des
contrôles images ?

Merci pour tout exemple compréhensible. (Access 97, si jamais...)
Salut
YDE

3 réponses

Avatar
3stone
Salut,

"YDE"
J'ai une table avec, parmi les données, le chemin, pour chaque
enregistrement, d'un nom de fichier image. J'ai un état basé sur cette table
avec un controle image dépendant qui affiche ces images avec la méthode
NomImage.picture=variable (contenant le nom du chemin). Jusque là, pas de
prob.

Mais chaque enregistrement n'a pas d'image, donc pas de chemin d'image.
J'aimerais que lorsqu'il n'y a pas de valeur dans le champ chemin, la taille
du contrôle image dépendant se réduise (comme un contrôle texte auquel on
affecte OUI à la propriété autoréductible).



S'il n'y a pas d'image, autant ne pas l'afficher... (le contrôle, bien sûr ;)
et faire quelque chose comme:


if NomImage<>"" then
ctlimage.visible=true
ctlImage.picture = ...
else
ctlImage.visibleúlse
end if


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
YDE
Salut et merci, mais... ça n'a pas vraiment l'effet escompté.

Ta proposition permet en effet de rendre le contrôle invisible, mais il ne
s'autoréduit pas sous l'effet de son invisibilité. Du coup, au lieu d'avoir
une plage blanche sur mon état lorsqu'il n'y a pas d'image, j'ai... une
plage blanche occupée par un état invisible mais non réduit. J'ai essayé
d'affecté la propriété autoréductible=OUI à la section contenant ce
contrôle, mais rien n'y fait. Y aurait-il une autre possibilité ?

PS : j'ai essayé avec ctlImage.Height et Width en les mettant à 0 mais ça ne
marche pas non plus. Problème de position ?

Merci pour toute suggestion.
YDE


"3stone" a écrit dans le message de
news:
Salut,

"YDE"
J'ai une table avec, parmi les données, le chemin, pour chaque
enregistrement, d'un nom de fichier image. J'ai un état basé sur cette
table


avec un controle image dépendant qui affiche ces images avec la méthode
NomImage.picture=variable (contenant le nom du chemin). Jusque là, pas
de


prob.

Mais chaque enregistrement n'a pas d'image, donc pas de chemin d'image.
J'aimerais que lorsqu'il n'y a pas de valeur dans le champ chemin, la
taille


du contrôle image dépendant se réduise (comme un contrôle texte auquel
on


affecte OUI à la propriété autoréductible).



S'il n'y a pas d'image, autant ne pas l'afficher... (le contrôle, bien
sûr ;)

et faire quelque chose comme:


if NomImage<>"" then
ctlimage.visible=true
ctlImage.picture = ...
else
ctlImage.visibleúlse
end if


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------







Avatar
3stone
Salut,

"YDE"
Ta proposition permet en effet de rendre le contrôle invisible, mais il ne
s'autoréduit pas sous l'effet de son invisibilité. Du coup, au lieu d'avoir
une plage blanche sur mon état lorsqu'il n'y a pas d'image, j'ai... une
plage blanche occupée par un état invisible mais non réduit. J'ai essayé
d'affecté la propriété autoréductible=OUI à la section contenant ce
contrôle, mais rien n'y fait. Y aurait-il une autre possibilité ?

PS : j'ai essayé avec ctlImage.Height et Width en les mettant à 0 mais ça ne
marche pas non plus. Problème de position ?



J'ai fait une essai rapide... et voilà ce qui fonctionne:

Le décor...

Quelques zones de texte à gauche dans la section détail
et à droite, un contrôle image qui fait le double de la hauteur
totale des controles texte.

La dernière zone de texte se nomme "txtDernier"


If NomImage= "" Then
Me.Image0.Visible = False
Me.Image0.Height = 10 'ou autre petite valeur
Me.Section(0).Height = (Me.txtDernier.Top + Me.txtDernier.Height)

Else
Me.Image0.Visible = True
Me.Image0.Height = 3500 'la hauteur réelle du contrôle image
End If


Et tu laisse les "auto" réductible et extensible sur Non.

Ok ?


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------