值得注意的变化:

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;

Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo的更多相关文章

  1. Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm

    Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...

  2. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  3. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

  4. Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit

    Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...

  5. Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox

    Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项 ...

  6. Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox

    Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollB ...

  7. Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu

    Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopup ...

  8. Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览

    Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public   constructor Create(...); ov ...

  9. Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它

    Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...

随机推荐

  1. ABAP中TAB分隔符的使用

    在ABAP开发中,存在很多特殊字符,使用情况也不同,下面及时SAP中的TAB分隔符的使用案例: 46C以下的版本: DATA: gc_result(50) type c. constants: con ...

  2. java 判断5张牌的组成

    题目: 一副牌中发五张扑克牌给你,判断是四条,三带二.三带一加一.两对.一对.顺子.还是什么都不是. 控制台输入: 1,1,1,1,2 示例输出: 四条 Java方法的代码: static Strin ...

  3. Vue示例教程

    <!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml&q ...

  4. Educational Codeforces Round 42 (Rated for Div. 2) E. Byteland, Berland and Disputed Cities(贪心)

    E. Byteland, Berland and Disputed Cities time limit per test2 seconds memory limit per test256 megab ...

  5. Vim搜索关键字

    有以下两种方法 Method 1:/content 默认从上往下查找 只读模式下输入 /content 后回车 按 n 向下查找 按N 向上查找 Method 2:?content 默认从下往上查找 ...

  6. C#基础知识之理解Cookie和Session机制

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  7. python中字符串格式化的两种方法

    知识点汇总;1-字符串格式化输出方法一: % 1-print('名字是 %s,年龄是%s' % (name ,age)) 2- %s ---字符串-----相当于执行了str() 3- (name , ...

  8. java 集合之ArrayList、Vector、LinkedList、CopyOnWriteArrayList

    ArrayList 线程不安全. 底层Object[]数组实现,用transient关键字修饰,防止序列化,然后重写了readObject和writeObject方法,为了提高传输效率. 插入时会判断 ...

  9. 【bzoj2300】【Luogu P2521】 [HAOI2011]防线修建 动态凸包,平衡树,Set

    一句话题意:给你一个凸包,每次可以插入一个点或者询问周长. 动态凸包裸题嘛,用\(Set\)实现.最初每个点坐标做乘三处理,便于取初始三角形的重心作为凸包判定原点. #include <bits ...

  10. ZROI 19.08.11模拟赛

    传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. dlstql,wsl A \(10pts:\) \(a=100,T=100\),对每个排列构造一个反的,一步到位即可. \(20pts ...