pasteを使うには

解決


altlegend  2011-03-08 23:16:27  No: 40215  IP: 192.*.*.*

delphi7で作ったメモ帳みたいなものをdelphi2009でコンパイルすると、ENTERキーを押しても改行しない、クリップボードから貼り付けできないという現象が起こっています。
pasteの使い方を教えてください。

procedure TFormFiler.Paste1Click(Sender: TObject);
begin
  RichEdit1.PasteFromClipboard;
  Cancel1.Enabled := True;
end;

編集 削除
igy  2011-03-09 21:22:14  No: 40216  IP: 192.*.*.*

Delphi2009のプロジェクトに TRichEditを置き、ボタンのクリックイベントで、
PasteFromClipboard メソッド
を呼ぶコードを書いて試したところ、
TRichEdit でENTERキーを押したら改行しますし、
ボタンをクリックすると、クリップボードから貼り付けできました。

新規プロジェクトでも、その現象は起きますか?

編集 削除
altlegend  2011-03-10 06:05:39  No: 40217  IP: 192.*.*.*

ありがとうございました。

この現象が起きているのは4000行くらいのデータを呼び込んだ後です。
STRINGLISTを使って呼び込んでるんですが。

また、書き込みしますので、よろしくです。

編集 削除
altlegend  2011-03-12 07:28:16  No: 40218  IP: 192.*.*.*

delphi7でコンパイルした分は、4000行近くのデータを読み込んだ後でも、改行・貼り付けはできます。
最新のXEでもだめらしいんで、unicordに変わったせいで文字数がRichEditの上限を越えてるんでしょうか??

編集 削除
けど  2011-03-13 11:07:09  No: 40219  IP: 192.*.*.*

Delphi2009 49,000 行のテキストで確認しました
D5 では出来ることが確かに出来ませんね

1000 行ほどを読み込んで、その後どんどんペーストしていくと
4276 行(68790)で打ち止めになります

で、「RichEditはデフォルトで64K(32Kだったかも?)の制限が付いている」
という 1997 の頃のバグが復活しているのではないでしょうか?
起動時に
RichEdit1.MaxLength:=2100000000;
を入れれば 16 万行でもいけました(ここの制限はOSによると思います)

編集 削除
ウォレス  2011-03-14 09:15:37  No: 40220  IP: 192.*.*.*

D2010+WinXpSp3でも同様の現象が確認できました。
さしあたり JvRichEdit を使えば上記バグは発生しない模様です。

編集 削除
altlegend  2011-03-15 17:35:37  No: 40221  IP: 192.*.*.*

ありがとうございました。
できるようになりました。

delphiでプログラムしていると、なかなか解決困難なことが多くて困っていました。
これからはここで質問させていただきます。
また、よろしくです。

本当にありがとうございました。

編集 削除