delphi7で作ったメモ帳みたいなものをdelphi2009でコンパイルすると、ENTERキーを押しても改行しない、クリップボードから貼り付けできないという現象が起こっています。
pasteの使い方を教えてください。
procedure TFormFiler.Paste1Click(Sender: TObject);
begin
RichEdit1.PasteFromClipboard;
Cancel1.Enabled := True;
end;
Delphi2009のプロジェクトに TRichEditを置き、ボタンのクリックイベントで、
PasteFromClipboard メソッド
を呼ぶコードを書いて試したところ、
TRichEdit でENTERキーを押したら改行しますし、
ボタンをクリックすると、クリップボードから貼り付けできました。
新規プロジェクトでも、その現象は起きますか?
ありがとうございました。
この現象が起きているのは4000行くらいのデータを呼び込んだ後です。
STRINGLISTを使って呼び込んでるんですが。
また、書き込みしますので、よろしくです。
delphi7でコンパイルした分は、4000行近くのデータを読み込んだ後でも、改行・貼り付けはできます。
最新のXEでもだめらしいんで、unicordに変わったせいで文字数がRichEditの上限を越えてるんでしょうか??
Delphi2009 49,000 行のテキストで確認しました
D5 では出来ることが確かに出来ませんね
1000 行ほどを読み込んで、その後どんどんペーストしていくと
4276 行(68790)で打ち止めになります
で、「RichEditはデフォルトで64K(32Kだったかも?)の制限が付いている」
という 1997 の頃のバグが復活しているのではないでしょうか?
起動時に
RichEdit1.MaxLength:=2100000000;
を入れれば 16 万行でもいけました(ここの制限はOSによると思います)
D2010+WinXpSp3でも同様の現象が確認できました。
さしあたり JvRichEdit を使えば上記バグは発生しない模様です。
ありがとうございました。
できるようになりました。
delphiでプログラムしていると、なかなか解決困難なことが多くて困っていました。
これからはここで質問させていただきます。
また、よろしくです。
本当にありがとうございました。
ツイート | ![]() |