Bonjour,
J'ai une proc=E9dure g=E9n=E9rique qui pour une fen=EAtre donn=E9e parcours
tous les contr=F4les de cette fen=EAtre, et qui en fonction de son nom et
de son index =E9ventuel va rechercher dans un fichier Xml un texte =E0
afficher (ceci afin que mon application soit multilingue).
Ceci me pose un probl=E8me.
J'ai actuellement, dans une class, la fonction suivante :
Private Function strIdentifiantXmlDuControle(ByRef vobjControl As
Control) As String
Dim intIndex As Integer
On Error GoTo GstErreur
Exit Function
GstErreur:
strIdentifiantXmlDuControle =3D vobjControl.Name
End Function
Je dois bien avouer ne pas =EAtre un inconditionnel d'utiliser la
gestion des erreurs de cette mani=E8re.
D ou ma question :
Existe t il un moyen simple, qui ne renvoie pas d erreur, si un control
est index=E9 ?
Existe t il un moyen simple, qui ne renvoie pas d erreur, si un control est indexé ?
Tu peux essayer ceci une fois que tu as le nom du contrôle (ou groupe de contrôle) [ctrName]
If TypeOf(ctrlName) Is Control Then MsgBox ctrlName & " n'est pas un groupe de contrôles" Else MsgBox ctrlName & " est un groupe de contrôles" End If
Cela semble fonctionner mais je n'ai pas fait de tests approfondis.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Drizzit
J'n'ai pas tout compris... A ma fonction strIdentifiantXmlDuControle, je vais forcement passer une variable de type Control.... En faite, avant d'appeler cette fonction strIdentifiantXmlDuControle, j'ai une procédure publique à ma class qui est : Public Function mblnTraduireFenetre (ByRef robjForm As Form, _ ByVal vstrLangue As String) As Boolean ...... For Each objControl In robjForm.Controls strKeyControl = strIdentifiantXmlDuControle(objControl) En fonction du code If TypeOf objControl Is .... Then objControl.Caption = .... ElseIf TypeOf objControl Is ... Then ....... End if Next objControl End Function
J'n'ai pas tout compris...
A ma fonction strIdentifiantXmlDuControle, je vais forcement passer une
variable de type Control....
En faite, avant d'appeler cette fonction strIdentifiantXmlDuControle,
j'ai une procédure publique à ma class qui est :
Public Function mblnTraduireFenetre (ByRef robjForm As Form, _
ByVal vstrLangue As String) As
Boolean
......
For Each objControl In robjForm.Controls
strKeyControl = strIdentifiantXmlDuControle(objControl)
En fonction du code
If TypeOf objControl Is .... Then
objControl.Caption = ....
ElseIf TypeOf objControl Is ... Then
.......
End if
Next objControl
End Function
J'n'ai pas tout compris... A ma fonction strIdentifiantXmlDuControle, je vais forcement passer une variable de type Control.... En faite, avant d'appeler cette fonction strIdentifiantXmlDuControle, j'ai une procédure publique à ma class qui est : Public Function mblnTraduireFenetre (ByRef robjForm As Form, _ ByVal vstrLangue As String) As Boolean ...... For Each objControl In robjForm.Controls strKeyControl = strIdentifiantXmlDuControle(objControl) En fonction du code If TypeOf objControl Is .... Then objControl.Caption = .... ElseIf TypeOf objControl Is ... Then ....... End if Next objControl End Function
Fred
Dans : news: Drizzit écrit :
J'n'ai pas tout compris...
C'est normal, j'ai zappé une partie du problème. Voici un bout de code plus complet. Tu peux le tester en posant sur une feuille des contrrôles simples et des contrôles indexés.
Dim c As Control Dim o As Object
For Each c In Me.Controls Set o = Me.Controls(c.Name) If TypeOf o Is Control Then MsgBox c.Name & " est un contrôle" Else MsgBox c.Name & " est un contrôle d'index " & c.Index End If Next
En fait, c'est le résultat de Me.Controls qui est : - soit un tableau de contrôles - soit un contrôle
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:1140598002.211278.146290@f14g2000cwb.googlegroups.com
Drizzit écrit :
J'n'ai pas tout compris...
C'est normal, j'ai zappé une partie du problème.
Voici un bout de code plus complet.
Tu peux le tester en posant sur une feuille des contrrôles simples et
des contrôles indexés.
Dim c As Control
Dim o As Object
For Each c In Me.Controls
Set o = Me.Controls(c.Name)
If TypeOf o Is Control Then
MsgBox c.Name & " est un contrôle"
Else
MsgBox c.Name & " est un contrôle d'index " & c.Index
End If
Next
En fait, c'est le résultat de Me.Controls qui est :
- soit un tableau de contrôles
- soit un contrôle
C'est normal, j'ai zappé une partie du problème. Voici un bout de code plus complet. Tu peux le tester en posant sur une feuille des contrrôles simples et des contrôles indexés.
Dim c As Control Dim o As Object
For Each c In Me.Controls Set o = Me.Controls(c.Name) If TypeOf o Is Control Then MsgBox c.Name & " est un contrôle" Else MsgBox c.Name & " est un contrôle d'index " & c.Index End If Next
En fait, c'est le résultat de Me.Controls qui est : - soit un tableau de contrôles - soit un contrôle
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Fred
Dans : news: Drizzit écrit :
J'n'ai pas tout compris...
Sans compter que mon code comportait une grosse erreur. Ce n'était pas TypeOf(ctrlName) mais plutôt TypeOf(Me.Controls(ctrlName))
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:1140598002.211278.146290@f14g2000cwb.googlegroups.com
Drizzit écrit :
J'n'ai pas tout compris...
Sans compter que mon code comportait une grosse erreur.
Ce n'était pas TypeOf(ctrlName) mais plutôt
TypeOf(Me.Controls(ctrlName))