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

 Delphi Discussion :

Avec Tbutton régler le caption à gauche ou à droite D6 Win11


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 584
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 584
    Par défaut Avec Tbutton régler le caption à gauche ou à droite D6 Win11
    Bonjour à toutes et à tous,

    Existe t'il une astuce simple pour régler le texte a gauche pour le caption d'un Tbutton ?

    Si je n'utilise pas de skin (Vclskin) il y a moyen mais avec le skin non.

    Merci si il existe une solution.

    @+,

    cincap

  2. #2
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 473
    Par défaut
    Bonjour cincap,

    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
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Style: LongInt;
    begin
      // BS_LEFT
      Style := GetWindowLong(Button1.Handle, GWL_STYLE);
      SetWindowLong(Button1.Handle, GWL_STYLE, Style or BS_LEFT);
      SendMessage(Button1.Handle, BM_SETSTYLE, BS_LEFT, MAKELPARAM(1, 0));
      InvalidateRect(Button1.Handle, nil, True);
     
      // BS_RIGHT
      Style := GetWindowLong(Button2.Handle, GWL_STYLE);
      SetWindowLong(Button2.Handle, GWL_STYLE, Style or BS_RIGHT);
      SendMessage(Button2.Handle, BM_SETSTYLE, BS_RIGHT, MAKELPARAM(1, 0));
      InvalidateRect(Button2.Handle, nil, True);
    end;
    Nom : Capture d'écran 2025-08-04 052338.png
Affichages : 63
Taille : 8,9 Ko
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.
    Ce n’est pas un bogue - c’est une fonctionnalité non documentée.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 584
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 584
    Par défaut
    Bonjour à toutes et à tous,

    @ XeGregory, merci de ta réponse, je connaissais ce code que j'avais testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var
      defstyle: dWord;
    begin
    defstyle := GetWindowLong(Brefresh.Handle, GWL_STYLE);
      SetWindowLong(Brefresh.Handle, GWL_STYLE, defstyle or BS_LEFT);
    Mais j'avais cité :

    Si je n'utilise pas de skin (Vclskin) il y a moyen mais avec le skin non.
    C'est donc le même résultat avec ta solution.

    Le seul moyen que j'ai testé et qui est non conventionnel c'est de placer des espaces après le texte pour le caption à gauche et avant le texte pour le caption à droite (voir photo).

    Merci à tous je vais fermer ce topic car étant donné que Skin veut dire peau je pense que son utilisation contredit le code.

    @+,

    cincap
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    Salut

    A priori pour les vclSkin c'est une methode Drawcontrol qu'il faut redefinir
    il faut faire un "hack" de ton button
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag :resolu:

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 584
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 584
    Par défaut
    @ anapurna, merci de ton retour d'information, mais je dois te l'avouer je ne me sent pas capable de le faire.

    Je vais me contenter de ma solution simpliste surtout que ce n'est que pour cette application.

    Bonne journée à toutes et à tous,

    @+,

    cincap

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    j'ai pas bien compris ton probleme
    tu veux deplacer l'ecriture (le caption du boutton) selon
    que tu le met a gauche ou a droite ?

    pour reduire la zone de travail tu as la procedure inflateRect
    pour ecrire le texte a doite ou a gauche tu as DrawText ou TextOut au choix
    apres mettre un image sur un tbutton alors qu'il existe deja un TBitBtn je vois pas trop l'interet
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag :resolu:

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/02/2015, 15h59
  2. Réponses: 9
    Dernier message: 07/07/2010, 11h25
  3. Onglets avec transition de gauche à droite-jQuery
    Par rambc dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/05/2009, 11h45
  4. Réponses: 9
    Dernier message: 21/02/2007, 18h10
  5. [CR] lire les données de gauche a droite
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 14/10/2004, 18h23

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