值得注意的变化:
1、其父类 TScrollBox 的许多特性也很有用处, 如:
Memo1.UseSmallScrollBars := True;
2、内部使用了一个栈列表管理动作, 现在可以执行多步撤销(UnDo).
3、使用了一个新的结构体 TCaretPosition 来描述当前位置, 并为该结构提供了一个公用的快速构造函数 ComposeCaretPos().
TCaretPosition = record
Line, Pos: Integer;
end;
4、提供枚举属性 CharCase 控制大小写.
Memo1.CharCase := TEditCharCase.ecUpperCase;
5、提供布尔属性 AutoSelect 决定获取焦点时是否自动全选.
6、现在的 Lines 属性读取的是自动换行后的文本集合; 原始集合用 UnwrapLines 读取.
Memo1.CharCase := TEditCharCase.ecUpperCase;
7、还提供了 InsertAfter()、DeleteFrom() 等新方法.
{ TMemo }
public
constructor Create(...); override; //
destructor Destroy; override; //
procedure CopyToClipboard; //复制
procedure PasteFromClipboard; //粘贴
procedure CutToClipboard; //剪切
procedure ClearSelection; //取消选择
procedure SelectAll; //全选
procedure GoToTextEnd; //到最后
procedure GoToTextBegin; //到开始
procedure GotoLineEnd; //到行尾
procedure GoToLineBegin; //到行首
function GetPositionPoint(...): TPointF; //获取当前位置
procedure UnDo; //撤销
procedure InsertAfter(...); //插入
procedure DeleteFrom(...); //删除指定范围的内容
function TextPosToPos(...): TCaretPosition; //根据指定的文本长度计算光标位置
function PosToTextPos(...): Integer; //TextPosToPos() 的反相计算
property SelStart: Integer ...; //选区文本的起始位置
property SelLength: Integer ...; //选区文本的长度
property SelText: string ...; //选区文本
property CaretPosition: TCaretPosition ...; //输入光标的位置
property LineWidth[LineNum: Integer]: Single ...; //获取指定行的宽度
property UnwrapLines: TStrings ...; //没有换行的原始文本集合; 在 WordWrap = False 时同 Lines
property FontFill: TBrush ...; //文本笔刷
property SelectionFill: TBrush ...; //选区笔刷
published
property Cursor default crIBeam; //鼠标光标
property CanFocus default True; //能否拥有焦点
property DisableFocusEffect; //是否禁用焦点特效
property TabOrder; //Tab 序
property AutoSelect: Boolean ...; //是否在获取焦点时自动全选
property CharCase: TEditCharCase ...; //控制大小写的选项
property Enabled; //是否可用
property HideSelection: Boolean ...; //?
property Lines: TStrings ...; //自动换行后的文本集合
property MaxLength: Integer ...; //最大长度
property ReadOnly: Boolean ...; //是否只读
property OnChange: TNotifyEvent ...; //有改变时
property OnChangeTracking: TNotifyEvent ...; //发生在 OnChange 之前的事件
property WordWrap: Boolean ...; //是否自动换行
property Font: TFont ...; //字体
property Text: string ...; //内容
property TextAlign: TTextAlign ...; //文本对齐方式
property StyleLookup; //指定样式
end;