0

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;

私は2つのrichtextbox、scriptmemoとmemoを持っています。テキストを scriptmemo に設定し、それを読み込んで memo RichTextBox に追加します。それはすべて論理的に見え、もちろん正常にコンパイルされますが、コンパイラは実行時に行var line1 := memo.Linesの例外 IndexOutofRange を発生させます

どんな助けでも大歓迎です。ありがとう、

4

1 に答える 1

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;
于 2012-06-07T16:21:10.693 に答える