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

C++Builder Discussion :

TToolBar en forme de "L"


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Points : 93
    Points
    93
    Par défaut TToolBar en forme de "L"
    Bonjour,

    je cherche à savoir si il est possible de créer un ToolBar en forme de "L".
    Je m'explique : j'ai besoin d'une barre d'icone en haut de mon appli ainsi
    que sur le coté gauche.

    Pour le moment, j'avais 2 Toolbars, avec des bords sans relief. Il n'y avait
    donc aucune démarquation entre les deux. Mais aujourd'hui, j'ai besoin d'avoir
    des Toolbars en relief et j'ai donc une séparation visible entre les 2 toolbars.

    Ma question : est-il possible de faire cela avec une seule et unique toolbar ?

    Merci d'avance

    Xav

    PS : cela n'a pas l'air très clair J'espre que vous comprenez ma question

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Points : 334
    Points
    334
    Par défaut
    Franchement non. Les contrôles Windows sont des rectangles sinon ce serait délicat d'agencer les fenêtres.

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    Juste une idée en passant, mais sans pouvoir tester : Peut être peut tu dessinner toi même les contours en relief de tes TToolBars en utilisant DrawEdge(...) (issue des API).
    Comme cela on devrait pouvoir indiquer les coordonnées de la région a mettre en relief, avec le second paramètre de la fonction ( LPRECT qrc, // pointer to rectangle coordinates ).

    En espérant t'aider,
    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    (re)Bonjour,

    j'ai fait un petit test avec cette idée, qui donne effectivement un effet de relief sur une partie seulement du TToolBar visé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm2::ToolBar1AdvancedCustomDraw(TToolBar *Sender,
    	  const TRect &ARect, TCustomDrawStage Stage, bool &DefaultDraw)
    {
    RECT arect;
    arect.left = ARect.Width()/2;
    arect.top = ARect.top;
    arect.right = ARect.right;
    arect.bottom = ARect.bottom;
    DrawEdge(ToolBar1->Canvas->Handle, &arect, BDR_RAISEDOUTER, BF_BOTTOMRIGHT);
    }
    Reste a ajuster les coordonnées a passer a DrawEdge pour les deux TToolBar afin de faire l'effet désiré.

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Points : 93
    Points
    93
    Par défaut
    Merci Sunchaser pour ce bout de code
    Je vais tester cela au plus vite et je te tiens au courant

    @+

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Points : 93
    Points
    93
    Par défaut
    Excellent, c'est exactement ce que je voulais faire
    Un grand merci à toi Sunchaser !

    @+

    Xav

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

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