Board logo

Subject: CnPack源代码比较的TOpenDialog文件过滤设置有小问题 [Print This Page]

Author: yinsim    Time: 2017-3-26 11:21     Subject: CnPack源代码比较的TOpenDialog文件过滤设置有小问题

[CnSourceDiffFrm.pas]

procedure TCnSourceDiffForm.actOpen2Execute(Sender: TObject);
begin
  OpenDialog2.Filter := OpenDialog1.Filter;
  OpenDialog2.FilterIndex := OpenDialog2.FilterIndex;

---------省略----------
end;

这里的本意是在打开了文件1以后,打开文件2之前自动套用之前选择的文件类型,
OpenDialog2.FilterIndex := OpenDialog2.FilterIndex;
应该是
OpenDialog2.FilterIndex := OpenDialog1.FilterIndex;

虽然是小问题,不过还是希望修复下.谢谢!


另外,在使用FixInsight测试CnWizards的时候, FixInsight报告:

[CnWizNotifier.pas]的下面这个过程有可疑的Free调用.这里本意是不是要Free掉AComponent啊?
没有仔细看过源码,不了解.

procedure TCnWizCompNotifyObj.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited;
  if (AComponent = Component) and (Operation = opRemove) then
    Free;
end;
Author: Passion    Time: 2017-3-27 14:38

感谢报告,我看一下。
Author: Passion    Time: 2017-3-27 16:13

第一个问题是我们手误,感谢指出,否则我们自己估计打死都看不出来。

第二个问题,我们看了一下,代码是符合我们的需求的。这个组件本身是另外一个主组件的附属通知器对象,主组件释放时,它自己的确也得释放掉。也就是说,NotifyObj 关联的对象被 Free 的时候,这个 Obj 自身也自动 Free,并自动从所属的ComponentList 里面 Remove。
Author: yinsim    Time: 2017-3-29 20:47

老刘辛苦了,这么多年都坚持,而且有求必应
Author: Passion    Time: 2017-3-30 13:50






Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0