passer le nom d'un controle par variable [VB6] - Programmation
Marsh Posté le 20-11-2001 à 11:34:52
Ben il suffit de declarer une variable de type control, de la faire pointer sur ton textbox et de passer son .name a ta function
vala
Marsh Posté le 20-11-2001 à 11:37:17
Merci msieur !
Marsh Posté le 20-11-2001 à 14:23:22
bon j'ai toujours mon chti problème...je n'arrive pas à passer le nom en variable :-(
ex:
Dim test As Control
rep = InputBox("Nom du controle" )
Set test = rep
test.Caption = "HFR is fantastic"
...ne marche pas.. Ca fonctionne si je mets directos le nom du ocntrole à la place de rep mais ce n'est pas ça que je veux faire moua... je veux vraiment que le nom du controle se ballade et soit exploitable dans une fonction..
Merci d'avance !
Marsh Posté le 21-11-2001 à 14:37:19
2 solutions :
------------------------------------------------------------
'Fonction
Public Sub Titre(Ctl as Control)
if TypeOf Ctl Is CommandButton
Ctl.Caption = "Ca marche"
end if
End Sub
'Appel
Titre(BoutonOK)
'-> affiche "Ca marche" comme titre du bouton OK
------------------------------------------------------------
'Fonction
Public Sub Titre(ControlName as String)
Dim tmpCtl as Control
Set tmpCtl = MaForm.Controls(ControlName)
If tmpCtl is Nothing then
msgbox "La feuille MaForm ne contient pas de contrôle " & ControlName
Else
if TypeOf tmpCtl is CommandButton then
tmpCtl.Caption = "Ca marche"
else
msgbox "le controle " & controlname & " n'est pas un bouton"
end if
end if
End Sub
'Appel :
Titre "BoutonOK"
Voila qui devrait te permettre de faire ce que tu cherches
a+
Marsh Posté le 21-11-2001 à 14:44:33
Oki merci, je vais voir ce que ça donne...paske passer par des globales, c'est pas ce que je préfère
Controls est une collection, isn't it ?
Marsh Posté le 21-11-2001 à 18:54:02
oui mais à ton niveau un petit passage par une globale ne doit pas être bien génant.
Marsh Posté le 21-11-2001 à 19:34:37
Non, j'aime pas les globales, j'en ai deja une 10aine dans un module et quand c'est un prog avec 65 forms, ça commence à être un peu le bordel à gérer...
Et mon prof d'algo m'a disait tjs "les globales c'est caca !"
Marsh Posté le 22-11-2001 à 14:30:51
-----
soit le controle text1
je voudrais pouvoir passer son nom (text1) dans une function..
genre :
controlName = text1.name
public function (controlname as string)
controlname.caption = "HFR is Fantastic"
End function
-----
dim Ctr as control
for each Ctr in me.controls
' cette boucle te permet de parcourir tous les controls
' de ta feuille
' il te suffit de verifier que tu pointes sur le bon et :
if ---- then call sub(Ctr.name) ' et hop
next
Marsh Posté le 22-11-2001 à 15:04:47
Bloody> Ca marche, mais ca sert strictement à rien
Tu accède directement a Me.Controls("NomDuControle" ), ca fait pareil et ca va nettement + vite (à coder et à exécuter)
(Ou alors, c'est que j'ai pas pigé ce que tu veux faire)
Marsh Posté le 22-11-2001 à 17:57:38
Ouais sauf si t as pas le nom de ton control mais que tu peux l identifier autrement (par son contenu par exemple)
Si Chapi avait le nom du control, je pense qu il n aurait pas poster
Ou alors j ai rien compris
Marsh Posté le 20-11-2001 à 11:26:13
Vouala mon soucis...
soit le controle text1
je voudrais pouvoir passer son nom (text1) dans une function..
genre :
controlName = text1.name
public function (controlname as string)
controlname.caption = "HFR is Fantastic"
Enf function
mais forcément, cela ne marche pas.... kelkun a une idée ? il y a une syntaxe spéciale ?
Merci d'avance
Chapi
---------------
I drive at 88mph ! Just in case...