IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

numero des types de controls d'une form


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 38
    Points
    38
    Par défaut numero des types de controls d'une form
    bonjour, voila dans un de mes programmes j'ai un bout de code afin de gerer le multilangue dans mon programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    Sub Traduire(F As Form)
    'On Error Resume Next
     
    'va rechercher la langue utilisée actuellement par le programme
        Set RsLangue = db.OpenRecordset("select * from param")
        Language = RsLangue!langueprog
     
        Set RsVocabulaire = db.OpenRecordset("langue")
        RsVocabulaire.Index = "traduction"
     
        For x = 0 To F.Controls.Count - 1
            RsVocabulaire.Seek "=", Language, F.Controls(x).Caption
            If Not RsVocabulaire.NoMatch Then
                F.Controls(x).Caption = RsVocabulaire!traduction
            End If
        Next x
     
    End Sub
    voila donc j'utilise une recherche dicotomique pour aller rechercher les thermes dans une base acess, seulement mon code utilise l'option controls des form selement il y a certain controls qui ne sont pas modifier ou qui font planter le programme (d'ou le ON ERROR RESUME NEXT), voila je souhaiterai savoir si quelqu'un connait les numéro des controls des différents élément possible d'une form, j'ai chercher sur google mais je ne sais pas exactement comment formuler ma question et je n'aie pas trouver dans la bibliothèque MSDN, pour plus d'explication, j'ai des tabbet dialog et il ne traduit que les onglets activé et vu qu'il n'y as pas de caption pour les textbox ...

    je chercher donc les numéros des controls afin de mettre le code spécifique pour chaque control

    voila j'espère avoir été clair

    merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 176
    Points
    17 176
    Par défaut
    A defaut d'un numéro qui serait attribué pour chaque type de contrôle disponible avec VB6, TypeName peut te renvoyer une information exploitable.
    Sur un Form, un CommandButton, un Label, une Frame et un TextBox et ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Load()
    Dim MsG
     
    MsG = TypeName(Command1)
    MsG = MsG & vbCrLf & TypeName(Label1)
    MsG = MsG & vbCrLf & TypeName(Frame1)
    MsG = MsG & vbCrLf & TypeName(Text1)
     
    MsgBox MsG
    End Sub
    Dans un de mes programmes, dans une même boucle que toi cela donne ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     For Each MeCtrl In Me.Controls
    '......................
    Select Case TypeName(MeCtrl)
      Case "DriveListBox", "ComboBox" 'Redimensionnement de la hauteur interdit
       MeCtrl.Move Leftt, TTop, Larg
      Case "Line" 'Redimensionnement différant par coordonées X/Y
       MeCtrl.Y1 = TTop: MeCtrl.Y2 = TTop + 180: MeCtrl.X1 = Leftt: MeCtrl.X2 = Leftt + Larg
      Case "Timer" 'deplacement et redimensionnement interdit
       'Ici on dessinne sur le Form avec le fichier image du Timer.JPG
       'pour cela il faut mettre le fichier image dans le dossier ou vous avez
       'mis l'image Timer.JPG, sinon il faut remer les lignes suivantes
       'jusqu'au Case Else
       Dim HW As Integer
       HW = ScaleX(28, vbPixels, vbTwips)
       Me.PaintPicture LoadPicture(App.Path & "\Timer.jpg"), _
                    Leftt, TTop, HW, HW, _
                     0, 0, HW, HW, vbSrcCopy
      Case Else
       MeCtrl.Move Leftt, TTop, Larg, 315
       'en imaginant que l'on souhaite ecrire du texte dans le control
       'pour certain c'est la propriété .Caption, d'autre c'est .Text
       If TypeName(MeCtrl) = "Label" Or TypeName(MeCtrl) = "CommandButton" Then
        MeCtrl.Caption = "Ceci est un " & TypeName(MeCtrl)
       End If
       If TypeName(MeCtrl) = "TextBox" Then MeCtrl.Text = "Ceci est un " & TypeName(MeCtrl)
     
     End Select
    '..................
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    ou utiliser un test sur le type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Ctrl As Control
    Dim F as Form
        For Each Ctrl In F.Controls
             If TypeOf Ctrl Is Label Or TypeOf Ctrl Is Frame  Then
             ....
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    En tous cas merci beaucoup pour vos réponse,

    voila maintenant je me retrouve avec 2 code différent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Sub Traduire(F As Form)
        For Each FControl In F.Controls
            Select Case TypeName(FControl)
            Case "Label", "Frame", "OptionButton", "CommandButton"
                RsVocabulaire.Seek "=", Language, FControl.Caption
                If Not RsVocabulaire.NoMatch Then
                    FControl.Caption = RsVocabulaire!traduction
                End If
            Case "ComboBox"
                RsVocabulaire.Seek "=", Language, FControl.Text
                If Not RsVocabulaire.NoMatch Then
                    FControl.Text = RsVocabulaire!traduction
                End If
            Case "SSTab"
                For x = 0 To FControl.Tabs - 1
                    RsVocabulaire.Seek "=", Language, FControl.TabCaption(x)
                    If Not RsVocabulaire.NoMatch Then
                        FControl.TabCaption(x) = RsVocabulaire!traduction
                    End If
                Next x
            End Select
        Next FControl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Dim Ctrl As Control
     
        For Each Ctrl In F.Controls
            If TypeOf Ctrl Is Label Or TypeOf Ctrl Is Frame Or TypeOf Ctrl Is OptionButton Or TypeOf Ctrl Is CommandButton Then
                RsVocabulaire.Seek "=", Language, Ctrl.Caption
                If Not RsVocabulaire.NoMatch Then
                    Ctrl.Caption = RsVocabulaire!traduction
                End If
            End If
            If TypeOf Ctrl Is ComboBox Then
                RsVocabulaire.Seek "=", Language, Ctrl.Text
                If Not RsVocabulaire.NoMatch Then
                    Ctrl.Text = RsVocabulaire!traduction
                End If
            End If
            If TypeOf Ctrl Is SSTab Then
                For x = 0 To Ctrl.Tabs - 1
                    RsVocabulaire.Seek "=", Language, Ctrl.TabCaption(x)
                    If Not RsVocabulaire.NoMatch Then
                        Ctrl.TabCaption(x) = RsVocabulaire!traduction
                    End If
                Next x
            End If
        Next Ctrl
    end sub

    merci beaucoup maintenant je cherche a savoir lequelle est le plus performant

Discussions similaires

  1. Ordre d'affichage des control dans une form
    Par bipcpp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/12/2009, 20h08
  2. [Listview]Ajout Name des controles d'une form dans une listview
    Par Roken62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/01/2009, 13h17
  3. [C#][2.0]Collections controls d'une form et niveau
    Par chnew dans le forum Windows Forms
    Réponses: 1
    Dernier message: 13/02/2006, 13h51
  4. [VB.net] Acces aux controles d'une form a partir d'une autre
    Par Fab62_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 12h47
  5. Type de redimensionnement d'une form
    Par Sub0 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 05/12/2003, 21h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo