Admin Fondateur
Nombre de messages : 197 Age : 40 Localisation : Tlemcen ( Algérie ) Date d'inscription : 04/12/2006
| Sujet: Comment aligner à droite le contenu d'un TControl (TEdit...) Jeu 18 Jan - 17:07 | |
| [url=#aligntext]Comment aligner à droite le contenu d'un TControl (TEdit...) ?[/url] L'astuce est d'utiliser la propriété BiDiMode du TControl (ancêtre des composants visibles). Ce mode bidirectionnel spécifie la direction de la lecture du texte. En localisant l'application on arrive à aligner le texte à droite. Dans l'événement OnCreate : - Code:
-
{Indique une localisation moyen-orientale } SysLocale.MiddleEast := True; {Exemple avec un TEdit } MyEdit.BiDiMode := bdRightToLeft; Ceci fonctionne avec la plupart des descendants du TControl : TEdit, TMaskEdit, TListBox... Dans le cas du TEdit il existe deux autres solutions : - Utiliser un TMemo ayant pour hauteur la hauteur d'un TEdit et sa propriété WantReturns à false - Créer un TEdit qui accepte l'alignement à droite : - Code:
-
type TMonEdit = class(TEdit) private FTextAlign: TAlignment; procedure SetTextAlign(Value: TAlignment); protected procedure CreateParams(var Params: TCreateParams); override; public constructor Create(AOwner: TComponent); override; published property TextAlignment: TAlignment read FTextAlign write SetTextAlign; end; implementation
constructor TMonEdit.Create(AOwner: TComponent); begin inherited; FTextAlign := taLeftJustify; end;
procedure TMonEdit.CreateParams(var Params: TCreateParams); const Alignments: array[TAlignment] of Word = (ES_LEFT, ES_RIGHT, ES_CENTER); begin inherited CreateParams(Params); Params.Style := Params.Style or Alignments[TextAlignment]; end;
procedure TMonEdit.SetTextAlign(Value: TAlignment); begin if FTextAlign <>Value then Begin FTextAlign := Value; RecreateWnd; End; end | |
|
data$hack
Nombre de messages : 4 Localisation : vbspiders Date d'inscription : 28/06/2010
| Sujet: Re: Comment aligner à droite le contenu d'un TControl (TEdit...) Lun 28 Juin - 18:03 | |
| | |
|