Memo控件

来源:互联网 发布:js中this的理解 编辑:程序博客网 时间:2024/06/06 12:49
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组件的这些特性制作一个简单的文本编辑器,可以实现文本的拷贝复制,并可以进行文本的保存和装载。当然程序的功能还很简单,我们还可以进一步扩展。这里是入门教程,所以不宜太复杂。

  程序的界面如下图所示:


程序代码 程序代码

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Add('在末端添加文本');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Lines.Text:='这里是Memo组件示例';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Memo1.SelLength>0 then
Memo1.CutToClipboard;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if savedialog1.Execute then
memo1.Lines.SaveToFile(savedialog1.FileName);
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if Opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.FileName);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if Memo1.SelLength>0 then
Memo1.CopyToClipboard;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if Memo1.SelLength=0 then
Memo1.PasteFromClipboard;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
close;
end;

end.
0 0