用过RxRichEdit的来看看
不管是静态创建的还是动态创建的RxRichEdit,当执行RxRichEdit.FindDialog(''); 在查找框开着的前提下再执行RxRichEdit.Free的话就会出现内存报错,而且是死循环,把错误对话框按掉又弹出来。但是如果在查找框开着的时候直接关闭程序,则不会报错。不知道大家有没有碰到过?有没有什么解决方法?
附上程序代码:
- Delphi(Pascal) code
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, RxRichEd;type TForm1 = class(TForm) RxRichEdit1: TRxRichEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin RxRichEdit1.FindDialog('');end;procedure TForm1.Button2Click(Sender: TObject);begin RxRichEdit1.Free;end;end.[解决办法]
这个是正常的啊.查找窗口与RxRichEdit1是关连的,它不关闭,直接free RxRichEdit1是要出错的,而关闭程序前,是先关闭查找窗口,所以不出错
解决方法:
procedure TForm1.Button2Click(Sender: TObject);
var
hd:thandle;
begin
hd:=FindWindow(0,'查找');
if hd<>0 then
DestroyWindow( hd); //释放查找窗口
RxRichEdit1.Free;
end;
[解决办法]
用了几年的rxrichedit,还没碰到过这事儿,惭愧。
倒是发现rxrichedit的lines有问题。