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 :

Position d'un TToolButton dans une TToolBar


Sujet :

C++Builder

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut Position d'un TToolButton dans une TToolBar
    Bonjour,

    Je souhaiterais avoir un controle total sur le positionnement d'un TToolButton inclu sur une TToolBar.

    Aprés de nombreuses recherches, une étude attentive du code source de ces deux composants, et une lecture sur la création de ToolBar sur msdn, je n'arrive pas à déterminer comment imposer un tel positionnement.

    J'ai beau modifier Left et Top, tout en retirant l'alignement, les bouttons se placent toujours là où ils veulent.

    Des tests sur des modifications de la méthode SetBounds n'ont rien donné...

    A ce jour, j'en déduis que cela n'est peut être pas possible, surtout que sur MSDN ils parlent bien de la possibilité de modifier la taille du boutton, mais rien sur un quelconque repositionnement.

    Je souhaiterais avoir votre avis sur la question, et pourquoi pas de nouvelles pistes de recherches.

    Merci d'avance,

    Cordialement,
    Benjamin

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Pour le positionnement gauche, tu peux peut-être ajouter des séparateurs (TToolButton style tbsSeparator) et jouer sur leurs largeurs ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Re,

    En fait, je veux vraiment un control total du positionnement du ToolButton.

    La piste du séparateur me semble être un peu de la bidouille que j'aimerai autant éviter. De plus je ne suis pas sûre de pouvoir influer sur le largeur d'un séparateur.

    Merci tout de même cette idée .

    Cordialement,
    Benjamin

    [Edit] En fait on peut modifier la largeur d'un séparateur, je viens de vérifier. Cette piste est donc tout de même un bon début! Merci. Et maintenant, comment réaliser des déplacements verticaux?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    As tu regardé du coté de la méthode CustomAlignPosition ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Re,
    Il me semble que CustomAlignPosition ne renvoie que la nouvelle position d'un composant lorsqu'il y a un alignement.
    Or dans mon cas, mes bouttons sont alNone...
    En fait je ne suis pas certain que l'alignement des TToolButton dans les TToolBar soit dû à la vcl. Je pense plutot que celui-ci est imposé par Windows. Peut-être existe-t-il un paramètre de construction qui me permetrai de désactiver cet alignement?
    Cordialement,
    Benjamin

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonsoir,
    Voilà, j'ai réussi à m'en sortir finalement, et je vous propose donc ma solution.
    Je me suis fait dans un premier temps une classe personnelle ToolBar, héritant de TPanel. Ainsi j'ai une souplesse totale quand au positionnement de mes ToolButtons.
    Le problème à ce niveau est que les TToolButton de la VCL sont complétement dépendant de TToolBar, je ne pouvais donc pas les utiliser directement.
    J'ai bien essayer dans un premier temps de creer mes propres ToolButtons en partant d'un TSpeedButton. Malheuresement en procédent ainsi, je n'avais plus de dropdown ou de séparateur.
    Finalement, j'ai créé une classe personnelle ToolButton, héritant aussi de TPanel. Dans cette classe, j'ai un objet TToolBar ayant pour parent le panel et un objet TToolButton ayant pour parent la ToolBar. Dans les événements de resize, je me suis arrangé pour que le panel et la toolbar englobe exactement mon boutton.
    Voilà, la méthode en elle même est un peu une bidouille. Mais au final j'ai un jeu de composant trés souple.
    Cordialement,
    Benjamin

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2007, 14h54
  2. position d'un élément dans une liste
    Par john491 dans le forum Général Python
    Réponses: 8
    Dernier message: 05/05/2006, 13h13
  3. Position de chaque ligne dans une table
    Par steelidol dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/02/2006, 14h34
  4. Position d'un enregistrement dans une table ou requête Query
    Par polinevol dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/01/2006, 03h53
  5. Position d'un enregistrement dans une table
    Par polinevol dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/01/2006, 09h10

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