Author: Mike Shkolnik
How can I change the alignment for my TEdit?
Answer:
Sometimes you need change the text alignment in standard TEdit component. For some
reason the developers in Microsoft decided, that for data editing in single line we
do not need to change alignment and haven't provided such possibility:(
But sometimes I need it! For example, I like view a numbers with right alignment...
If you need it too then this delphi tip for you:
1 type2 TEditAlignment = class(TCustomEdit)
3 protected4 { Protected declarations }5 procedure CreateParams(var Params: TCreateParams); override;
6 end;
7 8 procedure TEditAlignment.CreateParams(var Params: TCreateParams);
9 const10 Alignments: array[TAlignment] of Longint =
11 (ES_LEFT, ES_RIGHT, ES_CENTER);
12 begin13 inherited CreateParams(Params);
14 15 Params.Style := Params.Style or ES_MULTILINE or16 Alignments[FAlignment];
17 end;
In Windows 98 you can set a Params.Style without ES_MULTILINE flag and it too will
work.
Also after such edit control can't correctly work with PasswordChar <> #0 (but I
think for password input it's not necessary to change alignment).
PS: remark, that after that your TEdit is not "real" edit control - now is a
control like "memo" but single line... Of course, you can use a standard TMemo
component with height equal to one line.
Component Download: http://www.geocities.com/mshkolnik/download/edittype.zip