鱼C论坛

 找回密码
 立即注册
查看: 3108|回复: 5

[技术交流] Memo组件

[复制链接]
发表于 2014-10-18 10:37:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 空瓶氧气 于 2014-10-18 10:48 编辑

串口编程中常用到memo来显示接受数据。
Delphi Memo组件
EditMaskEdit组件都只能编辑单行文本,DelphiMemo组件提供了多行文本的编辑功能。下面解释Memo组件常用的属性。
属性 说明
 Lines 用来显示和保存Memo组件中的内容。
 Scrollbar 很多组件都有这个属性。用于设定组件有否滚动条。它有四个值:SSNone表示既无水平滚动条,也无垂直滚动条;SSHorizontal表示只有水平滚动条;SSVertal表示只有垂直滚动条;SSBoth表示两者都有。当用户要显示的文本或其它的内容较多时,建议选用SSBoth
 WordWrap 用于设定Momo组件是否具有自动折行功能。
 WantTabs 这个属性只在MemoRichEditDBMemo组件中使用。但在上述三种组件中,编辑文本时常用Tab键来跳过若干个空格使文本对齐,这时就会有冲突。所以应将WantTabs设置为True,这样子在组件内就可以使用Tab键来编辑文本。
  
Memo组件常用的方法:
  1. 使用剪贴板(Clipboard
  我们可以使用CutToClipboardCopyToClipboardPastFromClipboar这三种方法,实现将Memo组件中被选择文本剪切或复制到剪贴板上,以及将剪切板上的内容粘贴到Memo组件中。
  将Memo中的选中文本剪切到剪贴板的语句如下:
  if Memo1.SelLength>0 then
  2. 文本的添加
  利用Lines属性,可以增加、删除一行文本,也可以移动一行文本。下面的代码将文本添加到Memo中下一行:
  Memo1.Lines.Add('将文本添加到Memo);
  3. 文件的保存和装载
  我们可以将Memo组件中的文本保存成文本文件,也可以将文本文件装载到Memo中。这须要配合使用SaveDialog组件和OpenDialog组件。将Memo中的文本保存为文件的语句为:
  If SaveDialog1.Execute then   //打开保存对话框
  Memo1.Lines.SaveToFile(SaveDialog1.FileName);  //保存为文件
    文件名为我们在SaveDialog中输入的文本。
  
       在Memo中装载文本文件的语句为:
  if Opendialog1.Execute then
  Memo1.Lines.LoadFile(Opendialog1.FileName);
执行上边语句将打开Opendialog对话框,然后将选中的文本文件装载到Memo中。

  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-18 10:39:00 | 显示全部楼层
Delphi Memo组件
Edit和MaskEdit组件都只能编辑单行文本,Delphi的Memo组件提供了多行文本的编辑功能。下面解释Memo组件常用的属性。
属性 说明
 Lines 这是Memo组件最常用,也是最有用的属性,它用来显示和保存Memo组件中的内容。
 Scrollbar 很多组件都有这个属性。用于设定组件有否滚动条。它有四个值:SSNone表示既无水平滚动条,也无垂直滚动条;SSHorizontal表示只有水平滚动条;SSVertal表示只有垂直滚动条;SSBoth表示两者都有。当用户要显示的文本或其它的内容较多时,建议选用SSBoth。
 WordWrap 用于设定Momo组件是否具有自动折行功能。
 WantTabs 这个属性只在Memo、RichEdit和DBMemo组件中使用。通常在切换当前焦点控件时,我们通常使用Tab键。但在上述三种组件中,编辑文本时常用Tab键来跳过若干个空格使文本对齐,这时就会有冲突。所以应将WantTabs设置为True,这样子在组件内就可以使用Tab键来编辑文本。
  Memo组件常用的方法:
  1. 使用剪贴板(Clipboard)
  我们可以使用CutToClipboard、CopyToClipboard和PastFromClipboar这三种方法,实现将Memo组件中被选择文本剪切或复制到剪贴板上,以及将剪切板上的内容粘贴到Memo组件中。
  将Memo中的选中文本剪切到剪贴板的语句如下:
  if Memo1.SelLength>0 then
  2. 文本的添加
  利用Lines属性,可以增加、删除一行文本,也可以移动一行文本。下面的代码将文本添加到Memo中的最后一行:
  Memo1.Lines.Add('将文本添加到Memo中’);
  3. 文件的保存和装载
  我们可以将Memo组件中的文本保存成文本文件,也可以将文本文件装载到Memo中。这须要配合使用SaveDialog组件和OpenDialog组件。将Memo中的文本保存为文件的语句为:
  If SaveDialog1.Execute then   //打开保存对话框
  Memo1.Lines.SaveToFile(SaveDialog1.FileName);  //保存为文件
上边的语句先打开保存对话框,然后将Memo中的文本保存到一个文件中,文件名为我们在SaveDialog中输入的文本。
  在Memo中装载文本文件的语句为:
  if Opendialog1.Execute then
  Memo1.Lines.LoadFile(Opendialog1.FileName);
执行上边语句将打开Opendialog对话框,然后将选中的文本文件装载到Memo中。
  下面我们使用Memo组件的这些特性制作一个简单的文本编辑器,可以实现文本的拷贝复制,并可以进行文本的保存和装载。当然程序的功能还很简单,我们还可以进一步扩展。这里是入门教程,所以不宜太复杂。
  程序的界面如下图所示:
Memo组件" TITLE="Delphi Memo组件" />screen.width-461) {this.resized=true; this.width=screen.width-460; this.alt='Click here to open new window';}" border=0>

单选按钮组
单选按钮组(RadioBox)是单选按钮的组合。当我们需要对不同的单选按钮进行选择时,为了使不同组之间互不干涉,就需要使用单选按钮组。
  单选按钮组有两个重要得属性:Items和ItemIndex。在窗体上选中RadioBox组件在对象查看器上双击Items属性,将打开一个对话框,如下图所示:
Memo组件" TITLE="Delphi Memo组件" />screen.width-461) {this.resized=true; this.width=screen.width-460; this.alt='Click here to open new window';}" border=0>

在该对话框的编辑窗口中输入各项标题,每项一行。
  ItemIndex属性用于表明单选按钮组中哪一项被选中了。若为-1(缺省值),表示没有被选中的项;若为0,表示第一项被选中;若为1,表示第二项被选中;其他依次类推。
  我们在前面编制的文本编辑器的基础上,使用单选按钮组代替单选按钮,并添加字体选择功能。程序用到两个RadioGroup组件,属性如下:
属性   RadioGroup1   RadioGroup2
Caption   颜色   字体
Items   红色;蓝色;绿色   Aria;Symbol;宋体
ItemIndex     0     2
  由于RadioGroup1的IntemIdex为0,则第一项为初始被选中的项,即“红色”被选中,所以程序在初始化时应将Memo1中的文本颜色设置为红色;同样,RadioGruop2的初始项为第三项“宋体”(ItemIndex为2),也应在初始化时将Memo的文本字体设置为宋体。初始化语句放在Form1的OnCreate事件中,即在创建窗体时对Memo组件进行初始设置。相应得程序如下:
   procedure TForm1.FormCreate(Sender: TObject);
   begin
   memo1.Lines.Text:='这里是RadioGroup组件示例';
   memo1.Font.Color:=clRed; //设定文本的初始颜色为红色
   memo1.Font.Name:='宋体' //设定文本字体为宋体
   end;
  改变字体颜色的程序代码如下:
   procedure TForm1.RadioGroup1Click(Sender: TObject);
   begin
    if radiogroup1.ItemIndex=0 then
     Memo1.Font.Color:=clRed
    else if radiogroup1.ItemIndex=1 then
     Memo1.Font.Color:=clBlue
      else
      Memo1.Font.Color:=clGreen;
   end;
  改变字体的程序代码如下:
   procedure TForm1.RadioGroup2Click(Sender: TObject);
   begin
    if radiogroup2.ItemIndex=0 then
      Memo1.Font.Name:='Arial'
    else if radiogroup2.ItemIndex=1 then
     Memo1.font.name:='Symbol'
       else Memo1.Font.Name:='宋体';
   end;
  程序界面如下图所示:
Memo组件" TITLE="Delphi Memo组件" />screen.width-461) {this.resized=true; this.width=screen.width-460; this.alt='Click here to open new window';}" border=0>

单选按钮和复选框
单选按钮(RadioButton)和复选按框(CheckBox)都是很常用的组件,尤其是在对话框中。单选按钮(RadioButton)是一种具有排他性的选择组件,用户每一次只能选择其中的一个(在同一个容器组件中,如同一Form上或RadioBox中)。而复选框(CheckBox)则不同,可以同时选择多个。
  两种组件都有一个Checked属性,用于标识和检测是否被选中。我们使用这两个组件,给上一节(Memo组件介绍)的例程(简单编辑器)添加一些新的功能,使它可以选择字体颜色和字体的样式。
  程序的界面如下图所示:
Memo组件" TITLE="Delphi Memo组件" />screen.width-461) {this.resized=true; this.width=screen.width-460; this.alt='Click here to open new window';}" border=0>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-18 10:43:41 | 显示全部楼层
好高大上啊   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-19 08:42:29 | 显示全部楼层
谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-10-30 17:30:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-12 23:30:34 | 显示全部楼层
LZ有没有试过当串口接收比较长的数据时  memo显示的速度会变的很慢呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 06:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表