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 :

Couleur et onglet dans le Tab Control Page [À faire]


Sujet :

IHM

  1. #1
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut Couleur et onglet dans le Tab Control Page
    Bonjour,

    Ayant fait de nombreuses recherche sur le MSDN, Internet et autres je n'ai actuellement toujours pas trouvé de solution au problème suivant :

    Comment modifier la couleur de la zone des boutons (ou onglets) des Contrôle Page ?
    La couleur pour chaque page, ainsi que celle du fond ok !
    Par contre la zone ou sont situés les onglets de pages reste grise... c'est moche.

    Merci.

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    il n'y a pas de propriété prévue à cet usage ...

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Je m'en suis rendu compte, mais je pensais plutot à une soluce via API.
    un setBKcolor() par exemple.

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Salut,

    Une solution est proposée ici utilisant l'api windows
    http://officesystem.access.free.fr/coltabctltabs.htm

    si tu testes nous tous serions intéressés par ton retour d'expérience

    au passage on se demande pourquoi microsoft ne propose tjs cette option en natif dans access

    @+

  5. #5
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    moi, je fais un truc rigolo, parce qu'il permet toutes les fantaisies ...
    Je mets le style de l'onglet sur 'Aucun'
    Ainsi, on ne les vois plus.... ce qui élimine le problème.
    Ensuite, il ne me reste plus qu'à faire mes propres boutons, et c'est là que cela devient génial !
    Tu peux utiliser des trucs standards du genre un groupe d'option avec boutons bascule... mais tu peux aussi mettre des images JPEG de petite taille, avec un pilotage en VBA derrière qui détermine l'image 'survolée', l'image 'enfoncée', et l'image 'relevée'

    Après, c'est plus qu'une question d'imagination.
    Et on a évité l'utilisation des APIS

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Retour sur le test ColorTabs
    de Mr Raymond SENEQUE (MVP) sur un code de Stephan LEBANS (MVP).
    Disponible sur http://access.vba.free.fr

    Description :
    Permet de personnaliser onglets et pages d'un controle Tab (page).

    Type de personnalisation :
    - Coloration des onglets et pages par le placage de contrôles boites colorés.
    - Rotation du texte des onglets par API.

    Niveau :
    Spécialiste du voodou, expert en boule de chrystal...

    Description du mdb :
    Il contient un formulaire de controle qui permet de piloter les modifications en temps réel, c'est assez réussi !!
    Il y a 2 formulaire Exemple Formulaire 1 et 2 ainsi que 2 tables contenant les paramètres de personnalisation.
    Il y a un module de classe et 2 modules classiques. Tout ce qu'on peut dire c'est que le commentaires du code est plus que succint limite inexistant.

    Procédure de test :
    Premier test, je lance le mdb (c'est une version 200x !) c'est bien, tout fonctionne parfaitement avec les formulaires exemples livrés dans l'appli (Formulaire1 et 2).

    Avant de se lancer directement dans de grosses modifications j'ai voulu voir les modifications à effectuer sur un formulaire simple, j'ai donc importé le formulaire "A propos..." d'une de mes applications qui contient 2 onglets.

    Sans documentation ni commentaires dans le code ce n'est pas gagné... on a rien sans rien et comme je ne cesse de le répéter "Access ne nous rend que ce qu'on lui donne".

    Modification à opérer :
    Créer un objet boite dans le formulaire importé (que l'on va nommer Frm_AP pour plus de lisibilité, un peu faignant louFab !!!) Cette boite sera nommée Boite1.

    Ouvrir les 2 tables et créer les lignes necessaires au fonctionnement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    873	A Propos	CtlTab30	Page		0	16711935
    874	A Propos	CtlTab30	Page		1	32896
    875	A Propos	CtlTab30	BackBox			Boîte1
    876	A Propos	CtlTab30	ForeColor		                      16777215
    877	A Propos	CtlTab30	Rotate			90
    878	A Propos	CtlTab30	TabFixedHeight		1021
    879	A Propos	CtlTab30	TabFixedWidth		454
    Bon je vous rassure j'ai juste fait une copie des lignes existantes pour les autres formulaire (1 et 2) et j'ai extrapolé à frm_AP. Le nom du controle Tab (CtlTab30 au lieu de 0)

    Comme je n'ai que 2 onglets j'ai gardé la page 0 et 1.

    Je lance le formulaire de configuration...
    super ! il m'affiche le nom de mon formulaire dans la première zone liste, dans la 2me voici le nom de mon controle (ctlTab30)... Mince une erreur 2465 ! Apparement il ne reconnait pas la boite de couleur (boîte1) ?! En effet celle-ci n'apparait pas dans la textebox.

    Ayant parcouru le code je décide de l'affecter directement dans la fenêtre debug.
    Je fais ma sélection dans la zone liste 3 je vois le nom de mes onglets, je fais la sélection, ça marche.

    Ensuite je fais une sélection de couleur.

    Bizarre... il m'affiche un gros pavé de la couleur choisi mais plus aucun controles des pages, les voilà masqués !

    Vu les problèmes d'intégration, ne vaut-il pas mieux partir d'un des formulaires existant et de le modifier ? 8)

    Plus facile à réaliser ; c'est fait en moins de 5 minutes, je teste effectivement là il n'y a plus l'erreur par contre pas de contrôle visible dans mes pages d'onglet. Même problème !!

    Conclusion :
    Si la coloration des onglets et la rotation du texte apportent quelques choses, vu le temps passé à la mise en oeuvre, cela s'adresse surtout à des utilisateurs ayant atteint les limites de lisibilité des onglets.

    L'utilisation des onglet multiligne étant de loin préférable. (économie de temps et de temps machine)

    Concernant la coloration de la page je n'ai toujours pas compris son intêret vu que le pavé coloré cache les contrôles.

    Mon avis :
    Une belle performance technique mais un peu inutile à mon sens. Je vais me pencher sur la solution de Maxence (onglets cachés et imagette à la place). Mon but premier étant de pouvoir colorer le reliquat de "matière
    grise" à droite des onglets qui oblige à avoir un fond de formulaire gris.

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    J'ai justement testé aussi et m'en remet à Maxence face à l'usine à gaz que représente l'utilisation des Api dans ce cas. ça me parait peu viable et surtout terriblement complexe à manipuler sans la doc qui n'est pas fournit

  8. #8
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par Maxence HUBICHE
    mais tu peux aussi mettre des images JPEG de petite taille, avec un pilotage en VBA derrière qui détermine l'image 'survolée', l'image 'enfoncée', et l'image 'relevée'
    Salut Maxence,

    Ta solution pour les onglets me plaît bien et j'ai une question sur comment gères-tu l'image survolée qui ne l'est plus ?
    Je n'ai pas trouvé d'évènement qui serait le pendant du MouseMove et qui correspondrait à la sortie de la souris du survol de l'image afin de la remettre à l'état initial

    et pour maintenir l'ensemble des boutons visuellement cohérent (un seul survolé en même tps, un seul enfoncé ...) tu as une technique particulière ? utilisation d'une nomenclature particulière permettant de faire une itération ou autre ? parce qu'avec une dizaine de bouton ou plus ça peut facilement devenir lourd ...

    Bon moi je vais au lit, les idées sont plus très claires

    Cordialement,

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Ca m'interesse bien ce petit topic . Si on pouvait y rassembler un peu tous les trucs concernant les boites d'onglet, ça pourrait faire une bonne base pour un petit article dédié dans le site !

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Citation Envoyé par vmolines
    Ca m'interesse bien ce petit topic . Si on pouvait y rassembler un peu tous les trucs concernant les boites d'onglet, ça pourrait faire une bonne base pour un petit article dédié dans le site !
    Que oui quelle est bonne l'idée !

    Je vous en envoi une petite :

    Comment créer un onglet Quitter, en effet quand on clique sur un onglet la page s'affiche et c'est donc voici le petit bout de code correspondant à placer sur l'évènement Sur Changement du controle TabPage (onglet):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CtlTab0_Change()
     ' quitter
     If Me.CtlTab0.Pages.Item(Me.CtlTab0).Caption = "Quitter" Then
        If MsgBox("Etes-vous sur(e) de vouloir quitter DVDtek ?", vbYesNo + _
          vbDefaultButton1, "info") = vbYes Then
     
           DoCmd.Quit
        Else
           Me.PageDVD.SetFocus
        End If
     End If
    Vous aurez tous remarqué que mon controle Tab se nomme CtlTab0.
    Je fait un test sur la valeur de l'étiquette (on s'y perd moins).
    Donc si la valeur de l'étiquette de l'onglet sélectionné est "Quitter"
    J'affiche une demande de confirmation.
    Si Oui je quitte.
    Sinon je renvoi le focus sur une autre page.
    Pratique et ça a de la gueule.

    Bon ça casse pas des briques mais à partir de là on peut faire tout plein de truc.

    à+
    Cette application est dispo sur mon site. (faudrait que je pense à mettre la dernière version car celle-ci date vraiment)

  11. #11
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Salut Maxence,

    Si tu passes par là nous sommes à ton écoute

  12. #12
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par Nohant
    Je n'ai pas trouvé d'évènement qui serait le pendant du MouseMove et qui correspondrait à la sortie de la souris du survol de l'image afin de la remettre à l'état initial
    ce qui permettrait également de changer l'aspect du pointeur de souris lors du survol de l'image et de le réinitialiser lorsque ce n'est plus le cas

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Citation Envoyé par Nohant
    Citation Envoyé par Nohant
    Je n'ai pas trouvé d'évènement qui serait le pendant du MouseMove et qui correspondrait à la sortie de la souris du survol de l'image afin de la remettre à l'état initial
    ce qui permettrait également de changer l'aspect du pointeur de souris lors du survol de l'image et de le réinitialiser lorsque ce n'est plus le cas
    Bonsoir,

    J'ai fait quelques tests avec le MouseMove en relation avec zone texte qui affiche les coordonnées de la souris. Evenement que je n'avais jamais utilisé.
    J'ai constaté que les coordonnées évolues lorsque l'on est dans la zone du controle contenant l'évenement. Lorsque l'on en sort tout s'arrête le relais est pris par la zone extérieure au controle.

    La souris se déplace sur une image = les coordonnées évolues dans la surface de l'image.
    La souris sort de la surface de l'image et rentre dans la surface du Détails formulaire = les coordonnées évoluent dans la surface de Détails formulaire.

    Pour faire savoir si la souris est sortie de l'image il suffit d'intéroger l'évenement MouseMove du Détails.

    Par contre : Ayant fait mumuse avec des images exterieure j'avais fait de douloureux constat que quand on modifie la propriété Picture (indique l'origine de l'image) trop vite Access à la facheuse habitude de se vautrer lamentablement (la base se ferme purement et simplement) et ce depuis la Access 97 avec Windows 9x, NT 4, W2K et XP.
    XP à l'air d'accentuer le problème.

    Je vais poser un tread là dessus.

  14. #14
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Attention aussi avec le mouse move que si tu te déplaces trop vite, l'évenement n'est pas lévé.

    Ainsi, tu va survolé l'image, elle passe en enfoncé, si tu va trés rapidemment sur l'entête du formulaire, l'evenement mouse_move du détails n'est pas levé, ton image reste donc enfoncé

    Cela implique à mettre des petits bout de code dans tous les évenements mouse_move pour être sûr de le lever à un moment ou un autre. Encore que si tu sors rapidement de la fenêtre de l'application, aucun mouse move ne sera lancé

  15. #15
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par vmolines
    Ca m'interesse bien ce petit topic . Si on pouvait y rassembler un peu tous les trucs concernant les boites d'onglet, ça pourrait faire une bonne base pour un petit article dédié dans le site !
    Alors initiateur de bonnes idées, on attends tes codes

  16. #16
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Je pense que Maxence, contrairement à Raymond, n'est pas un magicien, donc qu'il va humblement vous propser un truc comme :
    http://access.developpez.com/faq/?pa...cesForm#BtnInv

    Mais je ne suis pas son porte parole et il s'est peut-être mis au vaudou depuis...

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/05/2009, 10h23
  2. les onglets d'un tab control
    Par solitude dans le forum C#
    Réponses: 1
    Dernier message: 01/08/2007, 17h51
  3. Réponses: 3
    Dernier message: 07/07/2007, 10h35
  4. Comment insérer des onglets dans les pages ASP.NET ?
    Par insane_80 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/02/2007, 16h32
  5. Ajouter un contrôl dans Tab control
    Par riadhz dans le forum MFC
    Réponses: 6
    Dernier message: 25/09/2006, 12h37

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