String et control

1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007 - 10 janv. 2006 à 08:40
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 10 janv. 2006 à 11:18
Bonjour,
peut-on convertir une string en control?
exemple que j'aimerai faire:
ctrl et triangle2 sont des controls et triangle est une string
triangle=ctrl.name
triangle2.name=triangle

mais ca, ca ne marche pas
comment faire?

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 janv. 2006 à 09:17
Salut,



Oula, tu es en VB ici, pas en LISP ! Les variables sont typées, donc il
n'est pas possible de faire passer une simple chaîne de caractère
nommée en DBGrid2WidthManyColumns en une DBGrid qui comporterait un bon
millier de colonne, il faut pas rêver !



Maintenant, il existe des variables de type Object qui peuvent peut-être t'aider :



Dim Triangle As Object

Set Triangle = ctrl.name

MsgBox Triangle.Name 'IDEM que ctrl.Name

Triangle2.Name = Triangle.Name 'là par contre BUG : 2 contrôles
différents ne peuvent avoir le même nom ! A moins qu'ils ne fassent
partit d'un groupe de contrôle et que tu puisse les distinguer par un
index !



Sinon, il existe aussi les collection qui permettent de référencer chaque contrôle de la collection par leur nom par exemple.



Mais précise nous quel est le but que tu cherche à atteindre, ce sera
plus simple pour te dire quelle méthode est la plus adaptée et la plus
optimisée.

_____________________________________________________________________
0
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
10 janv. 2006 à 09:18
salut !
pourquoi voudrais tu changer le nom d'un de tes controles ?

A+.
Thomas.
0
1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007
10 janv. 2006 à 10:43
Voilà, je fait des boucle pour trouver parmi plusieurs controls avec des chiffres, le chiffre le plus élevé. dans la boucle quand il trouve le premier chiffre, il remplit la variable comme suit.


triangleaposer = ctrl5.Name



ensuite, pour le prochain passage, il compare le chiffre qu'il a calculé avec le chiffre de l'objet précédent et si il est plus élevé, il remplace triangleaposer par le nouveau nom de l'objet, etc.
à la fin de la boucle, il aura trouvé le nom de l'objet avec le plus grand chiffre. maintenant, j'aimerai afficher cet objet(control)
pour ce faire, voici le code

triangletrouve.Name = triangleaposer


triangletrouve.Left = posx


triangletrouve.Top = posy


triangletrouve.Visible = True


triangletrouve.Enabled =
True

mais, il me retourne cette erreur

Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.
0
1217meyrin Messages postés 159 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 6 février 2007
10 janv. 2006 à 11:03
en fait, la variable triangleaposer est une string et contient le nom du control ayant le plus grand chiffre.
exemple: triangleaposer est peut-etre = a "triangle30_2" et j'aimerai pouvoir utiliser ce nom *triangle30_2" qui correspond automatiquement dans mon prog. à un control.
j'aimerai lui dire maintenant
triangle30_2.left=10 ou quelque chose comme ca
0

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

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
10 janv. 2006 à 11:17
De toute faç_on, il me semble que la propriété Name des controles est en lecture seule !!
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
10 janv. 2006 à 11:18
Plutot que de mémoriser le nom du controle dans une variable de type String, mémorise le controle lui-même dans une variable de type Control
0
Rejoignez-nous