[Back to DELPHI SWAG index]  [Back to Main SWAG index]  [Original]


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... <grin>

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]

[Back to DELPHI SWAG index]  [Back to Main SWAG index]  [Original]