Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
涂孟超 发表于3年前
Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
  • 发表于 3年前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   


值得注意的变化:

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;

共有 人打赏支持
粉丝 13
博文 2004
码字总数 14107
×
涂孟超
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: