5

我有一个带有 2 个按钮(Button1、Button2)和 1 个备忘录(Memo1)的 Delphi XE2 项目。

我的要求是在 Button1 上单击 Some Text 将在第一行(Line1)中写入 Memo1。如果我再次单击 Button1 一些新文本将写入新行 (Line2)。

如果我单击 Button2,另一个新文本将附加在 Memo1 中(在最后一行之后将创建一个新行)。所以我写了以下代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Text :='Line1';
  Memo1.Lines.Text :='Line2';
end;
....
....
....
....
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Text :='Line3';
  Memo1.Lines.Text :='Line4';
end;

但问题是只有一行在 Button1FirstClick 上显示为“Line1”,在 Button1SecondClick 上显示为“Line2”,在 Button2Click 上显示为“Line4”。请帮我。

4

3 回答 3

12

要向备忘录控件添加更多文本,请调用AppendAdd,如下所示:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add('Line1');
  Memo1.Lines.Add('Line2');
end;
....
....
....
....
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Add('Line3');
  Memo1.Lines.Add('Line4');
end;

如果您需要清除内容...

Memo1.Lines.Clear;

如果您希望替换一行(仅当索引已经存在时):

Memo1.Lines[2]:= 'Replacement Text';

要删除其中一行...

Memo1.Lines.Delete(2);
于 2013-04-14T19:16:50.400 回答
7

TMemo.Lines是一个TStrings具有许多字符串处理能力的类型的对象。分配Text属性会重写它包含的所有字符串。

您可以在所有其他已经存在的行之后添加一行:

Memo.Lines.Add('Text');

您可以插入一行(在第四个位置):

Memo.Lines.Insert(3, 'Text');

您可以添加多行:

Memo.Lines.Add('Line1'#13#10'Line2');
Memo.Lines.AddStrings(ListBox.Lines);
于 2013-04-14T19:54:54.610 回答
1

在 Delphi 中有 Memo1.Lines.Text

但在 C builder 中有 Memo1.Text 或 Memo1->Text

要让多行进入 TMemo,您可以将其分配为 memo1->text = tstringlist->text;

作为 tstringlist 你可以使用 tsringlist->CommaText="line1,line2,line3,line4"; // , 作为新行

然后 memo1->text = tstringlist->text;

或 memo1->lines->add(tstringlist->text); //在最后一行停止的memo1之后插入

或 memo1->lines->add("第 1 行,\x0d\x0a 第 2 行,\x0d\x0a 第 3 行");

或 memo1->lines->add("Line 1, \r\n aline 2, \r\n aline 3");

否则使用 memo1->lines->add(""); //对于每个新的空行

祝你好运

于 2013-04-16T08:45:43.317 回答