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

IHM Discussion :

Thèmes sur contrôles d'onglets [AC-2013]


Sujet :

IHM

  1. #1
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 965
    Points : 1 158
    Points
    1 158
    Par défaut Thèmes sur contrôles d'onglets
    Bonjour,

    Pour faire suite à cette conversation, et toujours dans le cadre de l'application d'un skin à une application Access, je souhaiterais maintenant appliquer un thème Access à mes contrôles d'onglets pour les rapprocher visuellement du skin choisi. Je n'ai pas trouvé ma réponse dans le tuto de loufab (ou mes yeux m'ont trahi )

    Nom : 2019-02-13_14h50_11.png
Affichages : 219
Taille : 57,3 Ko

    Je vous remercie par avance de vos réponses,

    Cordialement^

    Note: Je précise que je voudrais faire çà en VBA
    re-Note: J'ai ajouté un contrôle texte et un bouton à ce formulaire d'essai: lorsque je fais varier le thème, le bouton est également impacté par le jeu de couleurs (le ctl txt semble inchangé): je voudrais ne changer que les jeux de couleurs du contrôle onglets.

    Avant:
    Nom : thème origine.PNG
Affichages : 172
Taille : 7,4 Ko

    Après modification du thème:
    Nom : thème modifié.PNG
Affichages : 169
Taille : 8,5 Ko

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 965
    Points : 1 158
    Points
    1 158
    Par défaut Thèmes sur contrôles d'onglets
    Bonjour,

    Après quelques recherches, j'ai découvert que les thèmes s'appliquent à toute la base de données courante: çà ne m'arrange pas!

    Du coup je vais devoir agir sur l'onglet proprement dit:

    J'ai bien identifié les propriétés Forecolor, BackColor, mais il me manque la propriété VBA de la couleur sélectionnée par pointage, et celle de la couleur du corps de l'onglet (fond de l'onglet actif) et il me semble de surcroît que tout çà est conditionné à la propriété "Utiliser le thème".

    Nom : Onglet.png
Affichages : 167
Taille : 25,8 Ko

    A moins que tout çà ne passe par la création d'un thème ce qui ne m'arrange pas non plus

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Tu ne peux pas exclure le bouton de l'utilisation du thème actif ?
    J'ai vu qu'il y a une propriété "Utiliser thème" pour chaque objet.

    Cordialement.

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 965
    Points : 1 158
    Points
    1 158
    Par défaut Thèmes sur contrôles d'onglets
    Bonjour et merci de ta réponse ,

    En fait si je mets la propriété UseTheme à 0 (Utiliser le thème à Non), l'objet en question redevient gris (retour à un look préhistorique ) Pour le coup, je comprends qu'un seul thème peut être actif à la fois et que la propriété qui m'intéresse (couleur du fond) est unique dans ce thème.

    Je pressens qu'avec un thème perso, çà pourrait "marchouiller" mais çà resterait un bricolage au détriment de la couleur d'un autre item.

  5. #5
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 965
    Points : 1 158
    Points
    1 158
    Par défaut Thèmes sur contrôles d'onglets
    Bonjour à tous !!

    J'ai trouvé une solution que je mets ci-après pour ceux que çà intéresse.
    Une petite vidéo pour apprécier l'effet:


    Une table skins avec cette structure pour mémoriser l'emplacement des images:
    Nom : tblSkins.PNG
Affichages : 147
Taille : 6,3 Ko

    Et une procédure lancée sur événement load des formulaires ou sur update des paramètres:
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub ApplySkin()
        On Error Resume Next
        Dim leSkin As String, leChemin As String, leSkinPath, i As Integer, y As Integer, z As Integer, leForm As Form, leCont As Control, ssCont As Control
        Dim PressedC As Long, BackC As Long, HoverC As Long
        leSkin = Nz(DLookup("Chemin", "Chemins", "Fonction='Skin'"), "Default")
        If leSkin = "Default" Then
            PressedC = 12746034: BackC = 13998939: HoverC = 14528380
            Else
            PressedC = Nz(DLookup("SkiOngPressed", "Skins", "SkinName='" & leSkin & "'"), 12746034)
            BackC = Nz(DLookup("SkiOngBack", "Skins", "SkinName='" & leSkin & "'"), 13998939)
            HoverC = Nz(DLookup("SkiOngHover", "Skins", "SkinName='" & leSkin & "'"), 14528380)
        End If
        leChemin = CurrentProject.Path
        If leSkin = "Default" Then
            leSkinPath = leChemin & "\Img"
            Else
            leSkinPath = leChemin & "\" & Nz(DLookup("Skin", "Skins", "SkinName=" & Chr(34) & leSkin & Chr(34)), "")
        End If
        '''Menu principal
       If EstOuvert("Fond") Then
            Forms!Fond.Picture = leSkinPath & "\ImgMnu.jpg"
            If Forms!Fond!Search.Visible = -1 Then
                Forms!Fond!Search.Form.Picture = leSkinPath & "\Fond.png"
                Forms!Fond!ShadowBox.Picture = leSkinPath & "\ShadowBox.png"
            End If
        End If
        '''Paramètres
        If EstOuvert("Params") Then
            Forms!Params.Picture = leSkinPath & "\Sky.png"
        End If
        '''Autres formulaires
        For i = 0 To Forms.Count - 1
            Set leForm = Forms(i)
            If EstOuvert(Forms(i).Name) Then
                If Forms(i).Picture = "ImgMnu.jpg" Then Forms(i).Picture = leSkinPath & "\ImgMnu.jpg"
                If Forms(i).Picture = "Fond.Png" Or InStr(1, Forms(i).Picture, "\Fond.png") <> 0 Then Forms(i).Picture = leSkinPath & "\Fond.Png"
            End If
            For y = 0 To leForm.Controls.Count - 1
                Set leCont = leForm.Controls(y)
                If leCont.ControlType = acSubform Then
                    If Forms(leForm.Name)(leCont.Name).SourceObject <> "" Then
                        If Forms(leForm.Name)(leCont.Name).Form.Picture = "Fond.png" Then Forms(leForm.Name)(leCont.Name).Form.Picture = leSkinPath & "\Fond.png"
                    End If
                    For z = 0 To Forms(leForm.Name)(leCont.Name).Form.Controls.Count - 1
                        Set ssCont = Forms(leForm.Name)(leCont.Name).Form.Controls(z)
                        If ssCont.ControlType = acSubform Then
                            If Forms(leForm.Name)(leCont.Name).Form(ssCont.Name).Form.Picture = "Fond.png" Then Forms(leForm.Name)(leCont.Name).Form(ssCont.Name).Form.Picture = leSkinPath & "\Fond.png"
                        End If
                    Next z
                    Set ssCont = Nothing
                End If
                If leCont.ControlType = 123 Then
                    leCont.PressedColor = PressedC: leCont.BackColor = BackC: leCont.HoverColor = HoverC
                End If
            Next y
            Set leCont = Nothing
        Next i
        Set leForm = Nothing
    End Sub
    Le contrôle onglet doit utiliser le thème (UseTheme=-1) ainsi il peut être coloré sans qu'un changement de thème n'impacte la couleur des autres contrôles.

    Je reste à votre dispo pour plus de renseignements.

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

Discussions similaires

  1. BUG sur duplication d'onglet
    Par benoit.ad dans le forum Général VBA
    Réponses: 5
    Dernier message: 03/11/2006, 14h50
  2. Questions sur contrôle onglet
    Par valerie26 dans le forum IHM
    Réponses: 5
    Dernier message: 08/09/2006, 11h01
  3. [JTabbedPane] Action sur clik d'onglet
    Par Sirkiller dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 08/06/2006, 15h20
  4. [débutant]petit problème sur formulaire avec onglets
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 10h46
  5. [Export Excel] 3 exports sur un meme onglet
    Par Yves2507 dans le forum Access
    Réponses: 7
    Dernier message: 25/11/2005, 16h29

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