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 :

utilisation d'un Tab strip sous VB6


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut utilisation d'un Tab strip sous VB6
    bonjour à tous,

    j'utilise la référence MSCOMCTL.OCX pour pourvoir accéder au système des onglets (à savoir les tab strips)

    Cependant, je ne comprends pas vraiment leurs utilisations... en effet, je voudrais :

    1) premièrement : pouvoir allouer un espace graphique à chaque onglet (afin de mettre des autres éléments tels que des boutons, des textbox... mais que ces onglets appartiennent à la même feuille)

    2) deuxièmement : savoir comment faire référence dans le code, à un élément (par ex un bouton) distinctement d'un autre au sein d'onglets différents mais appartenant à la même feuille.


    Vous remerciant par avance,

    jfdmagic

  2. #2
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Par défaut
    Si tu veux utiliser la référence MSCOMCTL.OCX, tu va devoir créer une frame différente pour chaque onglet. Ces frames doivent êtres de même taille et seront suprposées. A chaque click sur le tab, il faudra déterminer l'index du tab et rendre visible la frame avec le même index et invisible toutes les autres.

    Moi, je prefère utiliser le composant TABCTL32.ocx, Microsoft tabbed Dialog control 6.0 (SP3). Il demande moins de code pour gérer les clicks.
    En ce qui concerne les boutons dans les onglets, si ils ont un nom différents tu n'auras aucun problème.

  3. #3
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    je vais voir ce que cela donne.

    je te tiens au courant.

    merci de tes conseils.

  4. #4
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    Quelle fonction ou procédure, utilises-tu pour associer un frame à une valeur d'index du tab strip ?

    ceci de façon à ce que lorsque tu cliques sur l'onglet, le frame que tu lui a associé s'affiche.

    merci d'avance

  5. #5
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Par défaut
    Crée d'abord une frame dont le nom est frame1, ensuite une deuxième que tu renommes aussi frame1. Tu vas recevoir un messagequi te demande si tu veux créer un "controlarray", reponds OUI.
    Pour gérer le click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub TabStrip1_Click()
    'x = nombre total de frame
    'DEBUT CODE Faux
    'For i = 0 To x - 1
    '    Frame1(i).Visible = (TabStrip1.TabIndex = i)
    'next i
    'FIN CODE Faux
     
    For i = 1 To TabStrip1.Tabs.Count
        Frame1(i - 1).Visible = TabStrip1.Tabs(i).Selected
    Next i
    End Sub

  6. #6
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    merci de ton aide.

    sinon, on peut faire cela à la place d'un contrôle array : ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub TabStrip1_Click
    If TabStrip1.SelectedItem.Index=1 Then
    Frame1.Visible= True
    Frame2.Visible= False
    End If
    If TabStrip1.SelectedItem.Index=2 then
    Frame1.Visible=False
    Frame2.Visible=True
    End If
     
    'etc...'
    Problème Resolu

  7. #7
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    j'ai voulu faire une fenêtre avec 3 onglets et donc 3 frames mais ça ne marche pas alors que cela fonctionne avec 2 :

    dans un private sub click

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
    'avec un select case'
     
    Select Case tspPrincipal.SelectedItem.Index
           Case 1
                frame1.Visible = True
                frame2.Visible = False
                frame3.Visible = False
            Case 2
                frame1.Visible = False
                frame2.Visible = True
                frame3.Visible = False
            Case 3
                frame1.Visible = False
                frame2.Visible = False
                frame3.Visible = True
        End Select
     
    ----------------------------------------------------------
     
    'avec des boucles if then'
     
        If tspPrincipal.SelectedItem.Index = 1 Then
            frame1.Visible = True
            frame2.Visible = False
            frame3.Visible = False
        End If
        If tspPrincipal.SelectedItem.Index = 2 Then
            frame1.Visible = False
            frame2.Visible = True
            frame3.Visible = False
        End If
        If tspPrincipal.SelectedItem.Index = 3 Then
            frame1.Visible = False
            frame2.Visible = False
            frame3.Visible = True
        End If
    je ne peux afficher que les 2 premiers frames correspondants respectivement aux deux premiers onglets Pas moyen d'afficher le troisième alors qu'il est bien associé au troisième onglet.

    j'ai vérifié les noms des frames et ils sont bien corrects (de toute façon, s'il y avait un de faux, VB6 m' aurait signalé que l'objet n'existe pas)

    Savez-vous pour quelle raison ?

    merci de votre aide.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    bonjour,

    (ouverture de parenthèse...
    n'ayant pas été à l'aise avec TabStrip, je me suis orienté vers l'utilisation de SSTab (composant Microsoft Tabbed Dialog Control - tabctl32.ocx) qui est plus visuel et permet d'accéder aux différents onglets pendant la conception de l'interface de façon plus simple.
    de plus, chaque onglet a ses propres contrôles donc plus besoin de code pour rendre visible tel ou tel contrôle.
    ...fermeture de parenthèse)

    cdlt,

  9. #9
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    dans l'interface de conception, ton contrôle tspPrincipal affiche t-il les 3 onglets ou seulement 2?

  10. #10
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    il m'affiche bien 3 onglets... c'est à ne rien comprendre...

  11. #11
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    en mettant cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub tspPrincipal_Click()
        MsgBox tspPrincipal.SelectedItem.Index & "/" & tspPrincipal.Tabs.Count
    End Sub
    as-tu le message "3/3" en cliquant sur ton 3e onglet?

  12. #12
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    Citation Envoyé par littledoudou Voir le message
    en mettant cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub tspPrincipal_Click()
        MsgBox tspPrincipal.SelectedItem.Index & "/" & tspPrincipal.Tabs.Count
    End Sub
    as-tu le message "3/3" en cliquant sur ton 3e onglet?
    oui, j'ai bien la réponse 3/3... mais mon frame ne s'affiche toujours pas...

  13. #13
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Par défaut
    les index du SsTab commence à 0

    par contre, avec un SsTab, je ne comprends pas pourquoi tu continu avec des frame !!!

  14. #14
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    vérifie alors si tes contrôles frame sont en avant plan par rapport à ton contrôle tabstrip.
    j'ai fait un essai dans lequel le frame3 était en arrière plan (donc caché sous le tabstrip) et dans ce cas il n'est jamais visible à l'écran.

  15. #15
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    moi, j'utilise un tabStrip et des frames... mon index commence bien à 1 et non à 0

  16. #16
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    Citation Envoyé par littledoudou Voir le message
    vérifie alors si tes contrôles frame sont en avant plan par rapport à ton contrôle tabstrip.
    j'ai fait un essai dans lequel le frame3 était en arrière plan (donc caché sous le tabstrip) et dans ce cas il n'est jamais visible à l'écran.
    je n'y crois pas : c'était bien ça... et ça fait une 1/2 journée que je cherche !!!

    Comment j'ai pu passer à côté...?

    Merci de ton aide : tu m'enlèves une épine du pied !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/01/2011, 21h58
  2. [Debutant] Liste Des Commandes Basiques Les Plus Utilisées Sous VB6
    Par akatsuki1905 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/10/2008, 21h23
  3. Utilisation DLL créée sous VB6
    Par Dertron dans le forum Access
    Réponses: 12
    Dernier message: 05/04/2006, 14h54
  4. Utilisation externe d'une Dll créée sous VB6
    Par Dertron dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/04/2006, 21h19
  5. Utiliser Borland C++ avec Emacs sous Windows
    Par Eikichi dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/03/2003, 08h40

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