Contributor: BOB SWART Hi Jon & Aimee Robertson, > I'm trying to find a TEdit component which contains an > alignment property. The alignment during editing isn't > important, but the alignment of the text when the > control does not have focus is important. > > I've searched every Delphi site I can find. Does any one > know of such a component? If so, where can I find it? OK, so I need to make my components more visible on my site, thanks for the hint...In the meantime, here's my TBRightEdit component (you need to write your register procedure yourself, as this is in a separate unit for a design time package ;-) unit DrBobRED; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Menus, Dialogs, StdCtrls; Type TBRightEdit = class(TCustomMemo) private { Private declarations } FOnMaxLength: TNotifyEvent; protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override; procedure KeyDown(var Key: Word; Shift: TShiftState); override; procedure KeyPress(var Key: Char); override; procedure Change; override; { dynamic; } published { Published declarations } { property AutoSelect; } { property AutoSize; } property BorderStyle; property CharCase; property Color; property Ctl3D; property Cursor; property DragCursor; property DragMode; property Enabled; property Font; property Height; property HelpContext; property HideSelection; property Hint; property Left; property MaxLength; property Name; property OEMConvert; property ParentColor; property ParentCtl3D; property ParentFont; property ParentShowHint; { property PasswordChar; } property PopupMenu; property ReadOnly; property ShowHint; property TabOrder; property Tag; property Text; property Top; property Visible; property Width; property OnChange; property OnClick; property OnDblClick; property OnDragDrop; property OnDragOver; property OnEndDrag; property OnEnter; property OnExit; property OnKeyDown; property OnKeyPress; property OnKeyUp; property OnMouseDown; property OnMouseMove; property OnMouseUp; property OnMaxLength: TNotifyEvent read FOnMaxLength write FOnMaxLength; end; implementation constructor TBRightEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); Align := alNone; Alignment := taRightJustify; ScrollBars := ssNone; WantReturns := False; WantTabs := False; WordWrap := False; OnMaxLength := nil; end; procedure TBRightEdit.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); begin if AHeight > (2 * abs(Font.Height)) then AHeight := 2 * abs(Font.Height); inherited SetBounds(ALeft, ATop, AWidth, AHeight); end; procedure TBRightEdit.KeyDown(var Key: Word; Shift: TShiftState); { prevent Ctrl+Enter as well } begin if Key in [10, 13] then Key := 0 else inherited KeyDown(Key, Shift) end; procedure TBRightEdit.KeyPress(var Key: Char); { prevent Ctrl+Enter as well } begin if Key in [#10, #13] then Key := #0 else inherited KeyPress(Key) end; procedure TBRightEdit.Change; { prevent Ctrl+Enter as well } var MyText: String; CrPos: integer; begin MyText := Text; CrPos := Pos(#13, MyText); if CrPos > 0 then Text := Copy(MyText, 1, CrPos-1) else inherited Change; { now check for max length... } if (MaxLength > 0) and (Length(Text) >= MaxLength) then if Assigned(FOnMaxLength) then FOnMaxLength(Self) end; end. > Jon Robertson Groetjes, Bob Swart (aka Dr.Bob - www.drbob42.com) -- drs. Robert E. (Bob) Swart, Knowledge Engineer Specialist, Bolesian P.O. Box 799, 5702 NP HELMOND, THE NETHERLANDS. fax: +31-492-533985 E-mail: bob@bolesian.nl (work), drbob@pi.net (home) & [100434,2072]