TMEMO中的多行添加

Rub*_*der 2 delphi

我有一个带有2个按钮(Button1,Button2)和1个Memo(Memo1)的Delphi XE2项目.

我的要求是在Button1上单击某些文本将在第一行(第1行)中记住Memo1.如果我再次点击Button1,一些新文本将被写入新行(第2行).

如果我单击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;
Run Code Online (Sandbox Code Playgroud)

但问题是只有一行显示Button1FirstClick上的文本为"Line1",Button1SecondClick上的"Line2"和Button2Click上的"Line4".请帮我.

Jer*_*dge 9

要向备忘录控件添加更多文本,请调用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;
Run Code Online (Sandbox Code Playgroud)

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

Memo1.Lines.Clear;
Run Code Online (Sandbox Code Playgroud)

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

Memo1.Lines[2]:= 'Replacement Text';
Run Code Online (Sandbox Code Playgroud)

要删除其中一行......

Memo1.Lines.Delete(2);
Run Code Online (Sandbox Code Playgroud)

  • 你的"清除"不太对劲.`TMemo`有一个`Clear`属性; 你不必使用`Lines.Clear`.`Memo1.Clear;`工作正常,输入较少. (2认同)

NGL*_*GLN 7

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

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

Memo.Lines.Add('Text');
Run Code Online (Sandbox Code Playgroud)

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

Memo.Lines.Insert(3, 'Text');
Run Code Online (Sandbox Code Playgroud)

你可以添加多行:

Memo.Lines.Add('Line1'#13#10'Line2');
Memo.Lines.AddStrings(ListBox.Lines);
Run Code Online (Sandbox Code Playgroud)

  • 添加包含换行符的字符串会发生什么?Lines.Count增加多少?换句话说,它的行为与TStringList不同? (2认同)
  • @David确实如此.它写下你发送的内容.现在,它如何回读? (2认同)