Texte dans le bouton

Signaler
Messages postés
53
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
9 novembre 2007
-
cincap
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
-
Bonjour,

J'utilise la propriété Caption de mon TButton pour afficher le texte que je souhaite sur ce bouton. Le problème auquel je suis confrontée est que mon texte est toujours centré dans le bouton, alors que j'aimerais le câler à gauche (pour des raisons esthétiques, mon bouton est plus large que mon texte mais mon texte doit être câlé à gauche).

Comment dois-je faire et surtout est-ce possible avec Delphi ?

Merci pour vos réponses.

Delphine

7 réponses

Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
Bonjour à tous,

@ gabiset, Tu utilises un BitBtn, tu traficottes l'image pour rajouter ce dont tu as besoin:

- Tu prends ton image de base
- Tu l'ouvre avec un logiciel style Paint
- Tu rajoutes ton "caption" à la main (zone de texte)
- Tu enregistres le tout
- Tu mets cette image sur ton bouton.

Dans la propriété Glyph, tu charge l'image en question.
Ensuite, pour le placement du caption, il faut jouer avec la propriété Layout (à mettre à "blGlyphLeft" dans ton cas).

@+,

Cincap

[url]mailto:/url
Messages postés
53
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
9 novembre 2007
1
Merci pour ta réponse.
Je viens de le faire, c'est super ça marche !

Delphine
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
Re bonjour à tous,

@ gabiset, voici une autre approche plus facile avec un Tbutton, à placer dans le onpaint :

procedure TForm1.FormPaint(Sender: TObject);
var
    i:integer;
begin
    i:=GetWindowLong(Button1.Handle,GWL_STYLE);
    SetWindowLong(Button1.Handle,GWL_STYLE,i or BS_MULTILINE or
BS_LEFT
    or BS_VCENTER);
    Button1.Caption:='Test à gauche';



end;

Avec ce même code tu peus aussi écrire sur deux lignes :

Button1.Caption:='Test à gauche'#13'seconde ligne';

@+,

Cincap

[url]mailto:/url
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
salut,

une solution (boiteusse) si tu veux juste pousser un peu ton text a gauche: ajout des espaces à droite.

bon code,

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
Bonjour à tous,

@ Loda, désolé c'est plutôt ta solution qui est boiteuse, car tu es limité dans le nombre d'espaces et si tu as plusieurs Tbutton cela complique.

La dernière solution me semble justifiée et permet de fixer le texte réellement à gauche comme au milieu comme à droite et même sur deux lignes.

Juste une petite correction, il peut se mettre aussi dans le oncreate, onactivate de la fiche.

@+,

Cincap

[url]mailto:/url
Messages postés
53
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
9 novembre 2007
1
Merci à vous deux pour ces solutions !


La solution de Loda est efficace si on n'a qu'un seul bouton (c'est nue bonne astuce), mais je préfère effectivement la dernière proposée par Cincap.

@+

Delphine
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
Bonjour à tous,

@ gabiset, n'oublies pas de rajouter à la fin du code le refresh.

soit Button1.Refresh;

@+,

Cincap

[url]mailto:/url