有没有更好的方法向TMemo添加几个字符?

Bri*_*ost 4 delphi character tmemo

我正在使用TMemo来保存从串口接收的字符以供查看.他们到达时我正在做:

Memo1.Text := Memo1.Text + sReceivedChars;
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我认为这是相当低效的,必须在连接我的几个字符然后再写回来之前获取现有文本.我真的很喜欢'SendChars()'函数或类似的东西.是否有更好的方法可以在现有文本的末尾添加几个字符?

500*_*ror 8

我不知道你是否认为这是值得的,但你可以这样做:

procedure TForm1.Button1Click(Sender: TObject);
var
  index: Integer;
  NewText: string;
begin
  NewText := 'Append This';
  index := GetWindowTextLength (Memo1.Handle);
  SendMessage(Memo1.Handle, EM_SETSEL, index, index);
  SendMessage (Memo1.Handle, EM_REPLACESEL, 0, Integer(@NewText[1]));
end;
Run Code Online (Sandbox Code Playgroud)

  • 或者使用`Memo1.SelStart:= Index; Memo1.SelText:= NewText;` - 这些在幕后做同样的事情.但是使用GetWindowTextLength要好于Length(Memo1.Text) (3认同)