OVH Cloud OVH Cloud

Savoir si Picture est vide ???

19 réponses
Avatar
LE TROLL
Bonjour,

Pour savoir si picture est vide, je fais:

If Picture1.Picture = 0

Est-ce bon dans tous les vas ???

Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !

9 réponses

1 2
Avatar
Pascal B.
La propriété par défaut d'une Picture est son Handle
(qui n'a pas de lien avec HDC)

De plus, par code, il y a 2 façons de "vider" une Picture:
Set Picture1.Picture = Nothing
ou
Picture1.Picture = LoadPicture( )

Dans le 1er cas, c'est la solution de Christian qui fonctionne
dans le second, c'est celle du Troll.

Et il reste le cas où la picture est un rectangle blanc !?!?

Pascal B.

"Guy DETIENNE" wrote in message news:
| Salut ;O)
|
| Hélas, ta façon de procéder retourne toujours FALSE peu importe le contenu
| de la PictureBox.
|
| Je me suis donc attardé sur la question en essayant différentes méthodes.
|
| J'ai testé la façon de procéder suivante : tester la valeur de retour de la
| propriété PICTURE .
|
| Si Picture retourne 0, la PictureBox ne contient pas d'image, si Picture
| retourne une valeur supérieure à 0, il y a une image.
|
| Pour retirer une image d'un contrôle PictureBox: Me.Picture1.Picture | Nothing
|
| Mais entre nous, je ne sais pas ce que représente la valeur retournée par la
| propriété PICTURE.... ce n'est pas le HDC.
|
| Aussi, la valeur de la propriété PICTURE semble ne pas être liée à l'image
| chargée car cette valeur change si je recharge la même image dans la
| PictureBox...
|
| Guy
|
|
| "Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le
| message de news: crm0cn$s41$
| > J'aurais plutôt fait :
| >
| > If Picture1.Picture is nothing
| >
| > A tester...
| >
| > Cordialement
| >
| > Christian Hubert-Hugoud
| >
| > "LE TROLL" <le a écrit dans le message de
| > news:%
| >> Bonjour,
| >>
| >> Pour savoir si picture est vide, je fais:
| >>
| >> If Picture1.Picture = 0
| >>
| >> Est-ce bon dans tous les vas ???
| >>
| >> Merci, au revoir et à bientôt.
| >> --
| >> ng75 arobase noos.fr
| >> ------------------------------------------------------------
| >> LE TROLL, éleveur de trolls depuis César, qui disait :
| >> Avec une hache, celui qui tient le manche a toujours raison !
| >>
| >>
| >>
| >
| >
|
|
Avatar
LE TROLL
RE-lol, ma picture est pleine ou vide, c'est juste en fait pour
tester si vide = exit sub, si <> de vide = "question = supprimer??? y/n" +
si <> VByes exit sub...

------

"Pascal B." a écrit dans le message de news:


La propriété par défaut d'une Picture est son Handle
(qui n'a pas de lien avec HDC)

De plus, par code, il y a 2 façons de "vider" une Picture:
Set Picture1.Picture = Nothing
ou
Picture1.Picture = LoadPicture( )

Dans le 1er cas, c'est la solution de Christian qui fonctionne
dans le second, c'est celle du Troll.

Et il reste le cas où la picture est un rectangle blanc !?!?

Pascal B.

"Guy DETIENNE" wrote in message
news:
| Salut ;O)
|
| Hélas, ta façon de procéder retourne toujours FALSE peu importe le
contenu
| de la PictureBox.
|
| Je me suis donc attardé sur la question en essayant différentes
méthodes.
|
| J'ai testé la façon de procéder suivante : tester la valeur de retour de
la
| propriété PICTURE .
|
| Si Picture retourne 0, la PictureBox ne contient pas d'image, si Picture
| retourne une valeur supérieure à 0, il y a une image.
|
| Pour retirer une image d'un contrôle PictureBox: Me.Picture1.Picture > | Nothing
|
| Mais entre nous, je ne sais pas ce que représente la valeur retournée
par la
| propriété PICTURE.... ce n'est pas le HDC.
|
| Aussi, la valeur de la propriété PICTURE semble ne pas être liée à
l'image
| chargée car cette valeur change si je recharge la même image dans la
| PictureBox...
|
| Guy
|
|
| "Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le
| message de news: crm0cn$s41$
| > J'aurais plutôt fait :
| >
| > If Picture1.Picture is nothing
| >
| > A tester...
| >
| > Cordialement
| >
| > Christian Hubert-Hugoud
| >
| > "LE TROLL" <le a écrit dans le message de
| > news:%
| >> Bonjour,
| >>
| >> Pour savoir si picture est vide, je fais:
| >>
| >> If Picture1.Picture = 0
| >>
| >> Est-ce bon dans tous les vas ???
| >>
| >> Merci, au revoir et à bientôt.
| >> --
| >> ng75 arobase noos.fr
| >> ------------------------------------------------------------
| >> LE TROLL, éleveur de trolls depuis César, qui disait :
| >> Avec une hache, celui qui tient le manche a toujours raison !
| >>
| >>
| >>
| >
| >
|
|




Avatar
Guy DETIENNE
Salut ;O)

Qu'appelles-tu "handle" ?

La propriété Hwnd du contrôle est le handle !! Ce qui n'est pas le cas avec
la propriété par défaut (Picture).

Hwnd et Picture retournent des valeurs différentes. Donc ce que tu dis
semble erroné si tu parles de l'identifiant unique que Windows attribue à
ses objets. Ce n'est pas non plus le HDC (Handle Device Context), car la
valeur est aussi différente.

Mais je me doute bien que ce que retourne la propriété picture semble être
unique. Mais à quoi cela est-il lié ? Parles-tu d'un autre handle ?

Guy

"Pascal B." a écrit dans le message de news:


La propriété par défaut d'une Picture est son Handle
(qui n'a pas de lien avec HDC)

De plus, par code, il y a 2 façons de "vider" une Picture:
Set Picture1.Picture = Nothing
ou
Picture1.Picture = LoadPicture( )

Dans le 1er cas, c'est la solution de Christian qui fonctionne
dans le second, c'est celle du Troll.

Et il reste le cas où la picture est un rectangle blanc !?!?

Pascal B.

"Guy DETIENNE" wrote in message
news:
| Salut ;O)
|
| Hélas, ta façon de procéder retourne toujours FALSE peu importe le
contenu
| de la PictureBox.
|
| Je me suis donc attardé sur la question en essayant différentes
méthodes.
|
| J'ai testé la façon de procéder suivante : tester la valeur de retour de
la
| propriété PICTURE .
|
| Si Picture retourne 0, la PictureBox ne contient pas d'image, si Picture
| retourne une valeur supérieure à 0, il y a une image.
|
| Pour retirer une image d'un contrôle PictureBox: Me.Picture1.Picture > | Nothing
|
| Mais entre nous, je ne sais pas ce que représente la valeur retournée
par la
| propriété PICTURE.... ce n'est pas le HDC.
|
| Aussi, la valeur de la propriété PICTURE semble ne pas être liée à
l'image
| chargée car cette valeur change si je recharge la même image dans la
| PictureBox...
|
| Guy
|
|
| "Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le
| message de news: crm0cn$s41$
| > J'aurais plutôt fait :
| >
| > If Picture1.Picture is nothing
| >
| > A tester...
| >
| > Cordialement
| >
| > Christian Hubert-Hugoud
| >
| > "LE TROLL" <le a écrit dans le message de
| > news:%
| >> Bonjour,
| >>
| >> Pour savoir si picture est vide, je fais:
| >>
| >> If Picture1.Picture = 0
| >>
| >> Est-ce bon dans tous les vas ???
| >>
| >> Merci, au revoir et à bientôt.
| >> --
| >> ng75 arobase noos.fr
| >> ------------------------------------------------------------
| >> LE TROLL, éleveur de trolls depuis César, qui disait :
| >> Avec une hache, celui qui tient le manche a toujours raison !
| >>
| >>
| >>
| >
| >
|
|




Avatar
ng
Et si l'image est invalide ? (fichier existant mais mauvais)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

dav wrote:
Pascal B. a écrit :

Salut,

Savoir si une Picture est vide ???

En principe tu devrais le savoir !
Une image n'arrive pas "toute seule" dans ta PictureBox:

- soit tu l'as ajoutée en mode-création,
- soit tu l'ajoutes (ou la retire) par code suite à une action de
l'utilisateur. Dans ce dernier cas il faut plutôt utiliser un Flag.

Pascal B.


"LE TROLL" <le wrote in message
news:%
Bonjour,

Pour savoir si picture est vide, je fais:

If Picture1.Picture = 0

Est-ce bon dans tous les vas ???

Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !









non ,en fait il doit avoir le meme probleme a peu pres que moi : un
chemin théorique pour une image, mais ce chemin peut indiquer une
image inexistante (provisoirement).

donc je fait :

if dir(chemin_image) <> "" then......

dav,


Avatar
LE TROLL
Hé, t'as pas tout suivi, c'est moi qui posait la question... C'est
lors d'une demande de suppression d'image que je teste, alors si l'image est
invalide ce n'est pas à ce niveau du code, en plus, l'utilisateur a des
yeux, si son image ne lui plaît pas, il en change

En fait, j'avais un bouton supprimer l'image, non confirmé, alors je le
confirme... Mais en l'utilisant, je m'aperçoit qu'il ne tient évidemment pas
compte de l'état de l'image, et que pour une image vide il demande aussi si
on veut la supprimer, ce qui fait gogol, alors j'ai testé si une image était
présente, mais je ne savais pas comment, donc j'ai fait un msgbox
pciture1.picture, qui me dit 0 si vide, et <> 0 si pas vide, ça me suffit
ainsi, j'ai repris ensuite l'info pour la mettre en code :o)
-------

"ng" a écrit dans le message de news:

Et si l'image est invalide ? (fichier existant mais mauvais)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

dav wrote:
Pascal B. a écrit :

Salut,

Savoir si une Picture est vide ???

En principe tu devrais le savoir !
Une image n'arrive pas "toute seule" dans ta PictureBox:

- soit tu l'as ajoutée en mode-création,
- soit tu l'ajoutes (ou la retire) par code suite à une action de
l'utilisateur. Dans ce dernier cas il faut plutôt utiliser un Flag.

Pascal B.


"LE TROLL" <le wrote in message
news:%
Bonjour,

Pour savoir si picture est vide, je fais:

If Picture1.Picture = 0

Est-ce bon dans tous les vas ???

Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !









non ,en fait il doit avoir le meme probleme a peu pres que moi : un
chemin théorique pour une image, mais ce chemin peut indiquer une
image inexistante (provisoirement).

donc je fait :

if dir(chemin_image) <> "" then......

dav,






Avatar
Zoury
Salut dav! :O)

if dir(chemin_image) <> "" then......



une petite mise en garde contre l'utilisation de Dir() pour tester
l'existance d'un fichier..
http://groups.google.com/groups?threadm=esp112s2DHA.1704%40tk2msftngp13.phx.gbl



--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
ng
Si j'ai suivi, il disait qu'il vérifiait avec un Dir$() mais ce n'est pas
suffisant. Car il faut aussi que l'image soit valide.

Pour tester la présence d'une image :

Option Explicit

Private Sub Form_Load()

Call VerifImage 'vide

Set Picture1.Picture = LoadPicture("C:Program FilesMicrosoft Visual
StudioCommonGraphicsBitmapsOutlineCLOSED.BMP")

Call VerifImage 'pas vide

Set Picture1.Picture = Nothing

Call VerifImage 'vide

End Sub

Public Sub VerifImage()
If Picture1.Picture.Handle = 0 Then
Debug.Print "vide"
Else
Debug.Print "pas vide"
End If
End Sub


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

LE TROLL wrote:
Hé, t'as pas tout suivi, c'est moi qui posait la question...
C'est lors d'une demande de suppression d'image que je teste, alors
si l'image est invalide ce n'est pas à ce niveau du code, en plus,
l'utilisateur a des yeux, si son image ne lui plaît pas, il en change

En fait, j'avais un bouton supprimer l'image, non confirmé, alors je
le confirme... Mais en l'utilisant, je m'aperçoit qu'il ne tient
évidemment pas compte de l'état de l'image, et que pour une image
vide il demande aussi si on veut la supprimer, ce qui fait gogol,
alors j'ai testé si une image était présente, mais je ne savais pas
comment, donc j'ai fait un msgbox pciture1.picture, qui me dit 0 si
vide, et <> 0 si pas vide, ça me suffit ainsi, j'ai repris ensuite
l'info pour la mettre en code :o) -------

"ng" a écrit dans le message de news:

Et si l'image est invalide ? (fichier existant mais mauvais)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

dav wrote:
Pascal B. a écrit :

Salut,

Savoir si une Picture est vide ???

En principe tu devrais le savoir !
Une image n'arrive pas "toute seule" dans ta PictureBox:

- soit tu l'as ajoutée en mode-création,
- soit tu l'ajoutes (ou la retire) par code suite à une action de
l'utilisateur. Dans ce dernier cas il faut plutôt utiliser un Flag.

Pascal B.


"LE TROLL" <le wrote in message
news:%
Bonjour,

Pour savoir si picture est vide, je fais:

If Picture1.Picture = 0

Est-ce bon dans tous les vas ???

Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !









non ,en fait il doit avoir le meme probleme a peu pres que moi : un
chemin théorique pour une image, mais ce chemin peut indiquer une
image inexistante (provisoirement).

donc je fait :

if dir(chemin_image) <> "" then......

dav,






Avatar
ng
Salut,

Hwnd et Picture retournent des valeurs différentes. Donc ce que tu dis
semble erroné si tu parles de l'identifiant unique que Windows attribue à
ses objets. Ce n'est pas non plus le HDC (Handle Device Context), car la
valeur est aussi différente.



Picture n'est pas une propriété mais un objet StdPicture.
Pic1.Picture retourne donc la valeur de la propriété par défaut de la classe
StdPicture c'est à dire .Handle
donc MsgBox Pic1.Picture est donc identique à MsgBox Pic1.Picture.Handle.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Guy DETIENNE wrote:
Salut ;O)

Qu'appelles-tu "handle" ?

La propriété Hwnd du contrôle est le handle !! Ce qui n'est pas le
cas avec la propriété par défaut (Picture).

Hwnd et Picture retournent des valeurs différentes. Donc ce que tu
dis semble erroné si tu parles de l'identifiant unique que Windows
attribue à ses objets. Ce n'est pas non plus le HDC (Handle Device
Context), car la valeur est aussi différente.

Mais je me doute bien que ce que retourne la propriété picture semble
être unique. Mais à quoi cela est-il lié ? Parles-tu d'un autre
handle ?
Guy

"Pascal B." a écrit dans le message
de news:

La propriété par défaut d'une Picture est son Handle
(qui n'a pas de lien avec HDC)

De plus, par code, il y a 2 façons de "vider" une Picture:
Set Picture1.Picture = Nothing
ou
Picture1.Picture = LoadPicture( )

Dans le 1er cas, c'est la solution de Christian qui fonctionne
dans le second, c'est celle du Troll.

Et il reste le cas où la picture est un rectangle blanc !?!?

Pascal B.

"Guy DETIENNE" wrote in message
news:
Salut ;O)

Hélas, ta façon de procéder retourne toujours FALSE peu importe le
contenu de la PictureBox.

Je me suis donc attardé sur la question en essayant différentes
méthodes. J'ai testé la façon de procéder suivante : tester la valeur de
retour de la propriété PICTURE .

Si Picture retourne 0, la PictureBox ne contient pas d'image, si
Picture retourne une valeur supérieure à 0, il y a une image.

Pour retirer une image d'un contrôle PictureBox:
Me.Picture1.Picture = Nothing

Mais entre nous, je ne sais pas ce que représente la valeur
retournée par la propriété PICTURE.... ce n'est pas le HDC.

Aussi, la valeur de la propriété PICTURE semble ne pas être liée à
l'image chargée car cette valeur change si je recharge la même
image dans la PictureBox...

Guy


"Christian HUBERT-HUGOUD- Xtrem7" a écrit dans
le message de news: crm0cn$s41$
J'aurais plutôt fait :

If Picture1.Picture is nothing

A tester...

Cordialement

Christian Hubert-Hugoud

"LE TROLL" <le a écrit dans le message de
news:%
Bonjour,

Pour savoir si picture est vide, je fais:

If Picture1.Picture = 0

Est-ce bon dans tous les vas ???

Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !










Avatar
Guy DETIENNE
Grand merci pour cette précision bien utile !
Donc une précision sur le terme handle était indispensable pour éviter toute
confusion.

Guy

"ng" a écrit dans le message de news:
%
Salut,

Hwnd et Picture retournent des valeurs différentes. Donc ce que tu dis
semble erroné si tu parles de l'identifiant unique que Windows attribue à
ses objets. Ce n'est pas non plus le HDC (Handle Device Context), car la
valeur est aussi différente.



Picture n'est pas une propriété mais un objet StdPicture.
Pic1.Picture retourne donc la valeur de la propriété par défaut de la
classe StdPicture c'est à dire .Handle
donc MsgBox Pic1.Picture est donc identique à MsgBox Pic1.Picture.Handle.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Guy DETIENNE wrote:
Salut ;O)

Qu'appelles-tu "handle" ?

La propriété Hwnd du contrôle est le handle !! Ce qui n'est pas le
cas avec la propriété par défaut (Picture).

Hwnd et Picture retournent des valeurs différentes. Donc ce que tu
dis semble erroné si tu parles de l'identifiant unique que Windows
attribue à ses objets. Ce n'est pas non plus le HDC (Handle Device
Context), car la valeur est aussi différente.

Mais je me doute bien que ce que retourne la propriété picture semble
être unique. Mais à quoi cela est-il lié ? Parles-tu d'un autre
handle ?
Guy

"Pascal B." a écrit dans le message
de news:

La propriété par défaut d'une Picture est son Handle
(qui n'a pas de lien avec HDC)

De plus, par code, il y a 2 façons de "vider" une Picture:
Set Picture1.Picture = Nothing
ou
Picture1.Picture = LoadPicture( )

Dans le 1er cas, c'est la solution de Christian qui fonctionne
dans le second, c'est celle du Troll.

Et il reste le cas où la picture est un rectangle blanc !?!?

Pascal B.

"Guy DETIENNE" wrote in message
news:
Salut ;O)

Hélas, ta façon de procéder retourne toujours FALSE peu importe le
contenu de la PictureBox.

Je me suis donc attardé sur la question en essayant différentes
méthodes. J'ai testé la façon de procéder suivante : tester la valeur
de
retour de la propriété PICTURE .

Si Picture retourne 0, la PictureBox ne contient pas d'image, si
Picture retourne une valeur supérieure à 0, il y a une image.

Pour retirer une image d'un contrôle PictureBox:
Me.Picture1.Picture = Nothing

Mais entre nous, je ne sais pas ce que représente la valeur
retournée par la propriété PICTURE.... ce n'est pas le HDC.

Aussi, la valeur de la propriété PICTURE semble ne pas être liée à
l'image chargée car cette valeur change si je recharge la même
image dans la PictureBox...

Guy


"Christian HUBERT-HUGOUD- Xtrem7" a écrit dans
le message de news: crm0cn$s41$
J'aurais plutôt fait :

If Picture1.Picture is nothing

A tester...

Cordialement

Christian Hubert-Hugoud

"LE TROLL" <le a écrit dans le message de
news:%
Bonjour,

Pour savoir si picture est vide, je fais:

If Picture1.Picture = 0

Est-ce bon dans tous les vas ???

Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !














1 2