imgKappa
Messages postés44Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention28 avril 2007
-
30 janv. 2007 à 23:50
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
31 janv. 2007 à 14:12
Bonjour,
Je desires faire passe une variable en objet, c'est a dire
je recupere le nom de l'objet :
Private Sub Command5_Click()
Dim Para1, Para2
Para1 = Combo18.Name
Para2 = Combo18.Tag
UpdateListe Para1, Para2
End Sub
Et dans la procedure je voudrais:
Public Sub UpdateListe(Para1, Para2)
Dim TextLine
Para1.Clear <- UTILISER LA VARIABLE EN OBJET Open GCF + "\exe\ListeDefImmo.txt" For Input As #1 ' Ouvre le fichier.
Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier.
Line Input #1, TextLine ' Lit la ligne dans la variable.
Para1.AddItem (TextLine)
Loop
Close #1 ' Ferme le fichier.
End Sub
Cependant vu que cela se passe dans une SUb Publique, peu être qu'elle se trouve dans un module et alors il serait peu etre nécessaire de passer aussi en parametre le Form et de ne plus utilise Me mais le nom du parametre
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 31 janv. 2007 à 00:28
Dis nous quelle erreur ça te donne, je t'avoue que je ne sais pas de tete.
Essaye de rajouter un ByRef :
Public Sub UpdateListe(ByRef Para1, ByRef Para2)
Attends je réflechi la, Para1 c'est une chaine de caractère : Combo18.Name
Euh tu veux pas plutot faire passer Combo18 en parametre ?
Dans ce cas la tu fais juste UpdateListe Combo18 ???
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 janv. 2007 à 08:36
MadM@tt a bien évidemment raison .
Tu ne peux écrire Para1.Clear et Para1.AddItem alirs que Para1 est une chaîne de caractères (le nom de ta combo) !
Je ne connais par ailleurs personnellement pas de formule te permettant de te référer directement à un contrôle à l'aide de son nom. Il te faudrait pour celà faire une boucle sur tous les contrôles pour trouver à quel contrôle correspond ce nom !
Tu peux par contre créer un groupe de comboboxes indéxées de 1 à n et nommées combo1(0).... combo1(n-1). Il te suffirait alors de passer à ta routine l'index de la combobox concernée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 janv. 2007 à 08:47
La formulation qui suit est par ailleurs assez maladroite
Open GCF + "\exe\ListeDefImmo.txt" For Input As #1
Je pense que CGF est une variable globale contenant une chaîne de caractères et pas la chaîne "CGF" (tiens ... ça ressemble à un sigle que j'ai utilisé mille fois : Consulat Général de France)
Si tel est bien le cas : remplacer le + par un &, plus clair que le + en ce qui concerne une concaténation.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 janv. 2007 à 10:58
En regardant la mer, Jrivet, j'ai essayé de voir comment utiliser ce truc-là (à quoi, en effet, celà pourrait servir).
J'ai trouvé une utilisation intéressante, dont je parlerai ici quand la présente discussion sera terminée et validée par le demandeur.
fais-m'y penser si j'oublie.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 janv. 2007 à 13:51
Me voilà donc; la discussion du demandeur ayant maintenant trouvé sa solution.
Seul problème : s'exprimer clairement après un repas arrosé !
1) Chacun d'entre nous a été confronté au problème de passage de focus entre un contrôle et l'autre (utilisation du tabindex).
Les choses vont bien au départ, mais voilà : à chaque évolution de l'application (insertion de contrôles ici et là) ... bonjour les modifs de tabindex.
2) complication, maintenant, dans ce "tas" là :
imaginons des passages de focus ne respectant plus le tabindex mais devant répondre à des expressions conditionnelles. Pas de problème dans un sens (passer au suivant) mais problème pour revenir en arrière (maj + tab ou, pour les plus malins, utilisation des flêches directionnelles) sans s'arrêter inutilement aux contrôiles de tabindex - 1.
La solution possible serait bien évidemment l'utilisation d'une variable, voire d'un tableau, "guidant la cadence"...
Mais avec ton truc, Jrivet, tout devient simple :
Il suffit, en passant le focus au contrôle toto de son choix en fonction de conditions, de mettre dans la propriété tag du contrôle "à focuser" le nom du contrôle qui décide de ce focus.
A l'envoi (utilisation du keydown) du retour en arrière : lecture de ce qu'il y a dans ce tag et focus donné au contrôle portant ce nom .
Je ne sais pas si le vin que j'ai bu permet encore une lecture et une compréhension du mécanisme ainsi exposé. Si tel n'était pas le cas, je ferais une petite appli de démonstration.
Dites-moi donc...
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 31 janv. 2007 à 14:12
En gros Jacques, tu applique le principe des listes chainées connu en C aux focus des controles.
Ainsi chaque controle a un prédécesseur et un successeur.
Et l'insertion d'un controle au milieu devient aisée même en dynamique puisque seul un prédécesseur, un successeur et le controle ajouté sont à modifier.
Effectivement ça peut etre une solution interessante à creuser.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #