我想编一个控件,继承自Tedit控件,所做的唯一改变就是,增加一个新属性RowText,
需要满足的条件是:
     RowText是string型,而且它的值随着edit.text值的改变而改变,也就是说它的值与edit.text的值同步,我编写了如下的代码,可是好象程序进入死循环,最后总是益出,请指教!谢谢!
unit TextEdit;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type
  TTextEdit = class(TCustomMemo)
  private
    { Private declarations }
    FRawText  : string;
    FText     : string;
    Flabel    : Tlabel;
    Fuseable  : Boolean;
    procedure Setuseable(AA: Boolean);
    procedure Setlabel(Lb: Tlabel);
    function  GetRawText: String;
    Procedure SetRawText(BB: string);
    function  GetText: String;
    Procedure SetText(CC: string);
  protected  public
    constructor Create(AOwner: TComponent); override;
    property  RawText:string Read GetRawText write SetRawText;
  published
    { Published declarations }
     property Alignment default taLeftJustify;
     property BorderStyle;
     property CharCase;
     property Color;
     property Ctl3D;
     property Font;
     property visible;
     property Text:string read GetText write SetText;
     property MaxLength;
     property PasswordChar;
     property HideSelection;
     property ImeMode;
     property ImeName;
     property ShowHint;
     property TabOrder;
     property TabStop;
     property Title :Tlabel read Flabel write Setlabel;
     property Useable: Boolean read Fuseable write Setuseable;
     property ReadOnly;     property OnChange;
     property OnClick;
     property OnDblClick;
     property OnEnter;
     property OnExit;
     property OnKeyDown;
     property OnKeyPress;
     property OnKeyUp;
     property OnMouseDown;
     property OnMouseMove;
     property OnMouseUp;
  end;procedure Register;implementation
constructor TTextEdit.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Height := 22; Width := 121;
  WordWrap := False; WantReturns := False;
  Useable := True;
end;
procedure TTextEdit.Setlabel(Lb: Tlabel);
begin
  if Flabel<>Lb then
  Flabel:=Lb;
end;procedure TTextEdit.SetRawText(BB: string);
begin
   if Text<>BB then
   Text:=BB;
end;function TTextEdit.GetRawText:string;
begin
   if FRawText<>text then
      result:=text;
end;procedure TTextEdit.SetText(CC: string);
begin
   if RawText<>CC then
   RawText:=CC;
end;function TTextEdit.GetText:string;
begin
   if text<>RawText then
   result:=RawText;
end;procedure TTextEdit.Setuseable(AA: Boolean);
begin
  if Fuseable<>AA then
  BEGIN
  Fuseable:= AA;
  enabled  := AA;
  if AA  then
  Color:=clWindow
  else
  Color:=clSilver;
  end;
end;procedure Register;
begin
  RegisterComponents('WintekIT Ctrl', [TTextEdit]);
end;end.