OVH Cloud OVH Cloud

Manipulation Piture

13 réponses
Avatar
LE TROLL
Bonjour,

Si je fais:

form1.picture1(1) = form2.picture2(4)

Ça marche !!!
---------------------------------------
Mais si je fais:

dim dessin as string
dessin = "form2.picture2(4)"
form1.picture1(1) = dessin

Ça ne parche pas, où est l'erreur, comment faire pour charger une pitures
avec une autre picture contenue dans une variable chaîne ???

Faut-il faire autrement, comment ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------

10 réponses

1 2
Avatar
White Water
LE TROLL a écrit :
Bonjour,

Si je fais:

form1.picture1(1) = form2.picture2(4)

Ça marche !!!
---------------------------------------
Mais si je fais:

dim dessin as string
dessin = "form2.picture2(4)"
form1.picture1(1) = dessin

Ça ne parche pas, où est l'erreur, comment faire pour charger une pitures
avec une autre picture contenue dans une variable chaîne ???

Faut-il faire autrement, comment ???



Bonjour,

Heureusement que ça marche pas, sinon ça serais n'importe quoi.

Dessin est du type String
et Form1.Backgroundimage est de type System.drawing.image

donc ça ne colle pas.

par contre :

Dim Dessin as Image

Dessin = Form2.background
Form1.background = Dessin

ça, ça marche.
A plus.
Avatar
Picalausa François
"LE TROLL" <le a écrit dans le message de news:

dim dessin as string
dessin = "form2.picture2(4)"
form1.picture1(1) = dessin

Ça ne parche pas,



Hello,

Il y a très clairement une erreur de typage des variable! On peut très
aisément le constater en utilisant l'explorateur d'objets (F2 ou Affichage >
Explorateur d'objets). En effet, celui-ci nous indique que la propriété
Picture de l'Object Form est de type IPictureDisp qui n'est donc pas un type
simple.

Par conséquent:
Form1.Picture = Form2.Picture
fonctionne... mais est (dans une certaine mesure) incorrect.
La syntaxe appropriée serait:
Set Form1.Picture = Form2.Picture

De même une variable de type string ne peut pas contenir une image. Le type
approprié est le IPictureDisp:
Private Sub Form_Load()
Dim Pic As StdPicture
Set Pic = loadpicture(...)
Set Pic = Form1.Picture
Set Form1.Picture = Pic
End Sub

--
Picalausa François
Avatar
LE TROLL
Merci, mais enr reprenant mon exemple, ça donnerait:

Dim carte as image
carte = Form2.Picture2(3)
form1.Picture1(i + 1) = carte

Désolé, ça ne marche pas, as-tu une autre idée ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"White Water" <"Pure"Anti-Spam"Coincidence"@Club-internet.fr> a écrit dans
le message de news:
LE TROLL a écrit :
Bonjour,

Si je fais:

form1.picture1(1) = form2.picture2(4)

Ça marche !!!
---------------------------------------
Mais si je fais:

dim dessin as string
dessin = "form2.picture2(4)"
form1.picture1(1) = dessin

Ça ne parche pas, où est l'erreur, comment faire pour charger une pitures
avec une autre picture contenue dans une variable chaîne ???

Faut-il faire autrement, comment ???



Bonjour,

Heureusement que ça marche pas, sinon ça serais n'importe quoi.

Dessin est du type String
et Form1.Backgroundimage est de type System.drawing.image

donc ça ne colle pas.

par contre :

Dim Dessin as Image

Dessin = Form2.background
Form1.background = Dessin

ça, ça marche.
A plus.


Avatar
LE TROLL
Merci, mais ça ne marche pas, en reprenant ton exemple:

Dim Pic As StdPicture
Set Pic = Form2.Picture2(3)
Set Form1(1).Picture = Pic
' l'objet ne gère pas cette propriété ou cette méthode...

Que faut-il corriger (attention, je crois que le load c'est pour les
fichiers), moi pour ne pas remorquer de fichier, je charge toutes mes images
dans une form du programme (form2) par la propriété picture, et ensuite je
vais les chercher sur la form2: form2.picture1(1) ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Picalausa François" a écrit dans le message de news:

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

dim dessin as string
dessin = "form2.picture2(4)"
form1.picture1(1) = dessin

Ça ne parche pas,



Hello,

Il y a très clairement une erreur de typage des variable! On peut très
aisément le constater en utilisant l'explorateur d'objets (F2 ou Affichage
> Explorateur d'objets). En effet, celui-ci nous indique que la propriété
Picture de l'Object Form est de type IPictureDisp qui n'est donc pas un
type simple.

Par conséquent:
Form1.Picture = Form2.Picture
fonctionne... mais est (dans une certaine mesure) incorrect.
La syntaxe appropriée serait:
Set Form1.Picture = Form2.Picture

De même une variable de type string ne peut pas contenir une image. Le
type approprié est le IPictureDisp:
Private Sub Form_Load()
Dim Pic As StdPicture
Set Pic = loadpicture(...)
Set Pic = Form1.Picture
Set Form1.Picture = Pic
End Sub

--
Picalausa François



Avatar
Picalausa François
"LE TROLL" <le a écrit dans le message de news:
%
Merci, mais ça ne marche pas, en reprenant ton exemple:

Dim Pic As StdPicture
Set Pic = Form2.Picture2(3)
Set Form1(1).Picture = Pic



Bonjour,

Je n'avait pas compris que tu parlais des contrôles et pas de la propriétés
par la référence à Picture
Il faut alors spécifier la propriété à laquelle tu cherches à accéder
(l'explorateur d'objets te l'aurais dit aussi!):
Set Pic = Form2.Picture2(3).Picture
Set Form1(1).Picture.Picture = Pic

Quoi que la notation Form1(1) me semble assez spéciale...

Pour "embarquer" des images, le mieux est, AMHA, d'utiliser un fichier de
ressources, conçu spécialement pour cette tâche.
On utilise alors (généralement) :
Set Pic = LoadRespicture(Id,vbResBitmap)

--
Picalausa François
Avatar
White Water
LE TROLL a écrit :


Désolé, ça ne marche pas, as-tu une autre idée ???




Bonjour, tu peux être plus précis ? Qu'est ce qui ne marche pas ? Erreur
de compilation, d'exécution, il ne se passe rien à l'exécution ?

A plus.
Avatar
LE TROLL
Tu as l'erreur à la ligne 2:, comme indiqué sous cette dernière:

1: Dim Dessin As Image
2: Dessin = Form2.Picture1(2)
' erreur d'execution 91
' variable objet ou variable bloc with non défini
3: Form1.Picture1(3) = Dessin

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"White Water" <"Pure"Anti-Spam"Coincidence"@Club-internet.fr> a écrit dans
le message de news: eb%
LE TROLL a écrit :


Désolé, ça ne marche pas, as-tu une autre idée ???




Bonjour, tu peux être plus précis ? Qu'est ce qui ne marche pas ? Erreur
de compilation, d'exécution, il ne se passe rien à l'exécution ?

A plus.


Avatar
LE TROLL
Mais on va y arriver :o)

form1(1), je me suis planté, c'est form1.picture1(1) que je voulais mettre
par exemple...

Ton exemple plante à la l'adresse 3, décrite adresse 4, ainsi:

1: Dim Pic As StdPicture
2: Set Pic = Form2.Picture2(3).Picture
3: Set Form1(1).Picture.Picture = Pic
4: 'l'objet ne gère pas cette propriété ou cette méthode
5: End Sub

Non, pas de fichier de ressoucre, j'ai déjà utilisé, compliqué et pas
pratique...

Au plaisir de te lire...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Picalausa François" a écrit dans le message de news:
%
"LE TROLL" <le a écrit dans le message de news:
%
Merci, mais ça ne marche pas, en reprenant ton exemple:

Dim Pic As StdPicture
Set Pic = Form2.Picture2(3)
Set Form1(1).Picture = Pic



Bonjour,

Je n'avait pas compris que tu parlais des contrôles et pas de la
propriétés par la référence à Picture
Il faut alors spécifier la propriété à laquelle tu cherches à accéder
(l'explorateur d'objets te l'aurais dit aussi!):
Set Pic = Form2.Picture2(3).Picture
Set Form1(1).Picture.Picture = Pic

Quoi que la notation Form1(1) me semble assez spéciale...

Pour "embarquer" des images, le mieux est, AMHA, d'utiliser un fichier de
ressources, conçu spécialement pour cette tâche.
On utilise alors (généralement) :
Set Pic = LoadRespicture(Id,vbResBitmap)

--
Picalausa François



Avatar
Picalausa François
Hello,

"LE TROLL" <le a écrit dans le message de news:
%
form1(1), je me suis planté, c'est form1.picture1(1) que je voulais mettre
par exemple...
[...]

3: Set Form1(1).Picture.Picture = Pic
4: 'l'objet ne gère pas cette propriété ou cette méthode



Comme tu l'indique précédemment, l'erreur ne vient-elle pas de l'erreur sur
l'indexage?
Set Form1.Picture1(1).Picture = Pic


Non, pas de fichier de ressoucre, j'ai déjà utilisé, compliqué et pas
pratique...



A partir du moment où
- les ID de ressources sont facilement accessibles (par exemple à l'aide
d'un enum)
-les identifiants suivent une logique (Par exemple, en découpant les
différentes form sur base des centaines)
il n'y a vraiment aucun problème de complexité ajoutée.
Pour de vue pratique, une fois que ces règles sont appliquées, il suffit de
se référer à l'enum:
Set [...].Picture = LoadRespicture(MyResources.resPlayButtonUp,
vbResPicture)

--
Picalausa François
Avatar
LE TROLL
Oui, ça marche, tu as raison, j'ai oublié d'enlever le 1 de form1(1), merci
:o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Picalausa François" a écrit dans le message de news:

Hello,

"LE TROLL" <le a écrit dans le message de news:
%
form1(1), je me suis planté, c'est form1.picture1(1) que je voulais
mettre par exemple...
[...]

3: Set Form1(1).Picture.Picture = Pic
4: 'l'objet ne gère pas cette propriété ou cette méthode



Comme tu l'indique précédemment, l'erreur ne vient-elle pas de l'erreur
sur l'indexage?
Set Form1.Picture1(1).Picture = Pic


Non, pas de fichier de ressoucre, j'ai déjà utilisé, compliqué et pas
pratique...



A partir du moment où
- les ID de ressources sont facilement accessibles (par exemple à
l'aide d'un enum)
-les identifiants suivent une logique (Par exemple, en découpant les
différentes form sur base des centaines)
il n'y a vraiment aucun problème de complexité ajoutée.
Pour de vue pratique, une fois que ces règles sont appliquées, il suffit
de se référer à l'enum:
Set [...].Picture = LoadRespicture(MyResources.resPlayButtonUp,
vbResPicture)

--
Picalausa François



1 2