值得注意的变化:

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. 解决错误:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://shiro.apache.org/tags]

    服务器错误信息如下: 解决方法: 把shiro包中的tld文件(shiro.tld)解压出来放到WEB-INF文件夹下即解决问题. 参考:http://blog.sina.com.cn/s/blog_ ...

  2. 安装CRMEasy步骤

    生成CRMEasy安装包的步骤: 所需文件: InstallShieldExpress软件 CRMEasy.iwz工程文件 XP系统(虚拟机即可) 安装 CRMEasy 步骤: 1.windows X ...

  3. Fiddler抓包的简单使用

    Fiddler抓包的简单使用 参考的博客文章:玲虫师的<Fiddler抓包[5]_Fiddler过滤>. (1)使用fiddler进行过滤,只抓取需要的网络请求. 点击右侧菜单中的[Fil ...

  4. 安装kibana可视化平台工具

    1.安装kibana 命令: wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz   ...

  5. source insight支持查看makefile、kconfig以及.s代码方法

    在用sourceinsight查看linux内核源码的时候,大家会发现不能查看源码中的makefile和kconfig代码,即不能搜索到makefile和kconfig文件.这是因为source in ...

  6. ubuntu 16.04 安装Opencv-3.2.0_GPU 与 opencv_contrib-3.2.0

    1.准备依赖库 sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config ...

  7. 在HTML页面加载完毕后运行某个js

    js <script type="text/javascript"> window.onload=function(){ //执行} </script> j ...

  8. [LOJ 6704] 健身计划

    问题描述 九条可怜是一个肥胖的女孩. 她最近长胖了,她想要通过健身达到减肥的目的,于是她决定每天做n次仰卧起坐以达到健身的目的. 她可以将这n次动作分为若干组完成,每一次完成ai次仰卧起坐,每做完一次 ...

  9. TypeScript作为前端开发你必须学习的技能二)

    TypeScript 变量声明 变量是一种使用方便的占位符,用于引用计算机内存地址.我们可以把变量看做存储数据的容器. TypeScript 变量的命名规则:和javascript一样.除了下划线 _ ...

  10. 爬虫之Handler处理器和自定义Opener

    一.Handler处理器和自定义Opener opener是 request.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...