Comment faire pour ...

Signaler
Messages postés
69
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
21 août 2008
-
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
-
Salut,
Comment faire pour definir un nom d'objet a partir d'une donnee string ?

Je m'explique :
Je recupere par une routine, le nom d'un objet image, dans une donnee string
(par exemple : madonnee = "image_base_1")
et a partir de cette donnee, je veux pouvoir l'attribuer à un autre emplacement d'image
(par exemple : image_affichage.image = madonnee.image)
Mais bien sur, ca ne fonctionne pas car les types sont differents.

D'ou ma question, comment faire pour que cela puisse fonctionner ???
Merci de votre aide.

10 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
Et pourquoi ne pas passer l'objet directement, car je ne pense pas que
ton truc puisse fonctionner : comment veux-tu que VB puisse reconnaître
le type d'objet uniquement par son nom ? On n'est pas en LISP ici, lol
;)

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Salut,

Je ne sais pas si j'ai bien compris mais, à ma connaissance, il n'est pas possible de repérer directement un controle à partir d'une donnée string. Il faut parcourir la collection de controles de la form jusqu'à trouver le bon :

Dim c As Control


For Each c In Me.Controls
If c.Name = madonnee Then
image_affichage.image = c.image
exit for
End If
Next

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
69
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
21 août 2008

Merci Dark et Canis.

J'ai deja vu cette methode de recherche a partir d'une collection de controles, mais je la trouve peu efficace et surtout peu optimisee et optimisable sur une collection de plusieurs milliers d'objets ...

J'ai beau chercher et demander un peu de partout, mais tjrs aucune autre solution.
Merci.

Si vous avez une autre solution 'viable', n'hesitez pas ;)
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Milliers d'objets ? explique un peu plus STP.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
C'est pour cà que je te suggère de passer directement une référence
d'objet et non une chaîne correspondant au nom de l'objet : c'est moins
souple à utiliser, mais c'est bien plus optimisé !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
Messages postés
69
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
21 août 2008

169075 CanisLupus
Pour rentrer plus dans le detail, c'est plutot qq centaines et pas milliers d'objet ... (j'ai fourche ;))
Il s'agit en fait de pages de sprites (directement inclus dans des form)
Ca fonctionnais tres bien avec les index en vb6, mais comme je dois retranscrire en .net, je galere pour definir et recreer un algo ou routine efficace et fiable.

=72978 liquide
Et oui pas le choix !!!

DARKSIDIOUS
Hmmm peux tu m'en dires plus, car je saisi pas completement ce que tu entends par reference d'objet.
Un petit exemple serait le top ;)

En vous remerciant tt les 3.
Messages postés
69
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
21 août 2008

Oupsssss, j'ai oublie de signaler que c'est du vb.net dans mon premier post ... arf
Oui pour le ctype / gettype, mais je vois pas comment faire pour un objet image.
Un petit exemple serait encore le top ;)
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Pour un ex en vb.net, je ne pourrai t'en donner un que demain dans la journée. Je n'ai pas encore vb.net chez moi.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
69
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
21 août 2008

Merci pour ton aide, mais ...
dim MonObj as image = ctype(image_base_1, image)
La definition 'as image' n'existe pas, et j'ai rien trouve de correspondant à une image ou picture.

Deplus, quand je fais un : Console.WriteLine("Donnees : ", image_base_1.GetType())
Il me retourne vide ...

Je sais plus ou et quoi chercher moi ... :(

ps: np canis ;)
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonsoir,

Je ne connais le .Net, mais voici la solution en VB6, pour ceux que celà intéressent.



Private Sub Command1_Click()

Dim madonnée

Set madonnée = image_base_1.Picture

Set image_affichage.Picture = madonnée

End Sub



jpleroisse