Est il possible de definir le nom d'un objet a partir d'une donnee texte reconst

Danyelk Messages postés 69 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 21 août 2008 - 8 juil. 2005 à 22:31
Danyelk Messages postés 69 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 21 août 2008 - 10 juil. 2005 à 18:54
Salut,
Je vais essayer d'etre le plus clair possible car pas facile a expliquer ... et c'est du vb.net

J'ai un objet (x) image nomme : Image_Test32.image
J'ai un autre objet (y) image nomme : Image_Affichage.image

Le but est d'afficher l'image x dans l'emplacement de l'image y. Jusque la aucun probleme en faisant :
Image_Affichage.image = Image_Test32.image

Le probleme est que ne connaissant pas le nom de l'image a afficher, je ne peux le savoir qu'avec un routine qui me renvoi uniquement le nom complet de l'image dans un champs texte (dans mon exemple, il me renvoi : datarenvoye = "Image_Test32")

Mais le probleme, c'est que je ne sais pas comment faire pour reattribuer la valeur renvoyee ...
J'ai essaye plusieurs solutions comme :
Image_Affichage.image = datarenvoye.image
mais bien sur erreur car datarenvoye n'est pas une image.

Alors comment faire car ne connaissant pas encore bien vb.net, je ne sais pas si deja c'est faisable et si oui comment.
Merci de votre aide.

9 réponses

Profil bloqué
9 juil. 2005 à 00:39
Salut 410374 Danyelk
La propriété Name d'un controle renvoie le nom utilisé dans le code pour identifier une feuille, un contrôle, ou un objet d'accès aux données. Cette propriété est en lecture seule à l'
<OBJECT id =alink_4 type=application/x-oleobject classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11></OBJECT>[javascript:alink_4.Click() exécution] ce qui signifie que tu ne peux pas lors de l'éxecution du programme modifier le nom du contrôle
Par contre il y a quelque chose que je ne comprends pas
tu as 2 contrôles image ( appellons les SOURCE et DESTINATION)
Tu veux que l'image SOURCE aille dans DESTINATION --> DESTINATION.image=SOURCE.image en Visual Basic
Ta routine dont tu parles va chercher le nom du contrôle lui-même ou le nom d'un fichier image ?

Si tu faisais ceci si renvoi nom de contrôle
if DESTINATION.name="datarenvoye" then ' teste le nom du contrôle
DESTINATION.image=SOURCE.image ' c'est celui-là : on transfère l'image
end if

Dans le cas d'un fichier image
DESTINATION.image=loadpicture(" Nom du fichier image")

J'espère avoir bien compris ton problème
Bonne prog et A+

GRENIER Alain
0
Danyelk Messages postés 69 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 21 août 2008
9 juil. 2005 à 14:00
Merci Alain.
Tu ne fais que confirmer ce que je pensais sur le nom du controle, mais je preferais en avoir la confirmation, car il aurait pu y avoir une commande x ou y qui aurait permis d'attribuer un nom de controle a partir d'un champs texte.
En fait, ce que je demandais, c'est en gros ca :
Image_Affichage.image = cmdxouy(datarenvoye).image
mais qui au lieu de prendre comme nom de controle 'cmdxouy(datarenvoye)', prendrais en fait la valeur de 'datarenvoye' pour nom de controle. (houla, je sais pas sir ce suis vraiment clair la - lolololol)

Pour repondre a ta question :
Ta routine dont tu parles va chercher le nom du contrôle lui-même ou le nom d'un fichier image ?
-> ma routine ne va rien chercher, elle crée dans une champs texte, le nom de l'image
(par ex : datarenvoye = "Image_" & nom & numero)
Sinon, je ne charge pas d'image a partir de fichier, je les tire d'un form sprites.

Si je prends ton code, ca peut fonctionner, mais je retourne dans ma question, car comme DESTINATION et SOURCE est variable, il faudrait que je crée une routine pour chaque emplacement DESTINATION et SOURCE ... irréalisable car plusieurs centaines d'images ...

Il faudrait juste que je puisse, comme expliquer plus haut, définir un chmaps texte pour un nom de controle.
Si je prends ton exemple, il faudrait que : DESTINATION.image=SOURCE.image
Ou DESTINATION et SOURCE seraient des champs texte, mais pris comme nom de controle.
La je pense que j'ai ete plus clair ;) non ?
0
Profil bloqué
9 juil. 2005 à 15:08
Salut Danyelk

Dans ta réponse tu écris : Si je prends ton code, ca peut fonctionner, mais je retourne dans ma question, car comme DESTINATION et SOURCE est variable, il faudrait que je crée une routine pour chaque emplacement DESTINATION et SOURCE ... irréalisable car plusieurs centaines d'images ...

Si tu utilisais pour SOURCE ET DESTINATION des groupes de contrôles : SOURCE(0),SOURCE(1),SOURCE(2),etc... et identique pour DESTINATION

C'est peut-être à étudier
Peut-être faut-il utiliser directement les API Windows ?

Bon courage et bonne prog

GRENIER Alain
0
Danyelk Messages postés 69 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 21 août 2008
9 juil. 2005 à 21:04
Salut Galain
Qu'entends tu par groupes de controles ?
Peux tu me donner un exemple concret ?
Merci à toi.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Profil bloqué
9 juil. 2005 à 23:36
Salut 410374 Danyelk
Je vais t'expliquer ce que sont des groupes de controles
Prend une feuille Form1
Pose dessus un contrôle image appelé FIGURE
Clicque dans le contrôle avec le bouton droit de la souris puis fais copier
Un exemplaire du contrôle est dans le pressepapier ( clipboard en anglais) de Windows
Reclicque dans la feuille mais hors du contrôle avec le bouton droit et fais coller
Un second contrôle image apparait
Vb te demande si tu veux faire un groupe de contrôles : c'est-à-dire que tous tes contrôles s'appelleront FIGURE et seront différenciés par leur index : FIGURE(0) pour le premier,FIGURE(1) pour le second,FIGURE(2) pour le troisième,etc...

Tu peux ainsi mettre 2 contrôles de même nom sur une feuille : c'est leur index qui les différencie

Lis ce qui suit pour ajouter des contrôles du même nom par programme ou pour en enlever aussi par programme : cela provient de MSDN ( la bible "Microsoft" pour leurs outils de développement)


Ajout dans un groupe de contrôles au moment de l'exécution


<OBJECT id =alink_1 style="LEFT: 10px; WIDTH: 70px; TOP: 57px; HEIGHT: 18px" type=application/x-oleobject height=18 width=70 classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11></OBJECT>


Les instructions Load et Unload permettent d'ajouter ou de supprimer des contrôles dans un groupe de contrôles au moment de l'exécution. Toutefois, les contrôles à ajouter doivent faire partie d'un groupe de contrôles existant. Vous devez avoir défini un contrôle au moment de la création en affectant, selon toute probabilité, la valeur 0 à sa propriété Index. Utilisez la syntaxe suivante au moment de l'exécution:


Load object(index%)


Unload object(index%)


Argument,
Description,
----

Object,
Nom du contrôle à ajouter ou à supprimer dans le groupe de contrôles.,
----

index%,
Valeur d'index du contrôle dans le groupe.


Lorsque vous chargez un nouvel élément dans un groupe de contrôles, la plupart des valeurs des propriétés sont copiées à partir du dernier élément existant dans le groupe (dans cet exemple, l'élément dont la valeur d'index est 0). Les valeurs des propriétés Visible, Index et TabIndex ne sont pas automatiquement reprises par les nouveaux éléments du groupe de contrôles. Vous devez donc affecter la valeur True à la propriété Visible du contrôle que vous venez d'ajouter pour que celui-ci soit visible.


Note Visual Basic génère un message d'erreur si vous tentez d'utiliser l'instruction Load avec un numéro d'index déjà utilisé dans le groupe.


Important Vous pouvez utiliser l'instruction Unload pour supprimer tout contrôle créé avec Load. En revanche, vous ne pouvez l'utiliser pour supprimer des contrôles définis au moment de la création, qu'ils fassent ou non partie d'un groupe de contrôles

A ton service et bonne prog

GRENIER Alain
0
Danyelk Messages postés 69 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 21 août 2008
10 juil. 2005 à 13:40
Salut Galain,

Juste un rappel, en vb.net, il n'y a plus d'index !!! donc on peut pas faire ...
C'est bien pour ca que je te demandais d'etre plus clair ;)
0
Profil bloqué
10 juil. 2005 à 18:21
Salut Danyelk
Désolé mais je ne connais pas du tout VB Net car je programme en VB 6.0
Mais il me paraît tout de même bizarre que les groupes de contrôles aient disparu en VB Net

Je crois que je ne puis alors plus beaucoup t'aider
Bonne prog et A+

GRENIER Alain
0
Profil bloqué
10 juil. 2005 à 18:42
ReSalut Danyelk
Après recherche sur le NET les groupes de contrôles ont bien disparu en VB Net

GRENIER Alain
0
Danyelk Messages postés 69 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 21 août 2008
10 juil. 2005 à 18:54
Salut Galain,
Oui oui, ca c'est sur, sinon je chercherais pas - lol
Thx.
0