好像是Win98下的RichEdit容量太小?怎样解决?(50分)

  • 主题发起人 主题发起人 龙啸九天
  • 开始时间 开始时间

龙啸九天

Unregistered / Unconfirmed
GUEST, unregistred user!
TStringList *TempList= new TStringList;

TempList->Add("…………");
……
//TempList内大约添加了几千行文本

RichEdit2->Lines->Assign(TempList); ; ; ;//把TempList复制给RichEdit,速度快
//RichEdit2->Lines->AddStrings(TempList);//把TempList复制给RichEdit,速度慢

以上的这句程序,在win2000下正常,在win98下运行报告“RichEdit line insertion error”

我把TempList内的文本改成就几行,再用RichEdit2->Lines->Assign(TempList); 复制给RichEdit时,
没有报错。

好像是Win98下的RichEdit容量太小?怎样解决?

我的QQ:356025 ;龙啸九天
 
richedit的容量有限制,
改用别的控件
 
98下RichEdit容量为64K;
增大 :
; ;SendMessage(RichEdit1.Handle, EM_EXLIMITTEXT, 0, $7FFFFFFF);
 
procedure TForm1.FormCreate(Sender: TObject);
begin
; RichEdit1.MaxLength := High(Integer) - 1024;
end;
 
看了一下代码,两个是一样的,设置MaxLength就是发送消息。
procedure TCustomRichEdit.DoSetMaxLength(Value: Integer);
begin
; SendMessage(Handle, EM_EXLIMITTEXT, 0, Value);
end;
 
应该不是限制的问题吧!!!
Delphi中的指针和C里面的一样,要小心点!!!
 
我按各位提示的方法,修改了MaxLength ,但为什么还有64K限制?

我在win2000下把MaxLength 改为300,但Richedit一样可以输入超过300,甚至80K的数据,

好像设置MaxLength 和 SendMessage(RichEdit1.Handle, EM_EXLIMITTEXT, 0, $7FFFFFFF);
没有起到任何作用,怎么回事?
 
很想知道答案,关注……
 
终于解决了,设置MaxLength 对assign无效,可能是Borland的bug吧,
我改用Savetofile和LoadFromfile,通过临时文件把TStringList里内容
拷贝到RichEdit了,而且速度更快,而MaxLength用默认值0就行。win2000
和win98下运行全部正常。
 
多人接受答案了。
 
后退
顶部