读书人

用过RxRichEdit的来看看解决办法

发布时间: 2012-03-20 14:01:11 作者: rapoo

用过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有问题。

读书人网 >.NET

热点推荐