procedure TForm3.Button1Click(Sender: TObject); begin FBindings := TkbmMWBindings.Create; FBindings.Bind(DisplayDataSet, 'f1', ListView1, '#Text1'); // error. FBindings.Bind(DisplayDataSet, 'f2', ListView1, '#Text2'); FBindings.Bind(DisplaydataSet, '@', ListView1, '@', [mwboTwoWay]); FBindings.UpdateEvent.Activate(False);//当执行这句,则下面Clear方法出错 FBindings.Clear; //An error occurred end;
当前5.14版本,FBindings.UpdateEvent.Activate(False);这一句代码会造成下FBindings.Clear出错,已经提交给作者。
昨晚提交的问题,今早作者就回复了,这是回复的原文:
You were usually not supposed to deactivate the update event. Doing that release some internal resources which should only be released when the smart binding instance dies. However I can understand situations where one perhaps would like to pause the update event, why I have introduced a fix for next release.
通常开发者不应该停用更新事件,这样做会释放一些内部资源,这些资源仅应在智能绑定实例死亡时才释放。
但是,我可以理解某些情况下可能希望暂停更新事件的原因,所以,我将在下一版中修复这个部问题。
原来作者没有想到,我会这样调用:FBindings.UpdateEvent.Activate(False);
上面是第一个问题,对于这样使用TkbmMWBindings类,还有一点,一定要自己释放他的实例,不然,退出应用时会出错的!
期待下一个修正版本。
2021-3-31:kbmMW 5.15.10解决了!