首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用过RxRichEdit的来看看解决办法

2012-03-20 
用过RxRichEdit的来看看不管是静态创建的还是动态创建的RxRichEdit,当执行RxRichEdit.FindDialog() 在

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

热点排行