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.