如何使用RichTextBox追加和读取每行的文本行?

时间:2012-06-07 15:01:12

标签: .net text richtextbox delphi-prism indexoutofboundsexception

我在winform上有一个richtextbox,并希望每行附加和读取文本行。

按照以下方式查看我在代码中的尝试:

method ScriptDlgpas.Execute(memo:RichTextBox): Boolean;
var i:Integer;
begin
  Result := false;

  scriptMemo.Clear;
  var line1 := memo.Lines;
  while (line in line1) do
    scriptMemo.AppendText(line);

  if ShowDialog = DialogResult.OK then
  begin
    memo.Clear;
    var line2 := ScriptMemo.Lines;
    while(line in line2) do
        memo.AppendText(line);
    Result := true;
  end;
end;

我有两个richtextbox,scriptmemo和备忘录。我将文本设置为scriptmemo然后我读回来附加到备忘录RichTextBox。这一切似乎都是合乎逻辑的,当然它编译成功,但编译器在运行时为行 var line1:= memo.Lines

引发异常,IndexOutofRange

任何帮助将不胜感激。 谢谢,

1 个答案:

答案 0 :(得分:1)

从它的外观来看,要么其他程序员不知道我在说什么,要么不知道如何解决它。

我确实找出了我的问题,并希望发布答案,希望能帮助他人。

以下是修订后的工作代码:

method ScriptDlgpas.Execute(memo:RichTextBox): Boolean;
var i:Integer;
    lines1, lines2 : Array of string;
begin
  Result := false;

  scriptMemo.Clear;
  lines1 := memo.Lines;
  for each aline in lines1 do
  begin
    scriptMemo.AppendText(aline+System.Environment.NewLine);
  end;

  if ShowDialog = DialogResult.OK then
  begin
    memo.Clear;
    lines2 := ScriptMemo.Lines;
    for each aline in lines2 do
    begin
        memo.AppendText(aline+System.Environment.NewLine);
    end;
    Result := true;
  end;
end;